Использование каналов в ffmpeg отличается от поведения файлов

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

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

ffmpeg -i труба: 0 -f труба flv: 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' --arch= -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, из "трубы: 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 ответов

Другие вопросы по тегам