使用FFmpeg实时转流(RTSP摄像头到服务器)
确保已安装FFmpeg并拥有摄像头RTSP地址及目标服务器推流地址(如RTMP)。
ffmpeg -i "rtsp://摄像头地址" -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -f flv "rtmp://服务器地址/stream_key"
参数说明:
- -i "rtsp://摄像头地址":输入源为RTSP流。
- -c:v libx264:视频编码为H.264。
- -preset ultrafast:加快编码速度以适应实时性。
- -tune zerolatency:降低延迟。
- -c:a aac:音频编码为AAC(若需保留音频)。
- -f flv:输出格式为FLV(兼容RTMP)。
优化与调试
降低延迟:添加-rtsp_transport tcp强制使用TCP传输(避免UDP丢包导致问题)。
ffmpeg -rtsp_transport tcp -i "rtsp://摄像头地址" -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -f flv "rtmp://服务器地址/stream_key"
视频参数调整:通过-b:v控制码率,-g设置关键帧间隔(如2秒)。
ffmpeg -i "rtsp://摄像头地址" -c:v libx264 -b:v 2000k -g 50 -preset ultrafast -tune zerolatency -f flv "rtmp://服务器地址/stream_key"
纯视频推流:若无需音频,添加-an关闭音频。
ffmpeg -i "rtsp://摄像头地址" -c:v libx264 -preset ultrafast -an -f flv "rtmp://服务器地址/stream_key"
后台运行与日志
后台运行:使用nohup或screen保持进程长期运行。
nohup ffmpeg -i "rtsp://摄像头地址" -c:v libx264 -preset ultrafast -f flv "rtmp://服务器地址/stream_key" > ffmpeg.log 2>&1 &
日志监控:通过tail -f实时查看日志。
tail -f ffmpeg.log
故障排查
检查RTSP可用性:先用ffplay测试摄像头流是否正常。
ffplay -rtsp_transport tcp "rtsp://摄像头地址"
服务器验证:使用推流工具(如OBS)测试服务器地址是否有效。
网络延迟:若出现卡顿,尝试降低分辨率或码率。
ffmpeg -i "rtsp://摄像头地址" -vf scale=640:360 -c:v libx264 -b:v 1000k -preset ultrafast -f flv "rtmp://服务器地址/stream_key"
评论前必须登录!
注册