Blackmagic Camera App 3.5以上版本 自定义Live Stream直播推流配置
首先官方文档太老了,网上能找到的都是用于2.x版本的App的配置,而3.5版本的配置就完全不一样了,官方文档太老了,并且是针对Blackmagic Camera相机的而不是Blackmagic Camera App的,在App上不能用,甚至会闪退
咩咩测试了N次找到了正确的配置Key,实现了修改分辨率和修改码率
直播的分辨率跟随录制的的分辨率设置,编码器也是(注意一般rtsp只接受H264),帧率跟随左上角的帧率设置,直播的质量设置则是实时生效的(降码率很快,升码率有点慢)
将配置文件保存成 .xml 后缀的文件,在App的Live Stream设置的Platform最下面Import导入文件,然后勾选
这是一个哔哩哔哩的推流服务设置,如果要推到其他地方,你只需要修改name和url就可以用
<?xml version="1.0" encoding="UTF-8"?>
<streaming>
<service>
<name>哔哩哔哩</name>
<servers>
<server>
<name>Server</name>
<url>rtmp://live-push.bilivideo.com/live-bvc/</url>
</server>
</servers>
<profiles>
<profile>
<name>Streaming High</name>
<config resolution="2160p" fps="60">
<bitrate>40000000</bitrate>
<audio-bitrate>192000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="1080p" fps="60">
<bitrate>20000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="2160p" fps="30">
<bitrate>20000000</bitrate>
<audio-bitrate>192000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="1080p" fps="30">
<bitrate>10000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="720p" fps="30">
<bitrate>4000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
</profile>
<profile>
<name>Streaming Medium</name>
<config resolution="2160p" fps="30">
<bitrate>15000000</bitrate>
<audio-bitrate>192000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="1080p" fps="30">
<bitrate>8000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="720p" fps="30">
<bitrate>4000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
</profile>
<profile>
<name>Streaming Low</name>
<config resolution="2160p" fps="30">
<bitrate>12000000</bitrate>
<audio-bitrate>160000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="1080p" fps="30">
<bitrate>6000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
<config resolution="720p" fps="30">
<bitrate>3000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
</profile>
</profiles>
</service>
</streaming>其中 config 中的 resolution 必须是我这样的配置,必须有 1080p , HD , 4K 这些配置会闪退,也必须包含 fps 和 30,如果你使用的fps在配置里没有,他会用 30 对应的码率,另外 bitrate 的 10000000 就是10M码率,而 audio-bitrate 只能是128k,他好像只支持这个,如果配置对不上,需要重新选一下设置里的质量
如果你不想要那么多,只是想改个码率,默认会回退到分辨率 1080p ,帧率 30 的配置的码率,所以只写这个也行
<?xml version="1.0" encoding="UTF-8"?>
<streaming>
<service>
<name>本地2.106</name>
<servers>
<server>
<name>Server</name>
<url>srt://192.168.2.106:8890/</url>
</server>
</servers>
<profiles>
<profile>
<name>Streaming High</name>
<config resolution="1080p" fps="30">
<bitrate>10000000</bitrate>
<audio-bitrate>128000</audio-bitrate>
<keyframe-interval>2</keyframe-interval>
</config>
</profile>
</profiles>
</service>
</streaming>比如上面这个配置就可以配合mediamtx使用
因为是srt,那key的位置就需要填
publish:1如果你想用rtmp(只支持H264),那就把url那行改成
<url>rtmp://192.168.2.106:1935/</url>key的位置就填
1然后可以拉流
http://127.0.0.1:8888/live/1/index.m3u8
rtsp://127.0.0.1:8554/1
rtmp://127.0.0.1:1935/1
srt://127.0.0.1:8890/?streamid=read:1
# 或者浏览器打开
http://127.0.0.1:8889/1如果咩咩的文章对你有帮助,您可以 请我喝牛奶
郑羊羊咩的窝