ZLMediaKit 各种推拉流

1 用ffmpeg 推音视频流

bash 复制代码
./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 推桌面流

bash 复制代码
 ./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流

bash 复制代码
 .\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 流

bash 复制代码
.\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播放视频流,延迟小

在浏览器上访问:

bash 复制代码
https://172.16.0.28:8443/webrtc/

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

相关推荐
AORO_BEIDOU4 小时前
迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
5g·安全·智能手机·信息与通信
AORO_BEIDOU13 小时前
热成像手机VS传统热成像仪:AORO A23为何更胜一筹?
人工智能·5g·安全·智能手机·信息与通信
陌夏微秋2 天前
硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)
matlab·硬件工程·信息与通信·信号处理
老哥不老2 天前
LTE及EPC技术原理(笔记)
笔记·信息与通信
今天还没学习2 天前
基于LabVIEW应用ARINC 429板卡实现数据通讯——(下篇)
信息与通信·labview
得之坦然,失之淡然。3 天前
FPGA实现USB2.0通信——基于CY7C68013A芯片
fpga开发·开源·信息与通信
北辰远_code3 天前
三层交换技术,eNSP实验讲解
计算机网络·信息与通信·三层交换机·ensp仿真实验
国产化嵌入式平台解决方案4 天前
【网络监控加速设备】国产化一站式高性能数据处理平台(海光CPU+复旦微FPGA)
网络·嵌入式硬件·信息与通信·网络监控·全国产化
AORO_BEIDOU4 天前
从“点”到“面”,热成像防爆手机如何为安全织就“透视网”?
5g·安全·智能手机·信息与通信
行十万里人生5 天前
HTTP 协议
后端·网络协议·http·网络安全·青少年编程·信息与通信·web