​前面的两篇文章分别介绍了如何在Linux环境和Windows环境给FFmpeg集成H.266的编码器vvenc,接下来利用ffmpeg把视频文件转换为VVC格式,观察新生成的vvc视频能否正常播放。

确保Linux系统已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第一章的“1.2  Linux系统安装FFmpeg”安装了FFmpeg,并且Windows系统已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第八章的“8.1  Windows环境编译FFmpeg”安装了FFmpeg,然后进入各自系统的控制台界面。

先执行下面命令,把视频文件转为h264编码格式(即H.265视频编码标准):

ffmpeg -i fuzhous.mp4 -vcodec h264 ff_recode_video1.mp4

再执行下面命令,把视频文件转为hevc编码格式(即H.265视频编码标准):

ffmpeg -i fuzhous.mp4 -vcodec hevc ff_recode_video2.mp4

再执行下面命令,把视频文件转为vvc编码格式(即H.266视频编码标准):

ffmpeg -i fuzhous.mp4 -vcodec vvc ff_recode_video3.mp4

接着执行下面命令查看转换后的视频信息:

ls -lrt

命令行返回转换后的视频信息如下所示:

-rw-r--r-- 1 root root 640320 May 13 16:46 ff_recode_video1.mp4
-rw-r--r-- 1 root root 306139 May 13 16:48 ff_recode_video2.mp4
-rw-r--r-- 1 root root 278684 May 13 16:48 ff_recode_video3.mp4

由以上视频信息可见,采取H.264格式的视频大小约640K,采取H.265格式的视频大小约306K,采取H.266格式的视频大小约278K,可见hevc和vvc编码的视频大小都比h264编码的视频大为减小,其中vvc视频比起hevc视频又缩小了少许。

因为FFmpeg从7.1开始支持解码vvc格式,所以编译出来的ffplay程序能够播放vvc视频。于是运行下面命令播放新转换的vvc格式视频文件:

ffplay ff_recode_video3.mp4

发现弹出了ffplay播放窗口如下图所示,说明vvc视频可以正常播放。

虽然通过ffplay命令能够播放vvc视频,但是VLC media player的3.0.21版本尚不支持vvc格式。若想通过可交互界面播放vvc视频,需下载最新版的PotPlayer,最新的PotPlayer支持播放VVC格式视频。

使用PotPlayer播放vvc视频的效果如下图所示:

可见通过ffplay和PotPlayer都能播放VVC格式视频,证明之前的vvenc编码器正确集成到了FFmpeg。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码的更多相关文章

  1. FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. FFmpeg开发笔记(四):ffmpeg解码的基本流程详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  3. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  4. FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

    前言   本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8.   FFmpeg简介   FFmpeg是领先的多媒体框架,能够解码 ...

  5. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  6. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  7. FFmpeg开发笔记(一)搭建Linux系统的开发环境

    对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库.不过考虑到刚开始仅仅调用 ...

  8. FFmpeg开发笔记(二)搭建Windows系统的开发环境

    由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的.不过若有已经 ...

  9. Java开发笔记(十三)利用关系运算符比较大小

    前面在<Java开发笔记(九)赋值运算符及其演化>中提到,Java编程中的等号“=”表示赋值操作,并非数学上的等式涵义.Java通过等式符号“==”表示左右两边相等,对应数学的等号“=”: ...

  10. FFmpeg开发教程一、FFmpeg 版 Hello world

    本系列根据项目ffmpeg-libav-tutorial翻译而来 Chapter 0 - 万物之源 -- hello world 然而,本节的程序并不会在终端打印"Hello world&q ...

随机推荐

  1. k8s报错Error: template: nvidia-device-plugin/templates/gfd.yml:22:19: executing "nvidia-device-plugin/templates/gfd.yml" at <.Subcharts.gfd>: nil pointer evaluating interface {}.gfd

    前言 在安装 kubernetes 插件 k8s-device-plugin时,报错: Error: template: nvidia-device-plugin/templates/gfd.yml: ...

  2. golang结构体判断是否为空

    前言 使用任何编程语言都会遇到判空的问题,那么Golang对于自定义的结构体类型如何判空呢? 其实空结构体可不是简单的与nil做比较哦.请看下面两种方法: package main import ( ...

  3. go-ini 中文文档

    简介 地表 最强大.最方便 和 最流行 的 Go 语言 INI 文件操作库 灵活的数据源 不光光可以从文件读取配置,还支持 []byte 类型的纯数据读取和基于 io.ReadCloser 的流式读取 ...

  4. HIVE将长整数转字符串的错误

    有一个超长字符串,比如:441066000000001005712973,原来存放在HIVE里表A 是用DECIMAL(24)类型.现在要与另外一个用string类型保存这个字段的表B关联,老是失败. ...

  5. Mqtt集成与设计

    Mqtt集成 集成mqtt,我们首先得明白什么是mqtt: MQTT(Message Queuing Telemetry Transport)是一种轻量级.基于发布-订阅模式的消息传输协议,适用于资源 ...

  6. Invalid prop: type check failed for prop "showCheckbox". Expected Boolean, got String.

    一个简单的报错 ,可以用于 代码:  <el-tree       :data="menus"       :props="defaultProps"   ...

  7. Debian 9 更换源

    Debian 全球镜像站 # 先备份源列表文件 mv /etc/apt/sources.list /etc/apt/sources.list.bak # 生成新的源列表文件(用的国内源镜像) echo ...

  8. 学习EXTJS6(10)面向对象的基础框架-2【统一的组件模型】很重要

    用到ExtJS,UNIGUI是以ExtJS为基础的框架.因此掌握基础组件模型太重要了.确实就是让自己知道其所以然. Ext中所有可视组件都继承自Ext.Component. 1.Ext.Compone ...

  9. 谷歌SRE的7条原则

    谷歌SRE的7条原则 拥抱合理的风险 最大化系统的稳定性不仅毫无意义,而且会适得其反.不切实际的可靠性目标限制了新功能交付给用户的速度,而且用户通常不会注意到极端的可用性(比如99.99999%),因 ...

  10. 第八届机械工程与应用复合材料国际会议(MEACM 2025)

    第八届机械工程与应用复合材料国际会议(MEACM 2025) 吉隆坡,马来西亚 2025年8月25-27日 会议简介:2025年第八届机械工程与应用复合材料国际会议(MEACM 2025)将于2025 ...