FFmpeg超低延时推流命令
ffmpeg -rtbufsize 4M -i rtsp://admin:abcd1234@192.168.2.162:554/h264/ch1/main/av_stream \
-c:v libx264 -preset ultrafast -tune zerolatency -x264-params keyint=30:min-keyint=30:scenecut=0 -g 30 \
-c:a aac -b:a 128k -ar 44100 -ac 2 -strict -2 \
-f flv rtmp://127.0.0.1/live/test_show
参数解释
输入参数
-rtbufsize 4M
:设置实时缓冲区大小为4MB。-i rtsp://admin:abcd1234@192.168.2.162:554/h264/ch1/main/av_stream
:指定输入的RTSP流URL。
视频编码参数
-c:v libx264
:使用libx264视频编码器。-preset ultrafast
:使用最快的编码预设,以减少编码延迟。-tune zerolatency
:调优为零延迟模式,适用于实时应用。-x264-params keyint=30:min-keyint=30:scenecut=0
:设置关键帧间隔为30帧,并禁用场景切换检测以减少延迟。-g 30
:GOP大小设置为30帧,与关键帧间隔一致。
音频编码参数
-c:a aac
:使用AAC音频编码器。-b:a 128k
:音频比特率设置为128kbps。-ar 44100
:音频采样率设置为44.1kHz。-ac 2
:音频通道设置为立体声。-strict -2
:允许使用实验性AAC编码器。
输出参数
-f flv
:输出格式为FLV,适用于RTMP流。rtmp://127.0.0.1/live/test_show
:指定输出的RTMP流URL。
实现步骤
-
安装FFmpeg:
确保已安装FFmpeg,可以使用以下命令进行安装:sudo apt-get update sudo apt-get install ffmpeg
-
启动ZLMediaKit服务器:
- ZLMediaKit安装地址
-
运行FFmpeg命令:
运行上面的FFmpeg命令,将RTSP流推送到流媒体服务器:ffmpeg -rtbufsize 4M -i rtsp://admin:abcd1234@192.168.2.162:554/h264/ch1/main/av_stream \ -c:v libx264 -preset ultrafast -tune zerolatency -x264-params keyint=30:min-keyint=30:scenecut=0 -g 30 \ -c:a aac -b:a 128k -ar 44100 -ac 2 -strict -2 \ -f flv rtmp://127.0.0.1/live/test_show
打开https://localhost/webassist/
进行测试: