我正在尝试使用 FFmpeg 将视频从 rtsp 服务器流式传输到 rtmp 服务器。 为我的命令尝试了多个参数:
ffmpeg.exe -re -i "rtsp://10.65.28.251:11442/video/live" -pix_fmt yuv420p -codec:v libx264 -tune animation -preset fast -crf 23 -maxrate 4M -bufsize 8M -f flv "rtmp://10.65.58.21:1935/rec/XB"
ffmpeg.exe -re -i "rtsp://10.65.28.251:11442/video/live" -preset ultrafast -vcodec libx264 -tune zerolatency -b 900k -f flv "rtmp://10.65.52.131:1935/rec/XB
如图所示,我丢失了很多包裹。我对 FFmpeg 还很陌生,所以我很确定我弄乱了参数。
我的目标是在 rtmp 上获得最低 30fps 的视频,并尽可能减少丢失的包。如果需要的话,降低视频质量就可以了。
知道我做错了什么吗?
谢谢!
正如 kesh 上面指出的那样,删除 -re 产生了很大的不同。我最终得到了这个命令,它在 30fps 下保持了相当好的质量。
ffmpeg.exe -i "rtsp://serversource:11442" -filter:v fps=fps=30 -crf 40 -preset ultrafast -vcodec libx264 -f flv "rtmp://servertarget:1935"
您正在通过 UDP 拉取 RTSP 流。 尝试 'ffmpeg -rtsp_flags Preferred_tcp -rtsp_transport tcp -i rtsp://some_rtsp_url' 强制通过 TCP 拉取 rtsp 流