首先官方文档太老了,网上能找到的都是用于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