我正在创建一个支离破碎的MP4,用于在Media Source Extensions中播放。 命令行是: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 -
视频源是一台流式传输H.264的IP摄像机。 配置和预期的帧速率是10FPS,但不能保证10FPS,例如,帧可能偶尔会丢失,或者相机可能不会与它声明的内容一致。 我已经模拟了10%的p帧下降,以强调以下问题:
使用上述命令,输出视频播放速度比实时快,这是一个问题,因为整个管道是实时流。 采用10%帧丢失模拟,有效播放速率为1.1x。 我不想强制要求固定的帧速率,因为无法保证固定速率。 如果我完全删除-r 10标志,MP4似乎以2x-3x速度播放。
有没有办法以更动态的方式构建MP4时间戳?例如,给它RTP时间戳或以某种方式告诉ffmpeg使用“feed”时间的时间戳来构建MP4?