【发布时间】:2020-07-13 14:18:58
【问题描述】:
我有一个程序可以输出 H.264 原始流(即 Android 上的 screenrecord)。我正在使用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 原始帧,其中“当前时间”是接收帧时,而不是输出它?
注意:问题是不是来自管道的缓冲。
【问题讨论】:
标签: ffmpeg timestamp video-streaming h.264 video-capture