У меня есть программа, которая выплевывает исходный поток H.264 (а именно, screenrecord
на Android). Я использую FFmpeg для добавления PTS (метки времени представления) к кадрам следующим образом:
$ my-program | ffmpeg -i - -filter:v setpts='(RTCTIME - RTCSTART) / (TB * 1000000)' out.mp4
Этот фильтр вычисляет текущее время и помещает его в качестве PTS.
Проблема в том, что my-program
не выдает никаких выходных данных, если в видео нет никаких изменений. Так как FFmpeg, кажется, ждет кучу кадров, прежде чем пропустить их через фильтр setpts
, вычисленная PTS не будет правильной. В частности, последний кадр последовательности будет иметь временную метку при запуске следующей последовательности.
Есть ли способ (с FFmpeg или иным способом) добавить текущее время как PTS к необработанным кадрам H.264, где " текущее время "- это когда получает кадр, а не выводит его?
Примечание: Проблема заключается в , а не в буферизации из канала.