HTTP实时流,FFMPEG和ffserver的,和iPhone OS 3(HTTP Live St

2019-06-25 07:18发布

在iPhone OS 3,苹果已经推出了HTTP实时流应该允许视频的流媒体直播从互联网上。 我目前工作的摄像头,它送入我的服务器,然后通过的ffmpeg转换成FLV流,并流回出使用ffserver的。 有谁知道设置一个视频流是如何在iPhone可使用的ffmpeg和ffserver的使用? 我应该能够重新编码成在飞行中几乎任何格式。

Answer 1:

你需要建立的ffmpeg副本版本> = e109a29d6ddb02b2dd58c6c385ebec27f2d23b58(GIT)或18793(SVN)。 请确保您还指定--enable-libx264标志,当你正在构建。 一旦你已经得到了建立和运行,你可以做大致有以下几种:

ffmpeg -i <input video> -acodec libmp3lame -ac 1 -vcodec libx264 -s 320x240 \
       -level 30 -f mpegts - | \
segmenter - 10 test test.m3u8 http://example.com/path/to/your/files/

即把输入的文件或流进的ffmpeg和管带MP3音频的H.264视频到苹果的分割。 分段器吐出分段的视频文件,并指向分段文件M3U播放列表。 你会通过像Apache Web服务器服务于分段文件和播放列表。

显然,您需要调整ffmpeg的和分割的选项基本上让你后的结果。



Answer 2:

对于那些有兴趣谁我已经捆绑了一个脚本,将让您使用的ffmpeg要做到这一点,看看我的一个开源分割在iPhone上分割流项目。 它可以做的输入流多比特率段和将通过SCP,FTP,甚至高达AWS S3流段转移到一个可配置的目的地。



Answer 3:

这是一个很老的话题,但HLS支持,FFmpeg的一个看似新功能可能是有用的人。

一个例子使用情况如下:

ffmpeg -i <input_file> -c:v libx264 -preset slow -map 0 -an -flags -global_header -f hls -hls_time <segment_length> <m3u8_file>

如果你想这样做现场直播,这将是另一个例子:

ffmpeg -i <input_stream> -c:v libx264 -preset ultrafast -map 0 -an -flags -global_header -f hls -hls_time <segment_length> -hls_list_size <playlist_entries> -hls_wrap <wrap> <m3u8_file>

-hls_list_size参数限制文件的数量在播放列表,以及-hls-wrap参数限制了文件总数的数量,一旦进入到这一点(例如将包裹文件名:test0.ts,test1.ts ... TEST7 .TS,test0.ts,test1.ts ...当包裹为8)。

欲了解更多信息,请参阅该文档 。 请注意,上面的例子中去掉音频与-an标志,因为我从来没有需要它。



Answer 4:

这有什么错使用QuickTime转换电影到“iPhone”格式? 你只是做文件>导出> iPhone格式...我缺少的东西?

转换到iPhone格式后,我mediafilesegmenter(在发现砍它了苹果开发者,HTTP实时流工具 ):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

(注:文件夹名/文件夹必须存在)

然后指向你的iPhone与网站

<video src='folderName/prog_index.m3u8' height=45 width=70 
       controls='on'>Your browser does not support the video tag</video>


文章来源: HTTP Live Streaming, FFMPEG & FFSERVER, and iPhone OS 3