2024年1月3日发(作者:)

mini2440下UVC摄像头采集视频并且用H264压缩(原创)

先上传程序框图

这里面主要涉及到几个点,一个是UVC摄像头的数据采集,另一个是X264在ARM平台下的编译,使其产生libx264.a静态链接库

UVC摄像头的视频采集就不说太多了,想了解的可以去 /detail/zhangzhenyuancs/4771678 下载。

这里出来的数据格式为YUV4:2:2

主要说说X264在ARM平台下的编译

因为在进行H264压缩时主要用到了X264编译出来的libx264.a静态链接库。

我用的X264版本为x264-snapshot-20120316-2245-stable。可以去/detail/zhangzhenyuancs/4771526下载

1.编译

解压2

#tar -xvzf 2

#cd x264-snapshot-20120316-2245-stable

# ./configure --host=arm-linux --prefix=/opt/wecam/ffmpeg --enable-shared --disable-asm

配置选项中已经添加了host的选项,所以makefile就不用再修改了,但是要修改

[plain] view plaincopy

1.

2.

3.

4.

SRCPATH=.

prefix=/opt/webcam/ffmpeg

exec_prefix=${prefix}

bindir=${exec_prefix}/bin

5. libdir=${exec_prefix}/lib

6. includedir=${prefix}/include

7. ARCH=ARM

8. SYS=LINUX

9. CC=arm-linux-gcc

10. CFLAGS=-Wshadow -O3 -fno-fast-math -Wall -I. -I$(SRCPATH) -std=gnu99 -fPIC -fomit-frame-pointer -fno-tree-vectorize

11. DEPMM=-MM -g0

12. DEPMT=-MT

13. LD=arm-linux-gcc -o

14. LDFLAGS= -lm -lpthread

15. LIBX264=libx264.a

16. AR=arm-linux-ar rc

17. RANLIB=arm-linux-ranlib

18. STRIP=arm-linux-strip

#make

#make install

x264编译也不会出现问题的,如果有,把之前安装的pc端的x264全部删掉

2.测试X264是否在ARM平台下编译好

把之前采集的.yuv视频命名为 test_ 分辨率可选,这一点很重要

然后运行./x264 -o test.H264 test_ 可执行文件在bin文件中

然后用暴风影音播放看.H264文件能否放出

主要使用其中的libx264.a库

关于把采集出的图像进行编码可以参见/detail/zhangzhenyuancs/4771445

这里每采集出一帧.yuv数据,就把它进行H264编码。