Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.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
Ios 如何在Unix上实现HTTP直播服务器?_Ios_Ubuntu_Ffmpeg_Video Streaming_Http Live Streaming - Fatal编程技术网

Ios 如何在Unix上实现HTTP直播服务器?

Ios 如何在Unix上实现HTTP直播服务器?,ios,ubuntu,ffmpeg,video-streaming,http-live-streaming,Ios,Ubuntu,Ffmpeg,Video Streaming,Http Live Streaming,我刚刚意识到苹果需要HTTP直播才能在iPhone应用程序中观看视频。我以前不知道这件事。。。我现在正试图了解这涉及到什么,这样我就可以决定我是想做这项工作,让视频在3G中可用,还是限制视频播放给连接到wi-fi的用户 我阅读了苹果公司提供的资料,现在明白了我的服务器需要对我的媒体文件进行分段和索引。我也明白,我不需要托管内容就可以对其进行流式传输(我可以指向其他地方托管的视频,对吗?) 现在我不清楚的是在我的服务器(Ubuntu Hardy)上实现什么,以便实时进行实际的分段和索引(再一次,我

我刚刚意识到苹果需要HTTP直播才能在iPhone应用程序中观看视频。我以前不知道这件事。。。我现在正试图了解这涉及到什么,这样我就可以决定我是想做这项工作,让视频在3G中可用,还是限制视频播放给连接到wi-fi的用户

我阅读了苹果公司提供的资料,现在明白了我的服务器需要对我的媒体文件进行分段和索引。我也明白,我不需要托管内容就可以对其进行流式传输(我可以指向其他地方托管的视频,对吗?)

现在我不清楚的是在我的服务器(Ubuntu Hardy)上实现什么,以便实时进行实际的分段和索引(再一次,我不主持我想要提供的视频)

我找到了一个解释如何安装FFmpeg和X264的方法,但我不知道这是否是最好的解决方案(因为我有一个Ubuntu服务器,我不能使用Apple Live Streaming工具,对吗?)。另外,我不知道我的服务器在哪一点知道视频需要转换并开始工作


如果有任何反馈能够帮助我准确地了解服务器端应该做些什么,以便能够在我的3G iPhone应用程序上传输视频,我将不胜感激!(哦,只是它有什么不同,我的应用程序后端在Rails中)

如果你想从你的网络摄像头流式传输实时内容:FMLE(flash media live encoder)

如果要流式传输静态内容(电影):ffmpeg和xuggle

red5:

您的媒体服务器可以是red5(开源和免费)或FMS或wowza。但是我只用了红色5,其他的我都不知道。你可以找到red5

您的服务器可以在任何地方,但您将需要打开一些端口(1935为rtmp至少),5080为“管理面板”,您可以在列表中看到9999。(检查文档)Red5是java中的媒体服务器,因此您需要java jdk>=1.6

可以找到Red5 1.0 RC。您可以找到适用于windows、osx或linux的版本。我用的是柏油球版本。提取它并运行“red5.sh”。你应该能够访问管理员在,你也应该看到一个视频正在显示。如果没有,则是出了问题,在这起作用之前,你不能再往前走

带有ffmpeg的流:

你可以找到xuggle,你可以找到更多关于这个的信息

请记住,如果你想在网络上播放,只有flv和mp4可以在flash player中播放(我想)。一旦它的流,你应该能够看到它在“管理面板”。连接到您的服务器(rtmp://localhost/live/)然后转到“视图”选项卡并放置“livestream”。你可以使用mplayerrtmp://localhost/live/livestream 我也想看你的视频

flash播放器中的流:


您可以使用flowplayer(带有rtmp插件)或jwplayer。

流式传输HLS的最简单方法是使用Wowza或FMIS(两者都不便宜)。Wowza将接受输入(实时流或存储的VOD内容,并在运行中进行分割。

有几种竞争技术,但今天如果您希望任何文件都能兼容苹果设备(iPhone、iPad等)上的流媒体,则然后HLS是一个不错的选择。顺便说一句,它也受到大多数浏览器和Android的支持,所以这不是一个好的开始。注意,尽管有名字,但它不适合流式直播内容

除非你想要现场视频,否则你真的不需要red5或wowza或fms或类似的东西。HLS基本上是一组短视频片段(例如,每段5分钟)以不同比特率编码,并在浏览器中为flash或基于HTML5的播放器提供m3u播放列表。由您决定片段长度或编码方式

这是我看过的关于如何选择分辨率、比特率、段大小等的最好的文章:

例如,您可以从那里创建一个目录结构,例如

/data/video/video_id/original.mp4 /data/video/video_id/quality1/chunk1.mp4 /data/video/video_id/quality1/chunk2.mp4 /data/video/video_id/quality2/chunk1.mp4 etc.. /数据/video/video\u id/original.mp4 /数据/视频/视频_id/quality1/chunk1.mp4 /数据/视频/视频_id/quality1/chunk2.mp4 /数据/视频/视频_id/quality2/chunk1.mp4 等 然后,您需要为所有区块和质量生成一个m3u播放列表,这取决于播放器本身来实现质量之间的切换和播放下一个文件(大多数现代播放器已经有了)


我还强烈建议您退房:-苹果提供了一系列免费工具来准备HTTP直播的视频和播放列表。

我建议使用FMLE和red5(通过rtmp)如果没有人回答,我会稍后再回答。谢谢你的回答。我只想澄清一件事,我对录制的视频感兴趣,而不是直播节目。为了从服务器上传输内容,你几乎必须托管内容。你认为托管和服务之间有什么区别?公认的答案没有任何区别不要问你的问题,所以我不知道你为什么接受它。你是对的,我必须托管HTTP实时流媒体内容(即分段内容,但不是原始内容)。在这一点上,被接受的答案是有效的,也是我最好的选择。如果你有更好的建议,请在下面写下你的笔记,我会很乐意接受。下面是一个后续问题:以防你能再次提供帮助!谢谢。谢谢罗曼,一个优秀的链接(现场自适应流媒体-由Jan Ozer撰写)Wowza免费试用,值得一试 /data/video/video_id/original.mp4 /data/video/video_id/quality1/chunk1.mp4 /data/video/video_id/quality1/chunk2.mp4 /data/video/video_id/quality2/chunk1.mp4 etc..