为什么可以将mp4推成rtmp流而不是rtsp流?

为什么可以将mp4推成rtmp流而不是rtsp流?

我使用 nginx 构建流服务器,并且可以使用以下命令将 MP4 推送到 rtmp 流中:

ffmpeg -re -i /mnt/hls/m7.mp4  -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://127.0.0.1/live

现在我想用rtsp格式推送:

ffmpeg -re  -i /mnt/hls/m7.mp4  -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live

遇到的错误信息:

[tcp @ 0x55c7d6a157c0] Connection to tcp://127.0.0.1:554?timeout=0 failed: Connection refused
Could not write header for output file #0 (incorrect codec parameters ?): Connection refused
Error initializing output stream 0:0 -- 
[aac @ 0x55c7d65b6500] Qavg: nan
[aac @ 0x55c7d65b6500] 1 frames left in the queue on closing
Conversion failed!

答案1

不是这样的seems that you remove or missing the correct encoding value
我的 vps 上没有构建 rtsp 服务器,只有 rtmp 服务器嵌入在 nginx 中。

url="https://github.com/aler9/rtsp-simple-server/releases/download/v0.18.2/rtsp-simple-server_v0.18.2_linux_amd64.tar.gz"
curl  -L $url -O 
tar -xzf rtsp-simple-server_v0.18.2_linux_amd64.tar.gz
./rtsp-simple-server

现在我们可以使用ffmpeg在服务器上推送rtsp流:

ffmpeg -re  -i /mnt/hls/m7.mp4  -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live

它运行良好!

相关内容