我正在使用nginix web服务器和nginx-rtmp模块来管理我在h264中编码的视频流。这是我的nginx conf:
rtmp {
server {
listen 1935;
application big {
live on;
exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec
libx264 -vprofile baseline -acodec libvo_aacenc -ac 1 -ar 441000
-f flv rtmp://localhost:1935/hls/${name};
}
}
application hls
{
live on;
hls_path /usr/local/nginx/html/video;
}
}
它在浏览器中运行良好,但是因为我的移动客户端是Adobe Air,它只适用于Android而不适用于Apple,因为Apple不支持通过AIR应用程序进行H264编码,因此我尝试将流转码为支持的内容例如mpeg。这就是我改变我的ffmpeg的方式:
exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec
mpeg2video -acodec copy -b:v 10M -b:a 128k
-f mpegts rtmp://localhost:1935/hls/${name};
然而,它不会在浏览器或设备上显示视频,我的假设是它可能无法转码。
也许我错过了什么?任何想法都受到高度赞赏。 谢谢。
答案 0 :(得分:0)
你可能已经得到了答案,但以防万一:
您没有正确使用该模块, 1)在iOS上,您需要将浏览器指向http://localhost:80/hls/ $ {name}以获取HLS流。 2)您在配置中缺少http部分以生成HLS流
详情请见此处:How can we transcode live rtmp stream to live hls stream using ffmpeg?