使用 ffmpeg 流式传输 mp4

Fib*_*con 17 mp4 ffmpeg streaming

我需要创建一个具有两个流(webm 和 mp4)的提要,以便它可以在所有 HTML5 视频播放器上兼容。webm 流完美运行。但是,当尝试访问mp4流时,服务器吐出以下错误:

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output
Run Code Online (Sandbox Code Playgroud)

这是 ffserver.conf 文件中处理 mp4 流的部分:

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>
Run Code Online (Sandbox Code Playgroud)

据我所知,有些人说 mp4 根本无法流式传输。我对 mp4 没有任何依恋,除了我的印象是您需要 mp4 才能使用 HTML5 视频播放器将视频流式传输到 iPhone。如果不是这种情况,请告诉我,我很乐意切换到使用 ffmpeg 流播放效果更好的内容。

har*_*ymc 6

来自您自己网站的 HTML 5 和 iPad 友好视频文章 ,最后更新时间为 2014 年 11 月 12 日,包含以下信息:

图片

这篇文章推荐使用 MP4 作为一个很好的解决方案,使用最新版本的 ffmpeg,使用带有 AAC 的 H.264 编码。

我建议阅读这篇文章并注意细节:它包含一个适用于所有主要浏览器的示例 HTML 文件,以及一个用于将视频转换为 .mp4 文件的示例 FFmpeg 命令,以便它们可以正确流式传输。