流“代理”视频格式转换

问题描述:

这关系到我的another question流“代理”视频格式转换

在这里,我想问问如果是在理论(根据视频文件格式和编解码器等),可能有这样的情况:

1)iPhone上的客户端提供了flv格式的视频。它发送HTTP请求到在Safari

2只需点击这样的链路转换“代理”等http://convproxy.com?source=url_of_original_video.flv)转换代理开始下载该FLV文件并将其转换为MP4(其iphone理解)上的苍蝇,返回转换部为http响应,因此iPhone可以在整个flv下载并转换之前立即开始播放。

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

我的短语,我可以将flv文件转换为mp4文件,问题是如果我可以将flv流转换为mp4流。

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

+0

感谢您指出这一点,我错过了它。无论如何,如果我杀死ffmpeg进程,结果mp4文件根本无法播放,不仅仅是iphone。所以看起来像ffmped增加了一些比提示轨道更加必要的东西。 – 2009-04-29 22:07:32