当前位置: 首页 > news >正文

树莓派学习专题<12>:使用x264库实施H264编码--Linux和Windows上的部署

树莓派学习专题<12>:使用x264库实施H264编码--Windows和Linux上的部署

  • 1. 代码下载
  • 2. linux下的编译与测试
    • 2.1 必备软件
    • 2.2 解压x264代码
    • 2.3 配置和编译
    • 2.4 测试
  • 3. windows下的编译与测试
    • 3.1 必备软件
    • 3.2 配置与编译
    • 3.3 编码测试

1. 代码下载

x264代码下载:
地址1:网页下载:下载地址
地址2:git仓库复制:# git clone https://code.videolan.org/videolan/x264.git

2. linux下的编译与测试

操作系统环境:Ubuntu 24.04.2 LTS;

2.1 必备软件

  1. 安装bzip2;
  2. 安装编译工具;
  3. 安装nasm。
sudo apt-get install bzip2
sudo apt install build-essential
sudo apt-get install nasm

2.2 解压x264代码

tar -xvf x264-master.tar.bz2 

2.3 配置和编译

进入x264-master目录,执行:

./configure

配置结果为:

platform:       X86_64
byte order:     little-endian
system:         LINUX
cli:            yes
libx264:        internal
shared:         no
static:         no
bashcompletion: no
asm:            yes
interlaced:     yes
avs:            yes
lavf:           no
ffms:           no
mp4:            no
gpl:            yes
thread:         posix
opencl:         yes
filters:        crop select_every
lto:            no
debug:          no
gprof:          no
strip:          no
PIC:            no
bit depth:      all
chroma format:  all

然后make。在目录下得到程序文件x264。
在这里插入图片描述

2.4 测试

拷贝一个720P的YUV420文件到目录下,使用如下命令编码h264文件:

./x264 720p.yuv -o 720p.264 --input-res 1280x720

编译结束后显示:

yuv [info]: 1280x720p 0:0 @ 25/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x264 [info]: profile High, level 3.1, 4:2:0, 8-bit
x264 [info]: frame I:4     Avg QP:18.82  size: 81591                           
x264 [info]: frame P:264   Avg QP:21.48  size: 16404
x264 [info]: frame B:556   Avg QP:25.87  size:  2500
x264 [info]: consecutive B-frames:  3.3% 16.7% 10.6% 69.4%
x264 [info]: mb I  I16..4:  4.7% 61.3% 34.0%
x264 [info]: mb P  I16..4:  2.0%  6.5%  0.8%  P16..4: 48.3% 16.2%  7.7%  0.0%  0.0%    skip:18.6%
x264 [info]: mb B  I16..4:  0.1%  0.2%  0.0%  B16..8: 29.8%  2.2%  0.2%  direct: 1.2%  skip:66.2%  L0:42.3% L1:53.5% BI: 4.2%
x264 [info]: 8x8 transform intra:68.1% inter:73.5%
x264 [info]: coded y,uvDC,uvAC intra: 49.1% 77.1% 43.8% inter: 8.2% 17.2% 1.6%
x264 [info]: i16 v,h,dc,p: 30% 25% 22% 23%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 17% 26%  4%  6%  7%  6%  5%  5%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 14% 16%  7%  8%  9%  7%  8%  5%
x264 [info]: i8c dc,h,v,p: 49% 18% 23%  9%
x264 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
x264 [info]: ref P L0: 73.0% 12.7% 12.6%  1.7%
x264 [info]: ref B L0: 92.2%  6.9%  0.9%
x264 [info]: ref B L1: 99.1%  0.9%
x264 [info]: kb/s:1467.69encoded 824 frames, 117.77 fps, 1467.69 kb/s

一共824帧,编码速率117fps。应该是虚拟机性能的原因。稍后可以看到,在windows下,速度快得多。
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

3. windows下的编译与测试

操作系统环境:windows11 64bit;

3.1 必备软件

  1. 安装MSYS2;
  2. 安装mingw64;
  3. 安装nasm;
  4. 安装make工具。

MSYS2下载地址:网页下载:下载地址
安装好MSYS2之后,执行一次更新:

pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime

然后安装mingw64。

pacman -S mingw-w64-x86_64-toolchain

然后运行mingw64,安装nasm。

pacman -S nasm

此时还要安装make,否则make时找不到命令。

pacman -S autoconf automake libtool autoconf-archive make

3.2 配置与编译

执行配置:

./configure --host=x86_64-w64-mingw32 --enable-static

然后make。x264-master目录下会生成一个x264.exe可执行文件。

3.3 编码测试

打开一个cmd命令行窗口,进入到x264-master目录下,准备待编码文件720p.yuv,执行如下命令,测试编码:

x264.exe 720p.yuv -o 720p.264 --input-res 1280x720

执行结果:

yuv [info]: 1280x720p 0:0 @ 25/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x264 [info]: profile High, level 3.1, 4:2:0, 8-bit
x264 [info]: frame I:4     Avg QP:18.89  size: 81318
x264 [info]: frame P:274   Avg QP:21.57  size: 16011
x264 [info]: frame B:546   Avg QP:25.88  size:  2419
x264 [info]: consecutive B-frames:  4.4% 18.2% 10.9% 66.5%
x264 [info]: mb I  I16..4:  4.8% 61.3% 33.9%
x264 [info]: mb P  I16..4:  2.0%  6.4%  0.8%  P16..4: 48.3% 15.8%  7.5%  0.0%  0.0%    skip:19.1%
x264 [info]: mb B  I16..4:  0.1%  0.2%  0.0%  B16..8: 29.5%  2.1%  0.2%  direct: 1.2%  skip:66.7%  L0:41.0% L1:54.7% BI: 4.2%
x264 [info]: 8x8 transform intra:68.0% inter:73.4%
x264 [info]: coded y,uvDC,uvAC intra: 48.8% 76.8% 43.2% inter: 8.2% 17.1% 1.6%
x264 [info]: i16 v,h,dc,p: 31% 25% 22% 22%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 17% 26%  4%  6%  7%  6%  5%  5%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 14% 16%  7%  8%  9%  7%  8%  5%
x264 [info]: i8c dc,h,v,p: 50% 18% 23%  9%
x264 [info]: Weighted P-Frames: Y:0.0% UV:0.0%
x264 [info]: ref P L0: 73.1% 12.5% 12.7%  1.7%
x264 [info]: ref B L0: 92.1%  7.0%  0.9%
x264 [info]: ref B L1: 99.1%  0.9%
x264 [info]: kb/s:1464.27encoded 824 frames, 247.45 fps, 1464.27 kb/s

可以看到,编码速度可以达到大约250fps。


http://www.xdnf.cn/news/200179.html

相关文章:

  • OpenVLA-OFT
  • 谷歌政策松绑?!3月仅下架4.8万款App,同比减少50%
  • Spring生命周期
  • Linux系统编程---exec簇:进程的加载与替换
  • 安装qt4.8.7
  • 软件评测:从多维度看其界面、功能、性能稳定性如何?
  • Java后端开发day38--不可变集合Stream流
  • Java后端接口调用拦截处理:注解与拦截器的实现
  • STM32实现SPI转USB虚拟串口输出(实测40M时钟不丢包)
  • 报表工具:企业数据决策的“智能翻译官“
  • 【knife4j】添加Cookie
  • 12. RANSAC点云多平面拟合分割
  • MySQL5.7.21查询入门
  • 软链接与硬链接
  • Transformer Prefill阶段并行计算:本质、流程与思考
  • 电价单位解析与用电设备耗电成本计算
  • python程序设习题答案
  • 沐曦玩转 LMDeploy、XTuner 和 InternLM3
  • es2025新特性
  • lmms-eval--微调实战笔记
  • 2.2.2goweb内置的 HTTP 处理程序2
  • Nature Communications 仿生电子天线:赋予机器人敏锐 “触觉”
  • TimDbg
  • AT2401C与RFX2401C问题处理资料
  • 新环境注册为Jupyter 内核
  • Python内置方法干货总结
  • [OS_9] C 标准库和实现 | musl libc | offset
  • 关于消息队列的一些事~
  • LeetCode【剑指offer】系列(图和其他篇)
  • 某校多档口食堂就餐行为可视化分析-Tableau