Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone “流媒体”;委托书;转换视频格式_Iphone_Video_Streaming_Ffmpeg - Fatal编程技术网

Iphone “流媒体”;委托书;转换视频格式

Iphone “流媒体”;委托书;转换视频格式,iphone,video,streaming,ffmpeg,Iphone,Video,Streaming,Ffmpeg,这与我的工作有关 在这里我想问一下,理论上(根据视频文件格式和编解码器等)是否可能出现这样的情况: 1) iPhone上的客户端引用了flv格式的视频。它只需在Safari中单击此类链接,即可向“代理”发送http请求 2) 转换代理开始下载flv文件,并将其动态转换为mp4(iphone可以理解),将转换后的部分作为http响应返回,以便iphone可以在下载和转换整个flv之前立即开始播放它 我正在玩ffmpeg,试图做这样的事情,它确实转换flv并生成mp4文件,但mp4文件不能播放,直到

这与我的工作有关

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

1) iPhone上的客户端引用了flv格式的视频。它只需在Safari中单击此类链接,即可向“代理”发送http请求

2) 转换代理开始下载flv文件,并将其动态转换为mp4(iphone可以理解),将转换后的部分作为http响应返回,以便iphone可以在下载和转换整个flv之前立即开始播放它

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


简而言之,我可以将flv文件转换为mp4文件,问题是我是否可以将flv流转换为mp4流。

根据,mp4容器格式需要单独的“提示跟踪”来启用流。我假设ffmpeg会在转换结束时编写此代码。如果iPhone操作系统需要此曲目来流媒体,那么除了使用不同的格式和iPhone端的自定义解码器之外,我看不到一种流媒体直播视频的方法,就像iPhone的Orb客户端所做的那样。

根据,MP4容器格式需要一个单独的“提示曲目”来启用流媒体。我假设ffmpeg会在转换结束时编写此代码。如果iPhone操作系统要求播放这首曲目,那么除了使用不同的格式和iPhone端的自定义解码器之外,我看不到一种播放实时视频的方式,就像iPhone的Orb客户端所做的那样。

感谢您指出这一点,我不知怎么错过了它。无论如何,如果我杀死ffmpeg进程,结果mp4文件根本不能播放,不仅仅是iphone。因此,看起来ffmped添加了比提示音轨更为必要的内容。如果我让ffmpeg完成其工作或停止它而不是终止,生成的mp4可以流式传输。听起来像是在转换结束或正常中止时写入的一些基本头信息。也许其中一些是预生成的(帧数、长度等),而另一些是伪造的(文件大小、比特率信息等)?我认为您必须破解ffmpeg/x264源代码才能做到这一点。您可能还想尝试一下VideoLAN,因为它从一开始就是为流媒体而构建的。感谢您指出这一点,不知怎的,我错过了它。无论如何,如果我杀死ffmpeg进程,结果mp4文件根本不能播放,不仅仅是iphone。因此,看起来ffmped添加了比提示音轨更为必要的内容。如果我让ffmpeg完成其工作或停止它而不是终止,生成的mp4可以流式传输。听起来像是在转换结束或正常中止时写入的一些基本头信息。也许其中一些是预生成的(帧数、长度等),而另一些是伪造的(文件大小、比特率信息等)?我认为您必须破解ffmpeg/x264源代码才能做到这一点。您可能还想尝试VideoLAN,因为它是为从一开始就进行流式传输而构建的。