ffmpeg 硬件加速 wmv 视频转码
基于 Windows 下演示,Linux 下也可以通用。建议先阅读关于使用硬件加速的基础部分。文章链接:ffmpeg 硬件加速视频转码指南
后文将会演示 wmv3 以及 vc1 编码的 wmv 格式视频向 h264 编码的 mp4 格式视频的转换。如果你理解了原理,那么 wmv2 转 hevc 也是类似的。
测试案例1
可以看到原视频是一段 wmv3 编码的 4000k 码率 720p 30帧的视频
首先还是默认情况下,用 CPU 编解码:
ffmpeg -i input.wmv output.mp4
,速度如图所示,CPU 满载,GPU 围观。
接着尝试使用加入
-hwaccel auto
参数,使用自动的硬件加速:ffmpeg -hwaccel auto -i input.wmv output.mp4
程序自动选择了 dxva2 的硬件加速方法( cuda 我也测试了,差不多)
速度提升不能说没有,只能说差不多
用到了一点点的 GPU 解码器,约等于没有用,主要依旧还是 CPU 在干活。
尝试寻找适用于 wmv3 的硬件解码器
ffmpeg -codecs | findstr "wmv3"
,可以看到并没有
但是没有关系,转码过程中主要的负载来自于编码工作,我们可以手动指定 编码器 encoder,来达到硬件加速的作用
通过加入-c:v
参数,来调用 N 卡的硬件编码器:ffmpeg -hwaccel cuda -i input.wmv -c:v h264_nvenc output.mp4
可以看到指定的编码器生效了,转码速度也快了很多,GPU 的硬件编解码器也得到了较为充分的利用,CPU 占用也维持在一个较低的水平。但是编码器默认的码率(2000k)较低,清晰度有所下降,可以通过参数 -b:v 4000k
设定输出视频的码率与原视频一致来避免画质损失。
- 测试案例2
vc1 编码,1080p 30帧 6000k 码率,直接 CPU 编解码和打开自动硬件解码和上面差不多的结论,都很慢。
不过有一个特殊情况就是指定
-hwaccel cuda
的时候,转码速度会非常慢。GPU 的硬件解码器使用率会达到 100% ,但是编码器没有用到,CPU 也是占用率很低。ffmpeg -hwaccel cuda -i input2.wmv output.mp4
手动指定编解码器
通过ffmpeg -codecs | findstr "vc1"
查看 vc1 的编解码器
可以看到有 i卡 专用的vc1_qsv
和 N卡 专用的vc1_cuivid
解码器
加入参数-c:v
来指定解码器:ffmpeg -c:v vc1_cuvid -i input2.wmv -c:v h264_nvenc output.mp4
(根据你的显卡选择对应的编解码器,我这里是 N卡 所以选择了vc1_cuvid
作为解码器,h264_nvenc
作为编码器)
可以看到转码速度非常快,并且硬件编解码器也得到了充分的利用,CPU 占用也较低。
同样也是注意 nvenc 默认编码输出为 2000k 码率,可以手动设置码率来降低画质损失。
ffmpeg 硬件加速 wmv 视频转码相关推荐
- Mac OSX ffmpeg 硬件加速
Mac OSX ffmpeg 硬件加速 [toc] 首先下载最新版ffmpeg 3.3.4 安装x264 下载安装包编译安装 brew install x264 (推荐,未安装brew的请查看brew ...
- ffmpeg 硬件加速视频转码指南
0. 系统环境 基于 Windows 下演示,Linux 下也可以适用. 所使用 ffmpeg 版本为 BtbN 编译的 win64-gpl 版(非 gpl-share),项目地址:BtbN / FF ...
- FFmpeg 硬件加速(硬解码)介绍
参考地址 概述 本文主要针对ffmpeg支持的硬解码做一个总结阐述. 许多平台提供对专用硬件的访问,以执行一系列与视频相关的任务.使用此类硬件可以更快地完成某些操作,例如解码.编码或过滤,或者 ...
- FFmpeg 硬件加速方案概览 (下)
被称为"多媒体技术领域的瑞士军刀",FFmpeg拥有广泛的应用基础.不过,当(实时)处理海量视频时,需要借助各种方法提升效率.比如,短视频平台Revvel将视频转码服务迁移到AWS ...
- FFmpeg 硬件加速方案概览 (上)
被称为"多媒体技术领域的瑞士军刀",FFmpeg拥有广泛的应用基础.不过,当(实时)处理海量视频时,需要借助各种方法提升效率.比如,短视频平台Revvel将视频转码服务迁移到AWS ...
- [FFMPEG硬件加速]nvidia方案
1.目标 <1>显卡性能参数: <2>方案可行性: 2.平台信息 2.1.查看当前显卡信息 命令: lspci |grep VGA 信息: 01:00.0 VGA com ...
- 树莓派 —— 安装RaspberryPi系统(为了编译ffmpeg硬件加速)
背景 最近项目上采购了一台"云盒"设备,该设备功能是将输入的rtsp转封装后直接推流到指定公网的rtmp服务器或将输入的hdmi视频数据通过硬编码后推流到指定的公网rtm ...
- FFMPEG使用显卡编码视频 转码
FFMPEG 工具装备 参数介绍 工具装备 ffmpeg-4.1.4-win64-static GPU : nvidia 2080(当然680也行) 参数介绍 语法构成 : -b : 指定转码视频的比 ...
- 使用FFmpeg命令实现音视频转码的备忘录
FFmpeg是比较经典,也是比较流行的多媒体工具库(demux,mux, decode,encode等等),支持格式也比较丰富,也比较实用. 做多媒体开发的经常都需要使用到各种格式的音视频对自己的开发 ...
最新文章
- WISMO模块GPRS上网设置的过程
- 【转】如何在github上fork一个项目来贡献代码以及同步原作者的修改 -- 不错
- 手写jwt框架SSO
- 当你在应用机器学习时你应该想什么
- gRPC创建Java RPC服务
- 基于tomcat5.5的数据库连接池环境设置(省的以后找系列)
- chrome 发送请求出现:Provisional headers are shown 提示
- 无法在Web服务器上启动调试。您不具备调试此应用程序的权限,此项目的URL位于Internet区域。...
- SVN分支创建,合并,多分支并行
- 方舟生存计划怎么删除服务器信息,方舟进化生存怎么删服务器存档
- 【STC15】定时器/计数器的相关寄存器解读
- FLStudio21无需切换中文语言fl下载中文免费版
- 高频射频计算机电缆,射频电缆是什么,它的作用又是什么
- 简单分析一个通过 js 劫持进行案例
- 什么是正则化?他是如何起作用的?
- 【数据库】数据库索引
- 什么是计算机嵌套分类汇总,Excel中插入分类汇总的嵌套级别的方法图解详细教程...
- tplink android管理软件,tplink路由器app下载
- 错失恐惧:铸造「区块链巴别塔」的原始动力
- windows学习记录之MFC通过URL上传下载文件
热门文章
- db2 jdbc 连接池_【转】java jdbc连接db2
- 【物联网实训项目】------(五)家庭智慧安防系统之智能监控
- JSPServlet中request.getParameter() 和request.getAttribute() 区别
- 如何关闭Mybatis的DEBUG log打印
- TOM邮箱|163邮箱容量评比!注册哪个容量好呢?
- Echarts饼图实现颜色渐变
- android 页面边框设置
- c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎
- MFC(CFile)文件操作
- latex数学公式神器Mathpix