基于itop4412在Linux最小系统下的USB摄像头采集视频的H264编码

原创 2017年01月11日 00:09:27

1.实验目的:实现linux系统下的H264编码(Linux最小系统)

2.实验平台:迅为4412开发板。

3.实验流程:

(1)编码代码:

V4L2视频采集与H.264编码源码大放送:Linux视频采集与编码(三)

(2) x264库编译:

我是参考前面代码的博主实现的,所以我在下载x264库的版本也相同。
为:x264-snapshot-20120101-2245
下载地址:(ftp://ftp.videolan.org/pub/videolan/x264/snapshots/)

解压: #tar -vxf x264-snapshot-20120101-2245

  #cd x264-snapshot-20120101-2245
  # ./configure --host=arm-linux --prefix=/opt/wecam/ffmpeg --enable-shared --disable-asm

配置选项中已经添加了host的选项,makefile就不用再修改,但是要修改config.mak。我修改的如下:

这里写图片描述

这个配置比较关键,如果没有正确修改,后面的操作就会出错!

#make

#make install

编译成功:

这里写图片描述


编译完成后,在目标路径下(/opt/wecam/ffmpeg)可以得到三个文件夹:
这里写图片描述

分别是可以执行的文件:x264 ; 头文件;x264库文件。至此,x264库的编译就完成了。

(3)编译源文件,从(1)得到的代码,根据自己的开发板经过修改后,将x264库中编译出来的 lib 和 include 两个文件夹拷贝到源代码文件中替换掉。

这里写图片描述

将Makefile文件中的编译器替换如下:

这里写图片描述

执行 make 编译,在路径下的 bin 文件夹中可以得到可执行文件。

(4) 测试
将可执行文件和编译得到库文件通过tftp服务器方式下载到开发板上,chmod 修改权限后执行,可在当前路径下得到采集的 yuv 格式的视频和经过编码的 h264 两个视频文件。
库文件:放到开发板的 /lib/目录下

这里写图片描述

视频:

这里写图片描述

可以明显的看到经过编码后的视频减小了很多。拷贝到电脑,用 VLC media player 播放器播放 h264 文件,发现视频的色彩变成了黑白,继续解决。至少已经实现了视频的编码了,嘿嘿。

这里写图片描述

(5)直接使用编译得到的 x264 文件编码采集到的 yuv 视频文件。将采集到的视频文件先通过 mv 重新命名 cam_usb_test.yuv –> test_640x480.yuv ,分辨率是可以选择的。(必须先重新进行文件名的修改,否则在运行x264编码的时候会出错)

 ./x264 -o text_1.h264 test_640x480.yuv 

编码过程:

这里写图片描述

可得到text_1.h264文件。用 VLC 可进行播放,但是出现花屏,我想是不是分辨率的问题呢?

x264输出统计值含义(http://blog.csdn.net/dancing_night/article/details/44852649)

参考:
1.mini2440下UVC摄像头采集视频并且用H264压缩

2.linux编译x86和arm平台的x264

3.远程监控系统项目总结

4.arm mini2440 基于v4l2 ffmpeg x264的视频远程监控

5.s5pv210+v4l2+h264硬件编码+RTP协议传输+SDP文件的嵌入式视频监控系统

版权声明:原创文章转载请注明出处。

基于Linux 3.0.8 Samsung FIMC(S5PV210) 的摄像头驱动框架解读(一)

作者:咕唧咕唧liukun321来自:http://blog.csdn.net/liukun321FIMC这个名字应该是从S5P100开始出现的,在s5pv210里面的定义是摄像头接口,但是它同样具有...
  • liukun321
  • liukun321
  • 2014年08月04日 22:32
  • 8041

基于QT和tiny4412,mini2440的多摄像头无线监控。

大约花了一个月的时间大体上完成了多摄像头无线监控,现在总结一下。    最开始用的基于kernel2.6.13的mini2440,由于板子的内核太老,需要自己移植无线网卡RT5370,还有对无线网操...
  • u010841212
  • u010841212
  • 2014年12月24日 21:20
  • 1491

【Tiny4412】 Tiny4412开发环境搭建

创建一个ARM目录mkdir   /disk/A9  -p接下来你需要准备以下的东西1、arm-linux-gcc-4.5.1     交叉编译器2、linux-3.5-tiny4412      内...
  • dengjin20104042056
  • dengjin20104042056
  • 2016年11月23日 09:05
  • 1231

ffmpeg 压缩摄像头采集的图片为*.H264文件

主要用opencv打开摄像头,采集到数据后,传输给ffmpeg ,压缩为h264数据,h264的文件可以直接拖到vcl播放器播放MyEncoder.h#pragma once extern "C" {...
  • baidu_31872269
  • baidu_31872269
  • 2017年10月22日 20:12
  • 187

基于Video4Linux 的USB 摄像头图像采集实现

最近一直在做一个摄像头视频采集的程序,遇到了很多艰辛的问题,下边这是一个好文章,粘过来供大家也供自己能对添加驱动以及摄像头视频采集 程序的书写有一定的帮助,同时谢谢博主能提供这样一份很好的文章。 ...
  • leo115
  • leo115
  • 2012年03月10日 20:35
  • 9345

视频采集原理简介

视频(Video)是多幅静止图像(图像帧)与连续的音频信息在时间轴上同步运动的混合媒体,多帧图像随时间变化而产生运动感,因此视频也被称为运动图像。按照视频的存储与处理方式不同,可分为模拟视频和数字视频...
  • Andy20081251
  • Andy20081251
  • 2014年03月12日 10:48
  • 1414

结合芯片exynos 4412介绍V4L2用来视频编解码的驱动

这里结合芯片exynos 4412介绍一下V4L2用来视频编解码的驱动结构 内核代码基于3.4.106  linux-3.4.106\drivers\media\video\s5p-mfc  l...
  • WAN8180192
  • WAN8180192
  • 2016年06月21日 23:06
  • 1983

基于V4L2,H264的远程视频采集程序

  • 2015年05月05日 19:57
  • 6.04MB
  • 下载

V4L2视频采集与H264编码2—v4l2采集YUV数据

在上一篇中因为是在PC机上使用的USB摄像头只能支持GPEG image格式,但是H264编码需要使用YUV数据,所以我找了个ARM开发板来做测试。本以为代码从PC机移植到开发板是很简单的一个事,谁知...
  • li_wen01
  • li_wen01
  • 2016年12月10日 22:26
  • 2852

V4L2视频采集与H264编码4—X264编码H264视频

以30万像素摄像头YUV420格式来计算一帧数据大小 = 长 * 宽 * 1.5 = 640 * 480 * 1.5 / 1024 = 450 K,视频的码流将会是 450 K * 25 / 1...
  • li_wen01
  • li_wen01
  • 2016年12月11日 16:09
  • 1953
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于itop4412在Linux最小系统下的USB摄像头采集视频的H264编码
举报原因:
原因补充:

(最多只允许输入30个字)