流式“代理”转换视频格式

时间:2009-04-29 19:53:06

标签: iphone video streaming ffmpeg

这与我的another question

有关

在这里,我想问一下理论上(根据视频文件格式和编解码器等)是否可能有这样的场景:

1)iPhone上的客户端引用了flv格式的视频。只需单击Safari中的此类链接即可将http请求发送到像“{3}}一样转换”代理“

2)转换代理开始下载该flv文件并将其转换为mp4(iphone理解),将转换后的部分作为http响应返回,因此iPhone可以在下载并转换整个flv之前立即开始播放。 / p>

我正在玩ffmpeg试图做这样的事情,它确实转换flv并生成mp4文件,但是在转换完成或ffmpeg停止之前,mp4文件无法播放。如果我只是杀死ffmpeg进程,则无法播放mp4文件。如果我让它完成或按ctrl-c停止它,可以播放下载和转换的部分。似乎ffmpeg在收到停止信号后做了一些工作。这是mp4格式的必要部分还是可以采用不同的方式?我看到iPhone可以通过在整个文件下载到它之前开始播放来播放视频,所以一般来说这似乎是我的可能场景。

我简短的说法,我可以将flv文件转换为mp4文件,问题是我是否可以将flv流转换为mp4流。

1 个答案:

答案 0 :(得分:1)

根据wikipedia,MP4容器格式需要单独的“提示轨道”才能启用流式传输。我假设ffmpeg在转换结束时写了这个。如果iPhone OS需要这个音轨流式传输,我看不到使用不同格式流式传输实时视频的方法,并且在iPhone端有一个自定义解码器,类似于iPhone的Orb客户端的方式。