参数含义说明
1. 完整命令
1.1. windows系统
"""推流命令"""
ffmpeg -f dshow -video_size 1920x1080 -i video="@device_pnp_\\?\usb#vid_0c45&pid_6366&mi_00#6&183af011&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global" -vcodec libx264 -preset ultrafast -tune zerolatency -f mpegts udp://ip:port
"""拉流命令"""
ffplay -i "udp://ip:port" -fflags nobuffer
- -f dshow:表示使用DirectShow框架来捕获音/视频输入
- -video_size:设置视频图像的分辨率
- -i video=“Camera name”:用于指定输入的文件或设备
- -vcodec libx264:指定视频编码器为libx264,常用的还有h264、h265、mpeg等
- -preset ultrafast:用于设置编码器预设值,不同的预设值会影响编码器的压缩效率和效果。常见的包括:ultrafast(编码最快,压缩效率低)、superfast(编码较快,压缩率较低)、veryfast(编码快,压缩率较高)、faster(编码速度中等,较好的压缩率)、fast(速度一般,更好的压缩率)、medium(较好的压缩率和质量)、slow(较慢的压缩速度,压缩率和质量高)、slower(编码非常慢)、veryslow(编码非常慢)
- -tune zerolatency:与-preset一起使用,进一步调整预设值,可提高编码效率和质量。zerolatency(保证低延迟情况下进行编码,尽可能的实现实时编码和实时传输)
- -f mpegts:用于指定输出的文件格式为MPEG-TS
- udp://ip:port:采用UDP协议传输,ip为进行拉流的设备的ip地址,port为端口号,可以任意配置
- -fflags nobuffer:用于关闭ffmpeg内部缓存区域,提供更低的延迟和更好的实时性,但数据的完整性可能收到一定的影响
1.2. linux系统
"""推流命令"""
ffmpeg -f v4l2 -i /dev/video0 -r 30 -s 1920x1080 -vcodec libx264 -preset ultrafast -tune zerolatency -f mpegts udp://拉流主机ip:port
"""拉流命令"""
ffplay -fflags nobuffer udp://192.168.120.145:1234