Windows下使用FFMPEG:摄像头转m3u8与Nginx展示、附实用命令

转换

ffmpeg内置的libx264, libx265,是使用的264、265的库用CPU进行的软解,编解码直接使用的话,耗时很长。

ffmpeg -i input.mp4 -c:v libx265 -c:a copy output.mp4

可行转码思路:

  • 如果h264的码率小于5M,设置转换后的码率为2M。
  • 如果h264的码率大于5M,设置转换后码率为原始码率/2。

使用硬件加速

查询编码器

ffmpeg -encoders | findstr /i "264 265 hevc"

查询解码器

ffmpeg -decoders | findstr /i "264 265 hevc"

查询支持的加速方案

ffmpeg -hwaccels

其中:

cuda为Nvidia的加速方案,对应编码:h264_nvenc、hevc_nvenc,解码:h264_cuvid、hevc_cuvid。

qsv为Intel的加速方案,对应编解码:h264_qsv、hevc_qsv。

AMD也有提供编码方案:h264_amf、hevc_amf。

实操:

ffmpeg -hwaccel cuda -i input.mp4 -c:v hevc_nvenc -preset p7 -b:v 3800k -maxrate 4200k -c:a copy output.mp4

查看编码支持的选项使用命令:ffmpeg -h encoder=hevc_nvenc。

-preset 设置编码预设值,默认p4。

-c:v 设置编解码方式;-i 之前的就是设置解码方式,-i 之后的就是编码方式。

-b:v 设置视频码率;影响视频输出质量和大小。

-maxrate 设置最大码率。

-c:a copy 音频不做处理,直接复制。

上面的命令就是使用CPU软解视频,编码使用Nvidia转换为H265格式。在-i之前设置-c:v可选择解码方式。

发表评论

error: Content is protected !!