常规 MP4 文件在转码时无法播放,因为一旦编码完成,MOOV 原子(解析文件所需的)就会写入到末尾。在许多情况下,它会被移动到文件 \xe2\x80\x93 的开头,这就是-movflags +faststart\xe2\x80\x93 的作用,但您仍然必须等待文件被写入一次。
碎片 MP4 (fMP4) 文件是一种特殊类型的 MP4 文件,可以在写入时读取,请参阅此答案。用于-movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov启用碎片。
只要写入了足够的数据量,MPEG-2 传输流文件就可以在写入时播放。您可以尝试将数据写入.ts文件,然后等待几秒钟,然后开始播放。
如果你想实时写入数据,你必须添加全局选项-re,这使得ffmpeg实时读取输入,因此写入的速度不会比你可以播放的速度快。