登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
FFmpeg开发笔记(七十二)Linux给FFmpeg集成MPEG-5视频 ...
FFmpeg开发笔记(七十二)Linux给FFmpeg集成MPEG-5视频编解码器EVC
[ 复制链接 ]
袁勤
2025-9-26 10:37:17
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
MPEG-5是新一代的国际音视频编解码标准,像我们熟悉的MP3、MP4等音视频格式就来自于MPEG系列。MP3格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2 MP3音频”,MP4格式的说明介绍参见《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.2 音视频文件的封装格式”。 MPEG-5有关视频编解码的内容主要有两部分,一个是Part 1的基本视频编码(Essential Video Coding,EVC),另一个是Part 2的低复杂度增强视频编码(Low Complexity Enhancement Video Coding,LCEVC)。其中Part 1的EVC是由三星、华为、高通、Divideon 支持的MPEG标准,它由两个配置文件组成,一个为只使用过期专利且免版税的基线规范,另一个为需要版税并使用创新编码工具的主规范。EVC旨在提供比现有视频编码标准更高的压缩效率,同时解决专利许可问题,实现免专利费的编码方案。
相比现有的H.624和H.265标准,EVC在视频编解码方面拥有下列几点优势:
1、在主模式下,EVC的平均比特率比H.265低26%;在基线模式下,比H.264低31%。
2、EVC的解码时间比H.264减少60%。
3、EVC的基线方案包含了超过20年的技术,可以实现免专利费的要求。
MPEG-5现已开源MPEG-5 EVC的视频编解码器,其中视频解码器的开源库叫libxevd,视频编码器的开源库叫libxeve。如今EVC的编解码器libxevd和libxeve日渐成熟,从7.0版本开始的最新FFmpeg源码已经支持EVC的编解码器libxevd和libxeve。
接下来以华为的欧拉系统为例,介绍如何在Linux环境给FFmpeg集成MPEG-5 EVC视频编解码器libxevd和libxeve,具体的操作步骤说明如下:
一、安装libxevd
libxevd是一款MPEG-5的EVC视频解码器。它的源码托管页面在https://github.com/mpeg5/xevd/,最新版本是2024年4月发布的xevd-0.5.0,该版本的源码包下载地址是https://codeload.github.com/mpeg5/xevd/tar.gz/refs/tags/v0.5.0。
libxevd的安装步骤说明如下。
1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。
tar zxvf xevd-0.5.0.tar.gz
cd xevd-0.5.0
复制代码
2、在xevd目录下创建新文件version.txt,文件内容填入“v0.5.0”,表示解码器的版本为0.5.0。
3、执行以下命令配置libxevd
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 --install-prefix=/usr/local ..
复制代码
配置完成后,打开src_main/CMakeFiles/xevd_dynamic.dir/link.txt,在“-shared”后面补充“ -lm”,表示生成的动态库要链接数学函数库。
4、运行下面命令编译libxevd。
make
复制代码
5、编译完成后,运行下面命令安装libxevd。
make install
复制代码
二、安装libxeve
libxeve是一款MPEG-5的EVC视频编码器。它的源码托管页面在https://github.com/mpeg5/xeve/,最新版本是2024年6月发布的xeve-0.5.1,该版本的源码包下载地址是https://codeload.github.com/mpeg5/xeve/tar.gz/refs/tags/v0.5.1。
注意:由于FFmpeg仅支持版本号大于等于0.5.1的libxeve,因此务必下载xeve-0.5.1,不可下载xeve-0.5.0。
libxeve的安装步骤说明如下。
1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。
tar zxvf xeve-0.5.1.tar.gz
cd xeve-0.5.1
复制代码
2、在xeve目录下创建新文件version.txt,文件内容填入“v0.5.1”,表示编码器的版本为0.5.1。
3、执行以下命令配置libxeve
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=1 --install-prefix=/usr/local ..
复制代码
配置完成后,打开src_main/CMakeFiles/xeve_dynamic.dir/link.txt,在“-shared”后面补充“ -lm”,表示生成的动态库要链接数学函数库。
4、运行下面命令编译libxeve。
make
复制代码
5、编译完成后,运行下面命令安装libxeve。
make install
复制代码
三、让FFmpeg启用libxevd和libxeve
由于FFmpeg默认未启用libxevd和libxeve,因此需要重新配置FFmpeg,标明启用libxevd和libxeve,然后重新编译安装FFmpeg。
先下载最新的FFmpeg源码(版本号需大于等于7.0),再把FFmpeg源码包上传到Linux服务器的/usr/local/src目录下。接着登录Linux服务器的控制台,执行下面命令解压源码包:
cd /usr/local/src
unzip ffmpeg-n7.1.1.zip
复制代码
确保Linux环境已经按照《FFmpeg开发实战:从零基础到短视频上线》该书第一章的“1.2 Linux系统安装FFmpeg”安装了H.264的编码器libx264和H.265的编码器libx265,并且按照之前的文章安装了H.266的编码器libvvenc,然后执行以下的liblc3启用步骤。
1、回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libxevd和libxeve。(增加了选项“ --enable-libxevd --enable-libxeve”)
cd ffmpeg-n7.1.1
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-libxevd --enable-libxeve --enable-libxevd --enable-libxeve --enable-iconv --enable-gpl --enable-nonfree
复制代码
2、运行下面命令编译FFmpeg。
make clean
make -j4
复制代码
3、执行下面命令安装FFmpeg。
make install
复制代码
四、查看FFmpeg的安装结果
运行下面命令查看FFmpeg的安装版本:
ffmpeg -version
复制代码
上面命令返回的FFmpeg版本信息如下:
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 10.3.1 (GCC)
configuration: --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libvvenc --enable-liblc3 --enable-libxevd --enable-libxeve --enable-iconv --enable-gpl --enable-nonfree
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
复制代码
根据以上返回的版本信息,可知已安装的FFmpeg版本号为7.1.1,同时configuration这行找到“--enable-libxevd --enable-libxeve”,说明FFmpeg已经启用了MPEG-5 EVC视频编解码器libxevd和libxeve。
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
FFmpeg
开发
笔记
七十二
Linux
相关帖子
C++学习笔记 23 宏 Macro
【Agent】MemOS 源码笔记---(6)---MemScheduler -- 总体
FFmpeg 关键的结构体
n8n整合ffmpeg
精选 8 个 .NET 开发实用的类库,效率提升利器!
精选 8 个 .NET 开发实用的类库,效率提升利器!
精选 8 个 .NET 开发实用的类库,效率提升利器!
精选 8 个 .NET 开发实用的类库,效率提升利器!
精选 8 个 .NET 开发实用的类库,效率提升利器!
FFmpeg 内存输入&输出
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
C++学习笔记 23 宏 Macro
1
772
呼延冰枫
2025-12-18
业界
【Agent】MemOS 源码笔记---(6)---MemScheduler -- 总体
1
323
上官银柳
2025-12-18
业界
FFmpeg 关键的结构体
1
186
乙荒
2025-12-19
业界
n8n整合ffmpeg
0
524
但婆
2025-12-19
业界
精选 8 个 .NET 开发实用的类库,效率提升利器!
1
895
箝德孜
2025-12-20
业界
精选 8 个 .NET 开发实用的类库,效率提升利器!
0
112
迁岂罚
2025-12-20
业界
精选 8 个 .NET 开发实用的类库,效率提升利器!
0
602
裸历
2025-12-20
业界
精选 8 个 .NET 开发实用的类库,效率提升利器!
0
174
郗新语
2025-12-20
业界
精选 8 个 .NET 开发实用的类库,效率提升利器!
0
120
宛蛲
2025-12-20
安全
FFmpeg 内存输入&输出
0
12
劳欣笑
2025-12-21
回复
(1)
铜坠匍
2025-10-14 00:40:17
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
辜酗徇
2025-12-4 11:33:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,学习下。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
袁勤
2025-12-4 11:33:21
关注
0
粉丝关注
26
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
956
MAUI库推荐二:MPowerKit
955
.NET10 New feature 新增功能介绍-JIT编译
400
报考陪诊师选守嘉陪诊的理由
266
C#AI系列(7):从零开始LLM之Tokenizer实现
277
C#AI系列(7):从零开始LLM之Tokenizer实现
821
Pytest 测试用例自动生成:接口自动化进阶
843
一天一个Python库:NumPy - 科学计算的基石
12
FFmpeg 内存输入&输出
741
一文读懂RAG架构如何助力AI
496
一文读懂RAG架构如何助力AI
544
ROS2之TF介绍
398
SW 随笔 001 — InlineArray 带你飞(Since
691
当遇见 CatchAdmin V5-模块化设计重新定义
492
【有手就行】SWIFT:花20分钟把大模型的名
562
论文速读记录 | 2025.12(2)
375
浮点数的本质:为什么计算机无法精确表示0.
728
Flink源码阅读:如何生成JobGraph
931
Python 潮流周刊#132:30 年 Python 自由职
483
大模型榜单周报(2025/12/20)
159
【节点】[LinearToGammaSpaceExact节点]原