ZLMediaKit 各种推拉流

1 用ffmpeg 推音视频流

./ffmpeg -f dshow -i video="HP Wide Vision HD Camera" -f dshow -i audio="麦克风阵列 (Realtek High Definition Audio)" -rtbufsize 100M -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -s 1280x720 -preset ultrafast -r 30 -g 30  -profile:v baseline -level 3.0 -acodec aac -f flv rtmp://172.16.0.28:1935/live/test

命令中各个参数的含义解释:

- `-f dshow`: 指定音视频输入设备为DirectShow。
- `-i video="HP Wide Vision HD Camera"`: 指定视频输入设备为名为"HP Wide Vision HD Camera"的摄像头。
- `-f dshow`: 指定音频输入设备为DirectShow。
- `-i audio="麦克风阵列 (Realtek High Definition Audio)"`: 指定音频输入设备为名为"麦克风阵列 (Realtek High Definition Audio)"的麦克风。
- `-rtbufsize 100M`: 设置实时缓冲大小为100MB。
- `-max_delay 100`: 设置最大延迟为100毫秒。
- `-pix_fmt yuv420p`: 设置输出像素格式为yuv420p。
- `-tune zerolatency`: 优化编码设置以实现低延迟。
- `-c:v libx264`: 指定视频编码器为libx264。
- `-crf 18`: 设置视频质量,值越小质量越高。
- `-s 1280x720`: 设置输出视频分辨率为1280x720。
- `-preset ultrafast`: 设置编码速度为ultrafast,牺牲压缩效率以提高编码速度。
- `-r 30`: 设置输出视频的帧率为30帧/秒。
- `-g 30`: 设置关键帧间隔为30帧。
- `-profile:v baseline`: 设置视频编码器的profile为baseline。
- `-level 3.0`: 设置视频编码器的level为3.0。
- `-acodec aac`: 指定音频编码器为AAC。
- `-f flv`: 指定输出格式为FLV。
- `rtmp://172.16.0.28:1935/live/test`: 指定输出目标为RTMP服务器上的地址"rtmp://172.16.0.28:1935/live/test"。

2 用ffmpeg 推桌面流

 ./ffmpeg -f gdigrab -thread_queue_size 1024 -rtbufsize 10M  -framerate 30 -offset_x 0 -offset_y 0 -draw_mouse 1 -i desktop -rtbufsize 100M  -max_delay 100 -pix_fmt yuv420p -tune zerolatency -c:v libx264 -crf 18 -preset ultrafast -r 30 -g 30 -s 1280x720  -profile:v baseline -level 3.0   -acodec aac -f flv rtmp://172.16.0.28:1935/live/test2

各个参数的含义解释:

- `-f gdigrab`: 指定视频输入设备为GDI屏幕抓取。
- `-thread_queue_size 1024`: 设置线程队列的最大大小为1024。
- `-rtbufsize 10M`: 设置实时缓冲大小为10MB。
- `-framerate 30`: 设置输入帧率为30帧/秒。
- `-offset_x 0`: 设置屏幕捕捉的水平偏移量为0。
- `-offset_y 0`: 设置屏幕捕捉的垂直偏移量为0。
- `-draw_mouse 1`: 允许绘制鼠标光标。
- `-i desktop`: 指定屏幕捕捉作为输入。
- `-rtbufsize 100M`: 设置实时缓冲大小为100MB。
- `-max_delay 100`: 设置最大延迟为100毫秒。
- `-pix_fmt yuv420p`: 设置输出像素格式为yuv420p。
- `-tune zerolatency`: 优化编码设置以实现低延迟。
- `-c:v libx264`: 指定视频编码器为libx264。
- `-crf 18`: 设置视频质量,值越小质量越高。
- `-preset ultrafast`: 设置编码速度为ultrafast,牺牲压缩效率以提高编码速度。
- `-r 30`: 设置输出视频的帧率为30帧/秒。
- `-g 30`: 设置关键帧间隔为30帧。
- `-s 1280x720`: 设置输出视频分辨率为1280x720。
- `-profile:v baseline`: 设置视频编码器的profile为baseline。
- `-level 3.0`: 设置视频编码器的level为3.0。
- `-acodec aac`: 指定音频编码器为AAC。
- `-f flv`: 指定输出格式为FLV。
- `rtmp://172.16.0.28:1935/live/test2`: 指定输出目标为RTMP服务器上的地址"rtmp://172.16.0.28:1935/live/test2"。

3 用ffplay拉RTMP流

 .\ffplay.exe -fflags nobuffer rtmp://172.16.0.28:1935/live/test

参数的含义解释:

- `.\ffplay.exe`: 启动FFplay播放器。
- `-fflags nobuffer`: 禁用缓冲模式,即实时播放模式,播放器立即显示接收到的画面,而不是等待缓冲大量数据再播放。
- `rtmp://172.16.0.28:1935/live/test`: 指定RTMP服务器上的流地址为"rtmp://172.16.0.28:1935/live/test",即要播放的视频流的地址。

4 用ffplay拉RTSP 流

.\ffplay.exe -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test
.\ffplay.exe -fflags nobuffer -rtsp_transport tcp rtsp://172.16.0.28:8554/live/test

各个参数的含义解释:

- `.\ffplay.exe`: 启动FFplay播放器。
- `-fflags nobuffer`: 禁用缓冲模式,即实时播放模式,播放器立即显示接收到的画面,而不是等待缓冲大量数据再播放。
- `-rtsp_transport tcp`: 指定RTSP传输协议为TCP。RTSP是一种用于流媒体传输的协议,通常使用UDP或TCP进行传输,此处通过TCP传输。
- `rtsp://172.16.0.28:8554/live/test`: 指定RTSP地址为"rtsp://172.16.0.28:8554/live/test",即要播放的RTSP流的地址。

5 用WebRTC播放视频流,延迟小

在浏览器上访问:

https://172.16.0.28:8443/webrtc/

用push表示推流,推流成功后,其他人可以用WebRTC播放,或者用vlc、ffplay播放

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值