多路推流软件地址格式详解
2024-3-30 乱云飞
0.7 地址格式0.7.0 特别提示
由于编解码涉及到很多参数,一般都按照默认参数进行处理。
部分用户有时候希望通过填入的播放地址就带上这些信息,比如通信协议、桌面采集的分辨率、编码保存是否转码、转码是否缩放原图等。
各种参数设置有个优先级,优先取地址中带的,没有带则取结构体中的,还没有则取默认值。
有些值会根据具体情况自动调整,比如本地设备采集没有硬解码,udp开头的视频流强制用udp协议,有些不支持硬解的格式自动将硬解码=none。
对于需要在地址中指定参数,对应占位符不填的需要占位符留空,不可以跳过。
占位符中填了对应参数的必须严格按照指定的格式要求,不按照则很可能导致解析失败。
参数用英文竖杠 | 隔开。
0.7.1 通用格式
格式要求: url|transport|decodeType|encodeVideo|encodeVideoFps|encodeVideoRatio|encodeVideoScale。
url表示媒体地址,比如 f:/1.mp3 d:/1.mp4 rtsp://192.168.0.100 等。
transport表示通信协议,可选 tcp/udp,一般用于rtsp视频流,很多时候在linux系统中必须指定tcp,rtsp摄像头才能正常采集。
decodeType表示解码策略,0-速度优先,1-质量优先,2-均衡处理,3-最快速度(不做音视频同步,收到就立马解码和显示)。
encodeVideo表示视频编码格式,0-不做处理,1-自动转码(源头是264就264/265就265),2-强制用264编码,3-强制用265编码。
encodeVideoFps表示编码帧率,默认取源头流的帧率,如果指定了则取指定的。
encodeVideoRatio表示视频压缩比率,对应bit_rate的值,在不改变分辨率的情况下,通过调整这个参数来控制保存文件体积的大小。范围值0-1。
encodeVideoScale表示视频缩放值,字符串类型,如果值float值,则相当于在原有分辨率按照这个值等比例缩放,比如encodeVideoScale=0.5,视频源分辨率是1920x720,则编码保存按照960x360这个分辨率保存。如果是640x480,则按照指定的这个分辨率强制缩放,可能会变形。
0.7.2 本地设备
格式要求:url|bufferSize|frameRate|codecName。
url表示媒体地址,采集摄像头统一约定 video=或者audio=开头。
bufferSize表示分辨率,可填1280x720这种,不填默认640x480。
frameRate表示帧率,不填默认25。
codecName表示解码器名称,有些本地摄像头可以指定解码器名称比如mjpeg/h264,前提是要该设备支持该解码器。默认为空则不指定会自动处理。
win系统如何查看设备名见本文档中 打开本地摄像头。
linux系统查看设备名直接执行命令 ls /dev/video * 即可,一般对应的设备名是 /dev/video0。
下面假定本地摄像头的设备名为 USB Video Device。
写法1:video=USB Video Device,这种写法默认按照640x480分辨率打开摄像头。
写法2:video=USB Video Device|1280x720|30,这种写法按照指定的分辨率1280x720以及采集帧率30来打开摄像头。
写法3:video=/dev/video0,这种是对应linux系统,程序内部会自动过滤和调整填入的地址。
写法4:audio=麦克风 (USB Audio Device),只采集本地麦克风。
写法5:video=USB Video Device:audio=麦克风 (USB Audio Device),同时采集本地摄像头和麦克风。
写法6:video=USB Video Device|1920x1080|30|h264,按照1080P分辨率30帧h264格式解码来打开摄像头。
约定audio=开头是只采集音频,video=开头可以采集视频或者视音频。
如果指定了分辨率和帧率则需要硬件支持才行,比如摄像头的最大分辨率是640x480,而指定了1280x720则会打开失败。
0.7.3 本地桌面
格式要求:url|bufferSize|frameRate|offsetX|offsetY|screenIndex|encodeVideoScale。
url表示媒体地址,采集桌面统一约定 screen=开头。
bufferSize表示采集分辨率,不填则默认取屏幕分辨率。
frameRate表示采集帧率,基本上在2-30之间,不填的话默认ffmpeg会设定一个值,有时候是30。
offsetX/offsetY表示偏移值XY坐标,从屏幕的左上角(0,0)开始。
screenIndex表示屏幕索引,不填的话则默认取当前鼠标所在屏幕。在多个屏幕的时候可通过此参数指定屏幕索引。
encodeVideoScale表示缩放,1表示原始比例(默认值1),0.2则表示按照原始分辨率等比例0.2倍缩放,也可以填400x300表示强制按照这个分辨率缩放。这个在高分辨率的时候特别有用,比如采集的桌面分辨率很大,但是传输的时候受限于带宽,需要等比例压缩一下再传输,此时可以填0.5/0.2之类的值。
写法1:screen=desktop,当前屏幕全屏采集。
写法2:screen=desktop||15|0|0|1,屏幕2全屏采集,帧率15。
写法3:screen=desktop|800x600|10|50|100,鼠标所在当前屏幕采集,采集区域rect(50,100,800,600),帧率10。
写法4:screen=desktop|10x10,约定10x10分辨率表示所有屏幕合并到一个屏幕采集,比如两个屏幕的时候,当做一个屏幕整体采集。当合并屏幕采集的时候,XY偏移值参数无效。
写法5:screen=desktop|800x600|25|1500|300|255,约定屏幕索引255则取用户自定义的区域,该字符串表示采集区域是(1500, 300, 800, 600),自由区域,可以任意指定,比如两个屏幕中间区域。前提只要保证该区域在两个屏幕区域中,如果超过了的话可能采集失败,这要求用户需要对采集区域精准定位。
写法6:screen=title=MainWindow,对指定窗口标题是MainWindow的窗体采集。支持中文标题比如screen=title=系统设置。
经过大量测试发现,如果打包发布的Qt程序带了qt.conf文件并且里面指定了 WindowsArguments = dpiawareness=0 ,在电脑分辨率设置了缩放比不为100%的时候,计算出来的桌面区域未必正确,建议如果此种情况下一定要采集正确的桌面,去掉qt.conf文件中的对应内容或者删除qt.conf文件即可。
0.7.4 电视频道
中央综合:http://39.135.138.60:18890/PLTV/88888910/224/3221225618/index.m3u8
中央新闻:http://39.135.138.60:18890/PLTV/88888910/224/3221225638/index.m3u8
中央音乐:http://39.135.138.60:18890/PLTV/88888910/224/3221225641/index.m3u8
中央电视:http://39.135.138.60:18890/PLTV/88888910/224/3221225635/index.m3u8
中央记录:http://39.135.138.60:18890/PLTV/88888910/224/3221225646/index.m3u8
中央少儿:http://39.135.138.60:18890/PLTV/88888910/224/3221225639/index.m3u8
湖南卫视:http://39.135.138.60:18890/PLTV/88888910/224/3221225745/index.m3u8
深圳卫视:http://39.135.138.60:18890/PLTV/88888910/224/3221225741/index.m3u8
上海纪实:http://39.135.138.60:18890/PLTV/88888910/224/3221225654/index.m3u8
天津卫视:http://39.135.138.60:18890/PLTV/88888910/224/3221225739/index.m3u8
0.7.5 视频文件
万能办法,用谷歌或者谷歌内核的浏览器,打开时光网 http://www.mtime.com/ ,随便打开个视频,这里一般是预告片,按F12切换到审查元素,顶部切换到网络,选中媒体,刷新网页,按照尺寸排列,最大的那个MP4文件就是,鼠标右键复制地址,这个地址就是完整的网络地址。
http://vfx.mtime.cn/Video/2021/11/16/mp4/211116131456748178.mp4
http://vfx.mtime.cn/Video/2023/03/09/mp4/230309152143524121.mp4
http://vfx.mtime.cn/Video/2023/03/07/mp4/230307085324679124.mp4
http://vfx.mtime.cn/Video/2022/07/18/mp4/220718132929585151.mp4
http://vfx.mtime.cn/Video/2022/12/17/mp4/221217153424902164.mp4
http://vfx.mtime.cn/Video/2022/07/04/mp4/220704110656040153.mp4
http://vfx.mtime.cn/Video/2021/02/08/mp4/210208150307073134.mp4
http://vfx.mtime.cn/Video/2021/05/11/mp4/210511114524329144.mp4
http://vfx.mtime.cn/Video/2021/04/20/mp4/210420113022586184.mp4
http://vfx.mtime.cn/Video/2021/03/13/mp4/210313111010421158.mp4
http://vfx.mtime.cn/Video/2020/01/15/mp4/200115125943120574.mp4
百度视频
https://vd2.bdstatic.com/mda-nhpqy7k8xamgiqw3/720p/h264/1661362621500413748/mda-nhpqy7k8xamgiqw3.mp4
https://vd2.bdstatic.com/mda-nhp9zvu4tiinsp7z/576p/h264/1661324637707658476/mda-nhp9zvu4tiinsp7z.mp4
https://vd4.bdstatic.com/mda-nhp77xn7fx3e0jgb/576p/h264/1661317610850513689/mda-nhp77xn7fx3e0jgb.mp4
https://vd2.bdstatic.com/mda-nhp72n8xvbtdcmcq/576p/h264/1661317214259599500/mda-nhp72n8xvbtdcmcq.mp4
https://vd2.bdstatic.com/mda-nhp6z0in87tvw77v/576p/h264/1661316943890074768/mda-nhp6z0in87tvw77v.mp4
http://vd3.bdstatic.com/mda-jennyc5ci1ugrxzi/mda-jennyc5ci1ugrxzi.mp4
http://vd2.bdstatic.com/mda-mhhf5mr00yyhpfjs/1080p/cae_h264/1629284581057661229/mda-mhhf5mr00yyhpfjs.mp4
http://vd2.bdstatic.com/mda-mhig1c3sw223mx8p/1080p/cae_h264/1629380139191731149/mda-mhig1c3sw223mx8p.mp4
http://vd3.bdstatic.com/mda-mekfm7wu6f4rtt99/1080p/cae_h264/1621595318412084671/mda-mekfm7wu6f4rtt99.mp4
http://vd2.bdstatic.com/mda-mesdm11tdp69a9ye/1080p/cae_h264/1622115758783335310/mda-mesdm11tdp69a9ye.mp4
时间很短的视频文件
https://highlight-video.cdn.bcebos.com/video/6s/95ae2066-ee02-11ed-9f01-6c92bf5ceb6f.mp4
https://highlight-video.cdn.bcebos.com/video/6s/1a74a352-d1fb-11ed-829b-6c92bf468c1f.mp4
https://highlight-video.cdn.bcebos.com/video/6s/e0d35168-edf5-11ed-8709-6c92bf3b0281.mp4
https://highlight-video.cdn.bcebos.com/video/6s/0757f6ec-ee03-11ed-85d3-6c92bf3b0af4.mp4
https://highlight-video.cdn.bcebos.com/video/6s/6ffb9cbe-ee01-11ed-916c-6c92bfb45e04.mp4
专业测试视频播放器的各种文件 http://samples.mplayerhq.hu/
0.7.6 监控设备
下面列出的是一些常用厂家的格式,不同厂家格式不一样,具体什么格式请咨询厂家索要对应的视频流格式,或者设备支持onvif的话,通过onvif工具搜索可以拿到视频流格式。
0.7.6.1 海康
实时预览格式:rtsp://admin:12345@192.168.1.128:554/Streaming/Channels/101?transportmode=unicast
视频回放格式:rtsp://admin:12345@192.168.1.128:554/Streaming/tracks/101?starttime=20120802t063812z&endtime=20120802t064816z
流媒体视频流:rtsp://172.6.24.15:554/Devicehc8://172.6.22.106:8000:0:0?username=admin&password=12345
日期时间格式:ISO 8601 表示Zulu(GMT) 时间 YYYYMMDD”T”HHmmSS.fraction”Z”,
单播多播说明:unicast表示单播,multicast表示多播,默认单播,可以省略。
通道码流说明:101,1是通道号,01是通道的码流编号,也可以是02、03,第2通道主码流=201,第16通道子码流=1602,依次类推。
0.7.6.2 大华
实时预览格式:rtsp://192.168.1.128:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
视频回放格式:rtsp://admin:12345@192.168.1.128:554/cam/playback?channel=1&subtype=0&starttime=2021_03_18_11_36_01&endtime=2021_03_18_12_05_01
格式内容说明:channel表示通道,subtype表示码流编号,日期时间字符串非常明确。
0.7.6.3 常规
实时预览格式:rtsp://admin:12345@192.168.1.128:554/live?channel=1&stream=1
视频回放格式:rtsp://admin:12345@192.168.1.128:554/file?channel=1&start=1494485280&stop=1494485480
其他通用格式:rtsp://admin:12345@192.168.1.128:554/0 0-主码流 1-子码流
日期时间说明:先转换时间戳,1970年到该时间经过的秒数。
0.7.7 指定协议
由于视频流源头限制,可能有些源头只支持tcp/udp协议的一种,就需要手动指定。
指定tcp协议打开视频流:rtsp://admin:12345@192.168.1.128/1|tcp
指定udp协议打开视频流:rtmp://livetv.dhtv.cn:1935/live/financial|udp
本文链接:http://80c.cc/ez/764.html
发表评论: