FFmpeg-GCU 是基于 燧原 GCU 硬件加速的 FFmpeg 视频解码插件,通过 TopsCodec SDK 实现高性能视频解码。
- 支持 GCU300 及以上硬件
- 支持 H.264、H.265/HEVC、VP8、VP9、AV1、AVS、AVS2、MJPEG、MPEG2、MPEG4、VC-1、H.263 等格式硬件解码
- 支持 Online CSC(颜色空间转换)、Resize、Crop、Rotation 等后处理
- 兼容 FFmpeg 命令行、C API 等多种调用方式
- 支持 FFmpeg n3.2 / n4.4 / n5.0 多版本构建
| 依赖项 | 说明 |
|---|---|
| 燧原 GCU 硬件 | GCU300 及以上 |
| TopsPlatform 软件栈 | 包含 FFmpeg-GCU 依赖的 TopsCodec 和 TopsRuntime,需提前安装 |
如需获取 TopsPlatform 对应版本,请联系燧原科技商务对接人员。
具体安装步骤请参见 TopsPlatform 安装使用手册。
| OS | GCC | glibc |
|---|---|---|
| Ubuntu 16.04 | 4.8.5 | 2.23 |
| Ubuntu 18.04 | 7.5.0 | 2.27 |
| Ubuntu 20.04 | 9.4.0 | 2.31 |
| Ubuntu 24.04 | 13.3.0 | 2.39 |
FFmpeg-GCU 编译依赖 TopsPlatform 的头文件,需指定头文件所在的路径(默认安装路径为 /opt/tops/include)。
# 基本用法(默认 n4.4),TopsPlatform 默认安装的头文件路径在 /opt/tops/include
./build_ffmpeg.sh n4.4 -f "-I/opt/tops/include"
# 为了避免从 github 上拉取 FFmpeg 源代码缓慢,可以指定本地 FFmpeg 源码路径(提前下载所需版本 FFmpeg 源码)
./build_ffmpeg.sh n4.4 -f "-I/opt/tops/include" -s /path/to/FFmpeg
# 查看完整编译选项
./build_ffmpeg.sh -h支持的 FFmpeg 版本标签:n3.2、n4.4、n5.0。
如果希望支持更多的 FFmpeg 版本,请联系燧原科技商务对接人员。
编译完成后,在 build_<tag>/ffmpeg_gcu/ 目录下生成 .deb 安装包。
sudo dpkg -x ffmpeg-gcu_<version>_<tag>_amd64.deb /usr/local/安装后,可在 /usr/local/lib、/usr/local/bin、/usr/local/include 下找到对应的库文件、可执行文件和头文件。
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH成功安装带有燧原硬件加速的 FFmpeg 后,可通过以下命令行进行验证。
# 将输入文件 test.264 解码,并输出到 out.yuv 文件,YUV文件格式指定为 YUV420P
ffmpeg -c:v h264_topscodec -output_pixfmt yuv420p -i test.264 -y out.yuv
# 将输入文件 test.265 解码,并输出到 out.yuv 文件,YUV文件格式指定为 NV12
ffmpeg -c:v hevc_topscodec -output_pixfmt nv12 -i test.265 -y out.yuv详细的使用说明、API 参考、命令行示例,请参阅在线文档:
详见 RELEASE_NOTES.md。