在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>