我正在创建一个片段的 MP4 用于在媒体源扩展中播放。命令行是:ffmpeg.exe -probesize 10000000 -r 10 -i - -vcodec copy -an -f mp4 -reset_timestamps 0 -blocksize 30000 -movflags empty_moov+default_base_moof+frag_keyframe -loglevel debug -
视频源是一个 IP 摄像机流式传输 H.264。配置和预期的帧速率是 10FPS,但不能保证 10FPS,例如帧可能偶尔会丢失,或者相机可能无法正常播放它所声明的内容。我模拟了 10% 的 p 帧下降来强调以下问题:
使用上述命令,输出视频的播放速度比实时播放快,这是一个问题,因为整个管道都是实时流。10%丢帧模拟,有效播放率1.1倍。我不想强制使用固定帧速率,因为无法保证固定速率。如果我完全删除 -r 10 标志,MP4 似乎以 2x-3x 的速度播放。
有没有办法以更动态的方式构建 MP4 时间戳?例如,给它RTP时间戳或以某种方式告诉ffmpeg用“feed”时间的时间戳构建MP4?