通过ffplay实现摄像头preview
通过ffplay实现摄像头preview
硬件平台:Jetson TK1 开发板(NVIDIA Tegra K1 Mobile Processor 32bit),宁波舜宇光电SP103A(OV16825)模组
软件平台:Ubuntu/Linaro 4.8.2-16ubuntu4(Linux version 3.10.40 32bit)
摄像头驱动已经实现,支持v4l2的接口。
首先安装SDL库,第一次通过源代码安装的SDL-1.2.14版本,使用时总是提示SDL初始化失败。第二次先输入命令“sudo apt-get remove libsdl1.2debian”,“sudo apt-get install libsdl1.2-dev”,再通过源代码安装SDL-1.2.15问题解决了。
然后安装x264,步骤比较简单
$git clone git://git.videolan.org/x264.git
$cd x264
$./configure
$make
$sudo make install
最后安装ffmpeg,通过git下载官网最新的版本,当前版本是2.8版本,通过configure --enable-memalign-hack --enable-static,make, sudo make install安装就可以了。
我们的驱动输出的是sensor的原始数据,为bayer raw10格式,每个颜色占用16bit,只有低10位是有效数据,顺序为bggr。ffmpeg的原始代码是不支持raw10的,需要做一定的修改。原始代码支持bayer raw8和bayer raw16, 因为bayer raw10和bayer raw16一样都是占用两个字节,所以我们参考bay raw16修改。首先在libavdevice/v4l2-common.c中的ff_fmt_conversion_table中增加一项,这里我们直接借用raw16格式,在应用看来raw10作为raw16处理,在v4l2接口调用时使用V4L2_PIX_FMT_SBGGR10。
{ AV_PIX_FMT_BAYER_BGGR16LE, AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_SBGGR10 },
对于raw16,目前的代码在libswscale/bayer_template.c中BAYER_SHIFT设置为8,表示低位的8位直接舍弃,因为raw10只能舍弃低2位,所以我们将BAYER_SHIFT设置为2。
为了方便调试可以将libavutil/log.c中av_log_level从AV_LOG_INFO改成AV_LOG_TRACE,输出更多信息。
做完以上修改后重新编译,安装ffmpeg,然后使用命令"ffplay -f v4l2 -input_format bayer_bggr16le -video_size 4608x3456 -i /dev/video0"就可以实现预览了,如果还是提示SDL初始化失败,可以在shell中输入DISPLAY=:0和export DISPLAY命令设置一下DISPLAY。
通过ffplay实现摄像头preview的更多相关文章
- Android 用MediaCodec实现视频硬解码(转)
本文向你讲述如何用android标准的API (MediaCodec)实现视频的硬件编解码.例程将从摄像头采集视频开始,然后进行H264编码,再解码,然后显示.我将尽量讲得简短而清晰,不展示 那些不相 ...
- Android 用MediaCodec实现视频硬解码
http://blog.csdn.net/halleyzhang3/article/details/11473961 http://www.360doc.com/content/14/0119/10/ ...
- 基于flash的web视频对讲直播测试
由于项目的需求,要在web上实现视频通话的需求.现成的方案有WebRTC,基于浏览器的成熟方案,但是这个方案和公司项目需求有几个点冲突.后来考虑到基于flash的方案.参考雷神的博客 simplest ...
- FFmpeg采集音视频数据命令
文章转自:https://www.jianshu.com/p/4709ccbda3f9 1.ffmpeg 把文件当做直播推送至服务器 (RTMP + FLV) ffmpeg - re -i demo. ...
- ffplay 播放网络摄像头视频
shell脚本如下,无须加port ffplay rtsp://cameral_ip
- 摄像头视频捕捉(简单通用--通过IsampleGrabberCB实现)
前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用Direct ...
- linux下motion摄像头监控编译与配置
利用linxu下的开源的motion搭建嵌入式视频动态监控系统 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体.按拍照速率都是可调的), ...
- matlab2015b调用摄像头
参考链接:http://blog.csdn.net/lyqmath/article/details/7307429 本人电脑是宏碁T5000 调用代码: % By lyqmathclc; clear ...
- MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率
1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\ ...
随机推荐
- centos7下搭建JAVA项目运行环境。 JAVA+MYSQL+TOMCAT+NGINX
环境: centos 7 64位 一.配置mysql 5.71.下载mysql源安装包wget http://dev.mysql.com/get/mysql57-community-release-e ...
- InterView之PHP
PHP HTTP Keep-Alive的作用 作用 Keep-Alive:使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接.Web服务器 ...
- C#直接用数字定义背景颜色
如下: tableLayoutPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte ...
- GDAL并行I/O
和导师在Transactions in GIS 上发表的关GDAL并行I/O方面的文章(SSCI, IF=0.906)http://onlinelibrary.wiley.com/doi/10.111 ...
- Tomcat,JBoss与JBoss Web
最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考. 一.Tomcat Tomcat 服务器是免费开源的Web 应用服务器.支 ...
- Spark Shell简单使用
基础 Spark的shell作为一个强大的交互式数据分析工具,提供了一个简单的方式学习API.它可以使用Scala(在Java虚拟机上运行现有的Java库的一个很好方式)或Python.在Spark目 ...
- JSON必知必会
知识点比较杂,简单的以列表形式罗列知识点 1.json是基于javascript对象字面量的,所以他们看起来很像.但是js对象字面量不需要给名称-值对中的名称两边加上双引号.而在JSON中,却是必要的 ...
- javascript实例——文本特效篇(包含3个小例子)
1.标题跑马灯 常常能够在一些新闻网站,或者其他地方,看到文字在一个特定的区域内,来回滚动.一旦超出边界就消失了,那么这些效果是如何做到的呢,今天我们就来讲讲. 图示效果: 源代码: <!doc ...
- c#基础学习(0719)之异常处理
异常处理的一般代码模式 try { //可能发生异常的代码 //当try中某行代码发生异常后,从该行代码开始,后面的代码都不会继续执行, //程序直接跳转到catch块中进行执行 } catch (E ...
- JavaScript学习笔记系列1:JavaScript的是什么?
一.JS是什么? JavaScript作为Netscape Navigator浏览器的一部分首次出现在1996年.它最初的设计目标是改善网页的用户体验. 作者:Brendan Eich 期初JavaS ...