Рассчитать PTS и DTS для кодирования нового видео и аудио в ffmpeg - PullRequest
0 голосов
/ 12 сентября 2018

Я кодирую новое видео H.264, мультиплексированное со звуком, в файл MP4.

Как правильно рассчитать PTS и DTS для AVPacket и AVFrame для видео и аудио?

Я генерирую новые видеокадры и новое аудио из моего источника.Там нет оригинальной информации PTS / DTS.Я знаю частоту кадров, которую мне нужно использовать (time_base).

1 Ответ

0 голосов
/ 17 сентября 2018

Предполагая, что ваша частота кадров постоянна. И после установки потоковых временных баз правильно. Начните оба очка с нуля (0). Аудио точки будут увеличиваться на «выборку на кадр» для каждого кадра. Обычно это audio_sample_rate / frame_rate (т.е. 48000/60 = 800).

Для видео все по-другому и несколько проще. Количество очков видео будет увеличивать то же количество «длительности видеокадра» на кадр. Используйте этот шпаргалку для расчета продолжительности:

FPS     Frame duration
23.98   2002
24.00   2000
25.00   2000
29.97   2002
30.00   2000
50.00   1000
59.94   1001
60.00   1000

Да, это несколько странно, но сработает.

...