流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点

简介: FFmpeg 3.3“Hilbert”,一个新的主要版本的一些亮点:苹果Pixlet解码器NewTek SpeedHQ解码器QDMC音频解码器PSD(Photoshop Document)解码器FM屏幕捕获解码器ScreenPressor解码器XPM解码器DNxHR解码器修复了HQX和高分辨率视频ClearVideo解码器(部分)16.

 FFmpeg 3.3“Hilbert”,一个新的主要版本的一些亮点:

  • 苹果Pixlet解码器
  • NewTek SpeedHQ解码器
  • QDMC音频解码器
  • PSD(Photoshop Document)解码器
  • FM屏幕捕获解码器
  • ScreenPressor解码器
  • XPM解码器
  • DNxHR解码器修复了HQX和高分辨率视频
  • ClearVideo解码器(部分)
  • 16.8和24.0浮点PCM解码器
  • 英特尔QSV加速VP8视频解码
  • 本机Opus编码器
  • DNxHR 444和HQX编码
  • (M)JPEG编码器的质量改进
  • VAAPI加速MPEG-2和VP8编码
  • 超前视频过滤器
  • 摄像机多媒体过滤器
  • readeia608过滤器
  • 阈值滤波器
  • 过滤器
  • MPEG-7视频签名过滤器
  • 添加内部ebur128库,删除外部libebur128依赖
  • 英特尔QSV视频缩放和去隔行滤波器
  • 示例转储交换解码器
  • MIDI样品转储标准分解器
  • 幕墙封闭字幕解码器和复用器
  • 支持MOV多个样品说明表
  • Pro-MPEG CoP#3-R2 FEC协议
  • 支持球形视频
  • CrystalHD解码器移动到新的解码API
  • 如果自动检测库被请求但未找到,则配置将失败
  • 我们强烈建议用户,分销商和系统集成商升级,除非他们使用当前的git master。

下面我们测试下:英特尔QSV加速VP8视频解码(Intel QSV-accelerated VP8 video decoding)

前期准备工作:

1、查看你的CUP是否支持英特尔QSV加速:https://ark.intel.com/Search/FeatureFilter?productType=processors&QuickSyncVideo=true

2、查看本系统的处理器信息【Intel® Core™ i3-4160】

3、在Inel列表中查询自己的处理器型号,我的如下所示:

可以看出,本机处理器是支持的

windows如何安装FFmpeg,在另外一篇博客,地址:流媒体视频编码之————Windows安装FFmpeg

4、FFmpeg 支持的编码查询命令:    ffmpeg -codecs  

DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 
(decoders: h264 h264_qsv libopenh264 h264_cuvid )
(encoders: libx264 libx264rgb libopenh264 h264_nvenc h264_qsv nvenc nvenc_h264 )

说明:出现以上信息表示是支持 英特尔QSV加速VP8视频解码的

5、列出此构建ffmpeg支持的所有硬件加速方法:      ffmpeg -hwaccels  

一、不使用英特尔QSV加速VP8视频解码

(1)命令行

ffmpeg -i c.mkv -acodec copy -vcodec libx264 no-qsv.mp4

(2)执行打印信息

(3)CPU和内存消耗

CPU(93%)和内存(414,912K)

二、使用英特尔QSV加速VP8视频解码

注意:为了是测试能够更好的工作,解码器和编码器都必须支持QSV加速度,并且不能使用滤波器

 1、普通 ffmpeg 

(1)命令行

F:\Tinywan\FFmpeg\Ver-Test>ffmpeg -hwaccel qsv -c:v h264_qsv  -i c.mkv  -look_ahead 0 -c:v h264_qsv -preset veryfast out001-1.mp4

参数说明:

(1) -hwaccel[:stream_specifier] hwaccel (input,per-stream)  ,使用硬件加速来解码匹配的流,获取更多http://ffmpeg.org/ffmpeg-all.html

(2)执行打印信息

(3)CPU和内存消耗

CPU(27%)和内存(175.868K)

2、windows下自己编译的3.3.2版本

(1)命令行

F:\Tinywan\FFmpeg\Ver-Test>D:\ffmpeg-hw-win32\static\x86_64\bin\ffmpeg.exe -version
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers

D:\ffmpeg-hw-win32\static\x86_64\bin\ffmpeg.exe -hwaccel qsv -c:v h264_qsv  -i c.mkv  -look_ahead 0 -c:v h264_qsv -preset veryfast out002-1.mp4 -y

 (2)执行打印信息

(3)CPU和内存消耗

CPU(27%)和内存(178.596K)

 3、官网下载的最新的3.4 版本

F:\Tinywan\FFmpeg\Ver-Test>D:\ffmpeg3.4\bin\ffmpeg.exe -version
ffmpeg version N-87871-g7480f232d2 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.2.0 (GCC)

D:\ffmpeg3.4\bin\ffmpeg.exe -hwaccel qsv -c:v h264_qsv  -i c.mkv  -look_ahead 0 -c:v h264_qsv -preset veryfast out003-1.mp4 -y

 (2)执行打印信息

(3)CPU和内存消耗

 CPU(28%)和内存(177.744K)

三、使用NVDIA GPU的全硬件加速转码

ffmpeg.exe -hwaccel cuvid -c:v h264_cuvid -i <input.mp4> -vf scale_npp=1280:720 -c:v h264_nvenc <output.mp4>

参考:

1、https://github.com/illuspas/ffmpeg-hw-win32

2、https://trac.ffmpeg.org/wiki/HWAccelIntro

3、https://trac.ffmpeg.org/wiki/Hardware/VAAPI 

四、总结

如果是视频编码,尽量采用硬件加速去实现,可惜阿里云现在没有啊!

目录
相关文章
|
2月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
179 4
|
2月前
|
存储 缓存 编解码
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化(一)
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化
67 0
|
2月前
|
存储 编解码 vr&ar
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
用C++实现视频编码器:FFmpeg与SDL技术结合,轻松编写高效编解码器
91 0
|
8天前
|
Web App开发 编解码 vr&ar
使用FFmpeg从音视频处理到流媒体技术的探索和实战应用
使用FFmpeg从音视频处理到流媒体技术的探索和实战应用
38 2
|
2月前
|
存储 算法 C++
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化(二)
【FFmpeg 视频播放】深入理解多媒体播放:同步策略、缓冲技术与性能优化
50 0
|
5月前
|
编解码 计算机视觉 C++
FFmpeg 的使用与Docker安装流媒体服务器
FFmpeg 的使用与Docker安装流媒体服务器
190 0
|
5月前
|
API 开发工具 C语言
解决新版本ffmpeg找不到avpriv_io_delete函数等问题
解决新版本ffmpeg找不到avpriv_io_delete函数等问题
32 0
|
11月前
|
编解码 文件存储 iOS开发
FFmpeg学习笔记汇总(下)
FFmpeg学习笔记汇总
156 0
|
C语言 C++ Windows
编译Windows版本ffmpeg:msys2方式失败
编译Windows版本ffmpeg:msys2方式失败
135 0
编译Windows版本ffmpeg:msys2方式失败
|
Windows
编译Windows版本ffmpeg:cygwin方式通过
编译Windows版本ffmpeg:cygwin方式通过
154 0