Windows上ffmpeg使用GPU硬件加速多路rtsp转HLS直播流 | 您所在的位置:网站首页 › cpu和gpu解码 › Windows上ffmpeg使用GPU硬件加速多路rtsp转HLS直播流 |
项目需要接入20多路rtsp转hls视频流,机器的CPU为i9-10900,显卡为P2200。 CPU转码最开始测试使用脚本: start ./ffmpeg -i rtsp://:@:554/Streaming/Channels/101 -c:v libx264 -c:a copy -f hls -threads 8 -hls_time 5 -hls_list_size 8 -hls_wrap 8 db1.m3u8 -i 输入-c:v libx264 使用h264编码-c:a copy 拷贝所有流-f hls 生成hls流。HTTP Live Streaming,是苹果出的一个基于HTTP的流媒体通信协议-threads 8 以8个线程运行-hls_time 5 设置TS切片时间为5-hls_list_size 8 HLS播放的列表-hls_wrap 8 hls_wrap则表示为最大的TS循环数,也就是每8个一个循环使用多行start这样的脚本,发现当数量达到5~7路之后,视频质量下降,出现许多涂抹画面,根本没法看。原因是CPU已经满载,所以想支持更多路视频只能去找GPU加速的方法。 GPU加速转码 首先安装CUDA个人理解的CUDA就是可供开发者调用显卡进行处理运算的通道。通过英伟达官网,下载对应系统、版本的安装程序进行安装。注意,不是所有的英伟达显卡、驱动版本都支持CUDA。 使用编译好的ffmpeg使用已经编译好的ffmpeg,可以通过: ffmpeg -decoders ffmpeg -encoders这两个命令行可以查看ffmpeg支持的解码器、编码器名称。其中包含“xxx_amf”,“xxx_nvenc”,"xxx_qsv"等就证明可以调用显卡 使用 start ./ffmpeg -i rtsp://:@:554/Streaming/Channels/101 -vcodec h264_nvenc -c:a copy -f hls -threads 8 -hls_time 5 -hls_list_size 8 -hls_wrap 8 db1.m3u8注意,这时-vcodec(与上面的-c:v相同)指定视频解码器为h264_nvenc 实测同时开启21路视频后,视频全部编码正常,CPU占用率极低,显卡3D性能占用月50%~60% |
CopyRight 2018-2019 实验室设备网 版权所有 |