gpt4 book ai didi

ffmpeg - 在具有少量帧的 H.264 原始流中添加当前时间作为时间戳

转载 作者:行者123 更新时间:2023-12-04 23:12:56 25 4
gpt4 key购买 nike

我有一个程序可以输出 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 原始帧,其中“当前时间”是接收帧时,而不是输出它?

注意:问题不是来自管道的缓冲。

最佳答案

您可以更早地分配时间戳,让 setpts 简单地将其标准化为从 0 开始。

 my-program | ffmpeg -use_wallclock_as_timestamps 1 -i - -filter:v setpts='PTS-STARTPTS' out.mp4
-use_wallclock_as_timestamps由 libavformat 框架在接收数据包时分配。

关于ffmpeg - 在具有少量帧的 H.264 原始流中添加当前时间作为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60977555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com