2

Я использую каналы, чтобы обеспечить ввод и отослать вывод из FFmpeg

Команда, которую я использую, по сути

ffmpeg -i труба:0 -f труба fv:1

Я использую Java-программу, которая в основном обеспечивает входной поток в качестве стандартного ввода (pipe:0), FFmpeg преобразует видео в требуемый формат и отправляет на стандартный вывод (pipe:1), откуда я передаю поток в мое удаленное местоположение.

Моя Java-программа вращается вокруг этого куска кода, обеспечивая ввод и отправку вывода в качестве выходного потока.

По сути, моя программа делает то, что должна, однако я вижу, что окончательный выходной видеофайл не имеет полной длительности. Это примерно 10 секунд, а мой пример видео - 21 минута !

Когда я заменяю канал входным файлом и выходным файлом, вывод генерируется правильно без каких-либо проблем, когда я использую каналы, размер файла все еще больше по сравнению с оригиналом. На всякий случай, если это поможет диагностировать.

Мне нужно конвертировать широкий диапазон кодеков, однако в настоящее время я тестирую видео с h264 mp4 в формат flv. На самом деле, даже если я предоставлю -vcodec copy -acodec copy, он все равно не выведет видео полной длины

Я видел много постов с ответами, что это в основном потому, что каналы не доступны для поиска, и иногда видеоинформация хранится в конце файла. Однако, даже если я пытаюсь выполнить преобразования в форматах входного файла, таких как flv, у меня все равно возникает та же проблема. Даже если выходные данные также указаны как FLV и предоставляют -vcodec copy -acodec copy

Нужно ли мне предоставлять больше информации для FFmpeg? кто-нибудь успешно сделал преобразование видео на основе канала? даже для файлов, где медиа-информация находится в начале файла?

FFmpeg версия SVN-r23418, Copyright (c) 2000-2010 разработчики FFmpeg
Построен 2 июня 2010 04:12:01 с gcc 4.4.2
конфигурация: --target-os = mingw32 --enable-runtime-cpudetect --enable-avisynth --enable-gpl --enable-version3 --enable-bzlib --enable-libgsm --enable-libfaad --enable- pthreads --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libxvid --enable-libschroedinger --enable-libx264 --extra-libs = '- lx264 -lpthread '--enable-libopencore_amrwb --enable-libopencore_amrnb --enable-librtmp --extra-libs =' - lrtmp -lssl -lcrypto -lws2_32 -lgdi32 -lwinmm -lcrypt32 -lz'rossarch x86 = -prefix = i686-mingw32- --cc = 'ccache i686-mingw32-gcc' --enable-memalign-hack
libavutil 50.16. 0 / 50.16. 0
libavcodec 52.72. 1 / 52,72. 1
libavformat 52.67. 0 / 52,67. 0
libavdevice 52. 2. 0/52. 2. 0
libavfilter 1.20. 0 / 1,20. 0
libswscale 0.11. 0 / 0,11. 0
Ввод # 0, mov, mp4, m4a, 3gp, 3g2, mj2, из 'pipe: 0':
Метаданные:
major_brand: isom
minor_version: 1
compatibility_brands: isom
заглавие :
художник:
Дата :
альбом:
комментарий:
Обратная связь:
жанр:
Длительность: 00: 21: 46,63, старт: 0,000000, битрейт: н / д
Поток # 0.0 (und): Видео: h264, yuv420p, 512x288 [PAR 1: 1 DAR 16: 9], 403 кбит / с, 25 кадров в секунду, 25 тбр, 25 тбн, 50 тбк
Поток # 0.1 (und): Аудио: aac, 44100 Гц, моно, s16, 47 кбит / с
Выведите # 0, flv, в 'pipe: 1':
Метаданные:
кодировщик: Lavf52.67.0
Поток # 0.0 (und): Видео: flv, yuv420p, 512x288 [PAR 1: 1 DAR 16: 9], q = 2-31, 200 кбит / с, 1k тбн, 25 тбк
Поток # 0.1 (und): Аудио: libmp3lame, 44100 Гц, моно, s16, 64 кбит / с
Отображение потока:
Поток № 0.0 -> # 0.0
Поток № 0.1 -> № 0.1

0