侧边栏壁纸
  • 累计撰写 5 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

FFmpeg使用笔记(硬件加速)

Tao
Tao
2024-09-10 / 0 评论 / 0 点赞 / 11 阅读 / 3506 字

下载

FFmpeg是强大的开源的转码工具,可以转码视频、图像、音频。

官方下载地址:Download FFmpeg

建议卸载带有release-full的压缩包

解压后得到文件夹的Bin目录,在地址栏输入cmd,按下回车

接着弹出的命令行窗口输入接下来的代码

使用硬件加速转码

最简单的,我们把一个D盘的一个input.avi格式的视频,转换为output.mp4格式的视频

ffmpeg -i D:\input.avi D:\output.mp4 

接着,我们使用Intel的显卡(核显)的qsv(QuickSync)加速。

你需要确认你的显卡有编/解码的能力,可以点开这个链接,查询是否支持。

使用Intel qsv加速:-hwaccel qsv

使用H264_qsv编/解码器:-c:v h264_qsv

使用HEVC_qsv编/解码器:-c:v hevc_qsv

以下命令,我们使用Intel显卡加速,将AVC(H264)格式的视频,转换为HEVC(H265)格式的MP4视频:

ffmpeg -hwaccel qsv -c:v h264_qsv -i D:\input.avi -c:v hevc_qsv D:\output.mp4 

如果我们需要指定视频的质量

-global_quality 28

-global_quality后跟随数字代表视频质量。

可取值范围:1~51。数字越大视频质量越差,视频文件越小。

我们指定视频质量为28

ffmpeg -hwaccel qsv -c:v h264_qsv -i D:\input.avi -c:v hevc_qsv -global_quality 28 D:\output.mp4 

最后,我们将视频转换为FMP4格式,这个格式对流媒体更加友好。

-movflags 命令用于设置和控制 MP4/MOV 格式文件的特定标志。

frag_keyframe:将文件分割成以关键帧为界的片段,适用于需要分段传输的场景。

empty_moov:再每个关键帧都创建一个空的 moov atom,用于流媒体应用。

ffmpeg -hwaccel qsv -c:v h264_qsv -i D:\input.avi -movflags frag_keyframe+empty_moov -c:v hevc_qsv -global_quality 28 D:\output.mp4 

其他

关于其他显卡,如使用英伟达显卡加速,类似的教程网上有很多,建议可以自行搜索。

或参考下方链接5,ffmpeg官方的文档内,自行摸索。

参考文献

  1. rigaya/QSVEnc: QSVによる高速エンコードの性能実験 (github.com)

  2. rigaya/NVEnc: NVENCによる高速エンコードの性能実験 (github.com)

  3. Hardware/QuickSync – FFmpeg

  4. Intel 核显几种速率控制方式的比较 - 哔哩哔哩 (bilibili.com)

  5. FFmpeg Codecs Documentation

  6. 如何用FFMPEG生成FMP4文件的方法 - 哔哩哔哩 (bilibili.com)

0

评论区