Я хочу создать контейнер 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