在 iPhone OS 3 中,Apple 引入了 HTTP 直播 这应该允许来自互联网的视频直播。我目前正在操作一个网络摄像头,它输入到我的服务器中,然后由 ffmpeg 转换为 flv 流,并使用 ffserver 流回输出。有谁知道如何使用 ffmpeg 和 ffserver 设置 iPhone 可以使用的视频流?我应该能够即时重新编码为任何格式。

有帮助吗?

解决方案

您将需要建立的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的和分割的选项基本上让你后的结果。

其他提示

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

这是相当一个老话题,但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标志,如下我个人从未需要它。

使用 QuickTime 将电影转换为“iPhone”格式有什么问题吗?您只需执行“文件”>“导出”>“iPhone 格式”...我错过了什么吗?

转换为 iPhone 格式后,我用 mediafilesegmenter 将其切碎(可在 Apple 开发者连接,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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top