Я использую модули nginx и rtmp для потоковой передачи в реальном времени hls и mpeg-dash. вот моя команда RTMP в Nginx .confКоманда ffmpeg exec не работает в nginx rtmp
rtmp {
server {
listen 1936;
application mypull {
live on ;
meta copy;
allow play all;
pull rtmp://184.72.239.149/vod/BigBuckBunny_115k.mov name=test live=1;
exec_push /usr/bin/ffmpeg -re -i rtmp://localhost:1936/mypull/$name -vcodec libx264 -acodec libmp3lame -f flv rtmp://localhost:1936/hls/$name;
}
application dash {
live on;
dash on;
dash_path /tmp/dash;
dash_nested on;
dash_fragment 5s;
dash_playlist_length 30s;
}
application hls {
live on;
hls on;
hls_playlist_length 30s;
hls_fragment 5s;
hls_path /tmp/hls;
}
}
}
но это не играет. кажется, что команда ffmpeg даже не работает. и папки hls и dash пусты. Может ли кто-нибудь помочь мне с этим?
После замены переменных с фактическим StreamID, делает командную работу FFmpeg из командной строки ? –
это настоящий id, мой nginx.conf точно такой. он не создает никакого вывода. @GergelyLukacsy – evan
№. Идентификатор потока подставляется в переменной '$ name'. Когда вы открываете поток, URL-адрес выглядит так: 'rtmp: //server.com: 1935/mypull/12345', где' 12345' - ваш идентификатор потока. Я думаю, что вы можете заменить что-либо в этом случае, поэтому попробуйте использовать эту консоль: 'ffmpeg -re -i rtmp: // localhost: 1936/mypull/123 -vcodec libx264 -acodec libmp3lame -f flv rtmp: // localhost: 1936/hls/123' Также убедитесь, что порт открыт в настройках брандмауэра. Почему вы используете 1936 для RTMP? Значение по умолчанию - 1935. –