H264 до MP4 с Bframe воспроизведения вперед и назад на Google Chrome [ffmpeg]

543
Ravi Agola

Я хочу создать контейнер mp4 с файлом в кодировке h264.

Файл H264 содержит кадры [IPBB] [PBB] [PBB] [PBB].

Когда я генерирую mp4-файл с помощью FFmpeg, он хорошо работает как с FFplay, так и с VLC, но в google-chrome mp4-файл воспроизводит кадр вперед и назад.

ffmpeg -i input.h264 -vcodec copy output.mp4

когда я использую внутреннюю библиотеку кодеков (libx264), она хорошо работает (ffplay, vlc и google-chrome)

ffmpeg -i input.h264 -vcodec h264 output.mp4

как указано выше, команда перекодирует h264 (нативный) в h264 (x264), я не хочу перекодировать файл, так как я буду использовать его с библиотекой ffmpeg.

когда я использую h264 без B-кадра, он хорошо работает в обоих случаях.

Я попытался провести эксперимент с образцом тестового файла, доступным здесь.

прямое преобразование (MKV в MP4) хорошо работает с хромом, как показано ниже

ffmpeg -i медуза-3-mbps-hd-h264.mkv -vcodec copy output.mp4

(MKV до H264 и H264 до MP4) воспроизводит хром и обратно на Chrome

ffmpeg -i медуза-3-mbps-hd-h264.mkv -vcodec copy output.h264
ffmpeg -i output.h264 -vcodec copy output.mp4

В этом случае я получаю сообщение [mp4 @ 0xb6f8b20] В пакете для потока 0 не установлены временные метки. Это устарело и в будущем перестанет работать. Исправьте ваш код, чтобы правильно установить временные метки [mp4 @ 0xb6f8b20] pts не имеет значения "

что может быть причиной такого поведения?

Благодарю.

0
Как генерируется поток H.264? Gyan 6 лет назад 0
он генерируется с использованием TI SOC dm8168 (видеокодер). jellyfish-3-mbps-hd-h264.mkv - это образец, доступный онлайн, который ведет себя так же. Ravi Agola 6 лет назад 0
MP4box Muxs это нормально. ffmpeg, похоже, игнорирует некоторые флаги SPS - не совсем уверен. Gyan 6 лет назад 0
Спасибо, MP4Box работает хорошо. Я хочу реализовать мультиплексирование h264 в mp4 в c / c ++ с использованием библиотеки, есть идеи, как реализовать MP4Box / gpac? Ravi Agola 6 лет назад 0
@Mulvya есть идеи, как это сделать с помощью ffmpeg? Ravi Agola 6 лет назад 0

0 ответов на вопрос

Похожие вопросы