FFmpeg 介绍
最新消息
- [2026.03.30]:基于鲲鹏服务器对FFmpeg-4.4.2中libswscale库的bilinear,bicubic和lanczos三种缩放算法进行性能优化。
- [2025.09.30]:基于鲲鹏服务器对FFmpeg-7.1.1中libswscale库的sws_scale函数进行性能优化。
简介
鲲鹏FFmpeg代码仓是基于鲲鹏服务器对开源FFmpeg进行优化的成果,存放FFmpeg性能优化的相关补丁。补丁功能包括:
sws_scale函数优化:sws_scale函数是FFmpeg框架中libswscale库的核心函数之一,主要用于图像的缩放、色彩空间转换以及像素格式转换。色彩空间转换优化补丁通过并行优化色彩空间转换函数,实现性能提升。
ffmpeg_4.4.2-optimize-scale.patch: 该补丁主要是针对FFmpeg-4.4.2中的libswscale的bilinear,bicubic和lanczos三种缩放算法下进行的优化。主要通过不同场景的向量化定制改写,使能SVE向量化以及指令流水化等方法,提升当前缩放算法的性能。
目录结构
├──docs/ # 项目文档目录
│ ├── zh/ # 中文文档目录
│ │ ├── ffmpeg_4.4.2_install_guide.md # FFmpeg-4.4.2_scale工具安装指南
│ │ ├── LICENSE # 文档许可证
├──patch_for_ffmpeg_4.2.2_to_support_HW265ENC/ # HW265编码器FFmpeg-4.2.2插件目录
├──patch_for_ffmpeg_7.0.1_to_support_HW265ENC/ # HW265编码器FFmpeg-7.0.1插件目录
├──ffmpeg_4.4.2-optimize-scale.patch # FFmpeg-4.4.2缩放算法优化补丁
├──huawei_ffmpeg-7.1.1_sws_scale_optimize.patch # FFmpeg-7.1.1缩放算法优化补丁
├──LICENSE # 开源许可证
├──.gitattributes # Git属性配置文件
├──COPYING.LGPLv2.1 # LGPL v2.1许可证文本
├──ffmpeg-7.1.1.tar.gz # FFmpeg 7.1.1源码压缩包
└──README.md # 项目说明文档FFmpeg 7.1.1 缩放优化特性
特性简介
sws_scale函数是FFmpeg框架中libswscale库的核心函数之一,主要用于图像的缩放、色彩空间转换以及像素格式转换。色彩空间转换优化补丁通过并行优化色彩空间转换函数,实现性能提升。
版本说明
| 开源软件版本 | 补丁特性 |
|---|---|
| FFmpeg-7.1.1 | sws_scale函数优化 |
环境部署
克隆本仓库。
git clone https://gitcode.com/boostkit/ffmpeg.git cd ffmpeg解压FFmpeg-7.1.1源码。
tar -zxf ffmpeg-7.1.1.tar.gz将FFpmeg补丁拷贝到FFmpeg-7.1.1代码根目录。
cp huawei_ffmpeg-7.1.1_sws_scale_optimize.patch ffmpeg-7.1.1/应用FFmpeg补丁。
cd ffmpeg-7.1.1 patch -p1 < huawei_ffmpeg-7.1.1_sws_scale_optimize.patch编译FFmpeg,需要加上openmp相应选项(如下编译命令仅供参考,请按实际需求集成相应的编码库)。
./configure --enable-shared --enable-pthreads --enable-gpl --extra-cflags="-fopenmp" --extra-ldflags="-fopenmp" make sudo make install验证FFmpeg是否安装成功。
export PATH=/usr/local/bin:$PATH export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ffmpeg -version
FFmpeg 4.4.2 缩放优化特性
特性简介
该特性针对FFmpeg-4.4.2中的libswscale的bilinear,bicubic和lanczos三种缩放算法下进行的优化。主要通过不同场景的向量化定制改写,使能SVE向量化以及指令流水化等方法,提升当前缩放算法的性能。
版本说明
| 开源软件版本 | 补丁特性 |
|---|---|
| FFmpeg-4.4.2 | sws_scale函数中bilinear,bicubic和lanczos算法优化 |
环境部署
FFmpeg-4.4.2版本的scale优化的环境部署具体参考《FFmpeg-4.4.2_scale工具安装指南》。
快速入门
# 使用YUV序列进行测试
taskset -c 88 /home/path/to/ffmpegInstall/bin/ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i /home/path/to/video/Ca4_1920x1080.yuv -vf "scale=1280:720" -sws_flags "bilinear" -pix_fmt yuv420p -y output_1280x720.yuv
# 在当前目录检查是否有输出文件
ls -lh output_1280x720.yuv执行测试命令,无错误信息且当前目录下有输出文件output_1280x720.yuv,说明执行成功。
License
本项目采用GNU LESSER GENERAL PUBLIC LICENSE 2.1许可证。详见LICENSE文件。
本项目的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。
贡献声明
欢迎大家为社区做贡献,如果使用过程中有任何问题/建议,或者需要反馈特性需求和bug报告,可以提交Issues联系我们,具体贡献方法可参考这里。同时也欢迎大家在讨论专区展开讨论交流。感谢您的支持。