夜雨聆风学习资料网

ARTICLE · 1223970

官方文档都是错的!iPhone 4K60 直播 Blackmagic Camera App直播推流配置 3.5以上版本 可修改分辨率和码率

官方文档都是错的!iPhone 4K60 直播 Blackmagic Camera App直播推流配置 3.5以上版本 可修改分辨率和码率

首先官方文档太老了,网上能找到的都是用于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>                <configresolution="2160p"fps="60">                    <bitrate>40000000</bitrate>                    <audio-bitrate>192000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="1080p"fps="60">                    <bitrate>20000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="2160p"fps="30">                    <bitrate>20000000</bitrate>                    <audio-bitrate>192000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="1080p"fps="30">                    <bitrate>10000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="720p"fps="30">                    <bitrate>4000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>            </profile>            <profile>                <name>Streaming Medium</name>                <configresolution="2160p"fps="30">                    <bitrate>15000000</bitrate>                    <audio-bitrate>192000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="1080p"fps="30">                    <bitrate>8000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="720p"fps="30">                    <bitrate>4000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>            </profile>            <profile>                <name>Streaming Low</name>                <configresolution="2160p"fps="30">                    <bitrate>12000000</bitrate>                    <audio-bitrate>160000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="1080p"fps="30">                    <bitrate>6000000</bitrate>                    <audio-bitrate>128000</audio-bitrate>                    <keyframe-interval>2</keyframe-interval>                </config>                <configresolution="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>                <configresolution="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.m3u8rtsp://127.0.0.1:8554/1rtmp://127.0.0.1:1935/1srt://127.0.0.1:8890/?streamid=read:1# 或者浏览器打开http://127.0.0.1:8889/1

后续如果有修改会在博客中的原文中更新

相关学习资料