HTTP 直播、FFMPEG 和 FFSERVER 和 iPhone OS 3

发布于 2024-07-25 22:02:19 字数 393 浏览 7 评论 0原文

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

In iPhone OS 3, Apple has introduced HTTP Live Streaming which should allow live streaming of video from the internet. I am currently operating a webcam, which feeds into my server, and is then converted into a flv stream by ffmpeg, and streamed back out using ffserver. Does anyone know how to setup a video stream the iPhone can use using ffmpeg and ffserver? I should be able to re-encode into just about any format on the fly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦一生花开无言 2024-08-01 22:02:19

您需要构建版本 >= e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) 或 18793 (svn) 的 ffmpeg 副本。 确保在构建时还指定 --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 视频通过管道传输到 Apple 的分段器中。 分段器吐出分段视频文件和指向分段文件的M3U播放列表。 您可以通过 Apache 等 Web 服务器提供分段文件和播放列表。

显然,您需要大幅调整 ffmpeg 和分段器选项以获得您想要的结果。

You'll need to build a copy of ffmpeg with a version >= e109a29d6ddb02b2dd58c6c385ebec27f2d23b58 (git) or 18793 (svn). Make sure you also specify the --enable-libx264 flag when you're building. Once you've got that up and running, you can do roughly the following:

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/

i.e. Bring an input file or stream into ffmpeg and pipe an H.264 video with MP3 audio into Apple's segmenter. The segmenter spits out segmented video files and M3U playlists pointing to the segmented files. You'd serve the segmented files and playlists via a web server like Apache.

Obviously you'll want to tweak the ffmpeg and segmenter options substantially to get the results you're after.

小姐丶请自重 2024-08-01 22:02:19

对于那些感兴趣的人,我将一个开源分段器与一个脚本捆绑在一起,让您可以使用 ffmpeg 来执行此操作,请参阅我的 iPhone 上的分段流式传输 项目。 它可以对输入流进行多比特率分段,并通过 scp、ftp 甚至 aws s3 将流分段传输到可配置的目的地。

For those who are interested I've bundled an open source segmenter with a script that will let you use ffmpeg to do this, see my segmented streaming on the iphone project. It can do multi-bitrate segments for the input streams and will transfer the stream segments to a configurable destination via scp, ftp and even up to aws s3.

你的心境我的脸 2024-08-01 22:02:19

这是一个相当老的话题,但是 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 标志删除音频,因为我个人从来不需要它。

This is quite an old topic, but HLS support, a seemingly new feature of FFmpeg might be useful to someone.

An example use would be as follows:

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

If you would like to do live streaming, this would be another example:

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>

The -hls_list_size argument limits the number of files in the playlist, and the -hls-wrap argument limits the number of files total and will wrap filenames once it gets to that point (ex: test0.ts, test1.ts... test7.ts, test0.ts, test1.ts... when wrap is 8).

For more information, see the documentation. Please note, the above examples strip out audio with the -an flag, as I personally never needed it.

空心空情空意 2024-08-01 22:02:19

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

转换为 iPhone 格式后,我用 mediafilesegmenter 将其切碎(可在 Apple Developer Connection,Http Live Streaming Tools):(

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

注意:folderName/ 文件夹必须存在)

然后将您的 iPhone 指向一个网站

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

What's wrong with using QuickTime to convert movies to "iPhone" format? You just do File > Export > iPhone format... Am I missing something?

After converting to iPhone format, I chop it up with mediafilesegmenter (found at Apple Developer Connection, Http Live Streaming Tools):

mediafilesegmenter -t 10 -f folderName/ nameOfInputFile.m4v

(Note: the folderName/ folder must exist)

Then point your iPhone to a website with

<video src='folderName/prog_index.m3u8' height=45 width=70 
       controls='on'>Your browser does not support the video tag</video>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文