我希望与HTTP Live Streaming
一起投放直播,但我对libx264
或其他内容有疑问。
我的硬件和软件环境:
Nginx
和FFmpeg
(在Ubuntu中)我能够流式传输静态视频文件(在Ubuntu中使用Nginx和FFmpeg)。
FFmpeg
命令如下:
$ffmpeg -i /my/sample/video.mp4 -codec:v libx264 -f hls /output/file.m3u8
但是当谈到网络摄像头(直播)时,Mac OS Safari无法打开流。我使用了以下命令:
$ffmpeg -i /dev/video0 -codec:v libx264 -f hls /output/file.m3u8
我想这是libx264
的问题,因为当我使用mpeg2video
编码器时,Mac OS Safari确实可以播放该流:
$ffmpeg -i /dev/video0 -codec:v mpeg2video -f hls /output/file.m3u8
我知道有一个名为video4linux2
的库,我应该使用video4linux2来捕获我的网络摄像头吗?但我不知道HTTP Live Streaming的相应FFmpeg
命令(我尝试过FFserver,但有类似cannot rename hls
的错误)
答案 0 :(得分:1)
我已经弄明白了!
Mac OS Safari无法打开由libx264
编码的HTTP直播流的原因是因为Mac OS中的默认编解码器不支持libx264
的默认输出!
只需将-pix_fmt yuv420p
添加到FFmpeg
命令,一切正常:
$ffmpeg -f video4linux2 -i /your/webcam/path -codec:v libx264 -pix_fmt yuv420p /output/file.m3u8