Почему я теряю информацию PTS при кодировании в H264? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть видеофайл с этим видеопотоком:

ffmpeg -i original.avi

Поток # 0: 0: Видео: h264 (Main) (H264 / 0x34363248),yuv420p (tv, bt709, прогрессивный), 1920x1080 [SAR 1: 1 DAR 16: 9], 4204 кбит / с, 59,94 к / с, 59,94 тбр, 59,94 тбн, 59,94 тбк

Я могу получитьИнформация PTS, запустив:

ffprobe -v 0 -of csv=p=0 -select_streams v -show_entries packet=pts_time original.avi

И я получаю PTS для каждого кадра построчно:

0.016683
0.116783
0.033367
0.050050
0.166833
0.083417
0.100100
0.216883
...

Теперь мне нужно кодировать видео в H264и иметь возможность впоследствии получать ту же информацию PTS, поэтому я использовал:

ffmpeg -i original.avi -vcodec libx264 output.avi

С этим видеопотоком:

Stream # 0: 0: Video: h264 (High)(H264 / 0x34363248), yuv4p (прогрессивный), 1920x1080 [SAR 1: 1, DAR 16: 9], 2289 кбит / с, 59,94 к / с, 59,94 тбр, 59,94 тбн, 119,88 тбк

Но когдаЯ пытаюсь получить информацию PTS от output.avi, которую я получаю только:

N/A
N/A
N/A
N/A
N/A
N/A
...

Что я должен изменить в своей команде, чтобы сохранить информацию PTS?

1 Ответ

0 голосов
/ 01 марта 2019

AVI на самом деле не поддерживает H.264.

Существуют некоторые хаки, которые заставляют его работать, но неудивительно, что у вас есть некоторые побочные эффекты.Попробуйте вместо этого использовать MP4 или MKV.

...