[英]Transcode H264 stream into mpeg2 with ffmpeg and nginx-rtmp module
我正在使用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};
但是,它只是不會在瀏覽器或設備上都不會顯示視頻,我的假設是它可能無法轉碼。
也許我缺少什么? 任何想法都受到高度贊賞。 謝謝。
您可能已經得到了答案,但以防萬一:
您沒有正確使用模塊,1)在iOS上,您需要將瀏覽器指向http:// localhost:80 / hls / $ {name}才能獲取HLS流。 2)您在配置中缺少http部分以生成HLS流
有關詳細信息,請參見此處: 如何使用ffmpeg將實時rtmp流轉碼為實時hls流?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.