我可以使用 FFmpeg 转码文件并即时读取输出文件吗?

Sur*_*edi 2 mp4 ffmpeg streaming transcode

我有一个 .M3U8 流,我可以下载它并使用 FFmpeg 进行转换: ffmpeg -protocol_whitelist file,http,https,tcp,tls -i "org_file.m3u8" -c copy -bsf:a aac_adtstoasc output.mp4 但是我无法在转码时打开 output.mp4 文件。

slh*_*hck 7

常规 MP4 文件在转码时无法播放,因为一旦编码完成,MOOV 原子(解析文件所需的)就会写入到末尾。在许多情况下,它被移动到文件 \xe2\x80\x93 的开头,这就是-movflags +faststart\xe2\x80\x93 的作用,但您仍然必须等待文件被写入一次。

\n\n

碎片 MP4 (fMP4) 文件是一种特殊类型的 MP4 文件,可以在写入时读取,请参阅此答案。用于-movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov启用碎片。

\n\n

只要写入了足够的数据量,MPEG-2 传输流文件就可以在写入时播放。您可以尝试将数据写入.ts文件,然后等待几秒钟,然后开始播放。

\n\n

如果你想实时写入数据,你必须添加全局选项-re,这使得ffmpeg实时读取输入,因此写入的速度不会比你可以播放的速度快。

\n