Video ffmpeg是否在完成转码后重写标头?

Video ffmpeg是否在完成转码后重写标头?,video,ffmpeg,transcoding,Video,Ffmpeg,Transcoding,我们的客户端发送从服务器下载电影文件的请求。当服务器接收到请求时,它将启动ffmpeg进程来对电影进行转码。ffmpeg的输出临时保存到硬盘上。我们不想让客户端在转码完成后等待下载文件,所以我们将输出数据作为生成的数据发送 问题是ffmpeg似乎在完成转码后重写了输出文件头,因此下载的文件(在客户端)没有正确的文件头,播放器无法播放 我的问题是,有没有办法让ffmpeg不重写标题?这个问题的解决方案应该是什么 编辑:该命令用于将mp4容器中的H264/AAC代码转换为H264/AACYesffm

我们的客户端发送从服务器下载电影文件的请求。当服务器接收到请求时,它将启动ffmpeg进程来对电影进行转码。ffmpeg的输出临时保存到硬盘上。我们不想让客户端在转码完成后等待下载文件,所以我们将输出数据作为生成的数据发送

问题是ffmpeg似乎在完成转码后重写了输出文件头,因此下载的文件(在客户端)没有正确的文件头,播放器无法播放

我的问题是,有没有办法让ffmpeg不重写标题?这个问题的解决方案应该是什么


编辑:该命令用于将mp4容器中的H264/AAC代码转换为H264/AAC

Yes
ffmpeg
返回到文件的开头,并更新结构以指示仅在文件完成时可用的有效大小


<> P>为了能够流“Live”,你应该考虑通过使用RTSP协议的另一种方法传递有效的视频/音频。不完整的MP4文件在完全完成之前无法正常播放。

输出文件格式是什么?flv,mp4?您的ffmpeg命令是什么?对于mp4,moov原子写在文件的末尾。在文件编码完成之前,无法实现这一点。客户端需要moov atom进行播放,因此需要在播放之前下载完整的文件:除非moov atom移动到开头(使用
-movflags faststart
或等效工具)。MP4容器并不是一个很好的选择,我想你正在尝试做的事情。谢谢,了解MoovAtom很好,但我不尝试做流式或渐进式下载。正如我在问题中所说的,我希望客户端在转码过程中下载文件。我不想制作实时流,我希望用户能够在转码过程中下载电影。看起来,在ffmpeg完成转码后,我必须重新下载电影文件头。有没有办法让ffmpeg在文件末尾写入头er信息?