I.MX6 FFmpeg 录制视频
/*************************************************************************
* I.MX6 FFmpeg 录制视频
* 说明:
* 通过FFmpeg录制视频是很正常的事,测试一下。
*
* 2017-2-10 深圳 南山平山村 曾剑锋
************************************************************************/ 一、 参考文档:
. FFmpeg 录制桌面、麦克风、摄像头
http://blog.csdn.net/candcplusplus/article/details/53955012 二、测试命令:
ffmpeg -f video4linux2 -t -i /dev/video1 -vcodec libx264 -f mp4 test1.mp4 三、视频录制信息:
# ffmpeg -f video4linux2 -t -i /dev/video1 -vcodec libx264 -f mp4 test1.mp4
ffmpeg version 3.2 Copyright (c) - the FFmpeg developers
built with gcc 4.8. (Sourcery CodeBench Lite 2014.05-) (prerelease)
configuration: --enable-cross-compile --cross-prefix=/home/aplex/tinyfs/buildroot-2016.11./output/host/usr/bin/arm-none-linux-gnueabi- --sysroot=/home/aplex/tinyfs/buildroot-2016.11./output/host/usr/arm-buildroot-linux-gnueabi/sysroot --host-cc=/usr/bin/gcc --arch=arm --target-os=linux --disable-stripping --pkg-config=/home/aplex/tinyfs/buildroot-2016.11./output/host/usr/bin/pkg-config --disable-static --enable-shared --prefix=/usr --enable-avfilter --disable-version3 --enable-logging --enable-optimizations --disable-extra-warnings --enable-avdevice --enable-avcodec --enable-avformat --disable-x11grab --enable-network --disable-gray --enable-swscale-alpha --enable-filter=scale --disable-small --enable-dct --enable-fft --enable-mdct --enable-rdft --disable-crystalhd --disable-dxva2 --enable-runtime-cpudetect --disable-hardcoded-tables --disable-memalign-hack --disable-mipsdsp --disable-mipsdspr2 --disable-msa --enable-hwaccels --disable-avisynth --disable-frei0r --disable-libopencore-amrnb --disable-libopencore-amrwb --disable-libcdio --disable-libdc1394 --disable-libgsm --disable-libilbc --disable-libnut --disable-libopenjpeg --disable-libschroedinger --disable-libvo-amrwbenc --disable-symver --disable-doc --enable-gpl --disable-nonfree --enable-ffmpeg --enable-ffplay --enable-ffserver --disable-avresample --disable-ffprobe --enable-postproc --enable-swscale --enable-indevs --enable-outdevs --enable-pthreads --enable-zlib --enable-bzlib --disable-libfdk-aac --disable-gnutls --disable-openssl --disable-libopenh264 --disable-vaapi --disable-vdpau --disable-libopencv --disable-libopus --disable-libvpx --disable-libass --disable-libbluray --disable-librtmp --disable-libmp3lame --disable-libmodplug --disable-libspeex --disable-libtheora --disable-libwavpack --enable-libfreetype --disable-fontconfig --enable-libx264 --enable-libx265 --disable-yasm --disable-mmx --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-avx2 --enable-armv6 --disable-vfp --disable-neon --disable-altivec --enable-pic --cpu=cortex-a9
libavutil . 34.100 / . 34.100
libavcodec . 64.100 / . 64.100
libavformat . 56.100 / . 56.100
libavdevice . 1.100 / . 1.100
libavfilter . 65.100 / . 65.100
libswscale . 2.100 / . 2.100
libswresample . 3.100 / . 3.100
libpostproc . 1.100 / . 1.100
Input #, video4linux2,v4l2, from '/dev/video1':
Duration: N/A, start: 1190.523607, bitrate: kb/s
Stream #:: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, kb/s, fps, tbr, 1000k tbn, 1000k tbc
File 'test1.mp4' already exists. Overwrite ? [y/N] y
No pixel format specified, yuv422p for H. encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0x4c450] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x4c450] profile High ::, level 3.0, :: -bit
[libx264 @ 0x4c450] - core - H./MPEG- AVC codec - Copyleft - - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #, mp4, to 'test1.mp4':
Metadata:
encoder : Lavf57.56.100
Stream #:: Video: h264 (libx264) ([][][][] / 0x0021), yuv422p, 640x480, q=---, fps, tbn, tbc
Metadata:
encoder : Lavc57.64.100 libx264
Side data:
cpb: bitrate max/min/avg: // buffer size: vbv_delay: -
Stream mapping:
Stream #: -> #: (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame= fps= q=29.0 size= 121kB time=::00.96 bitrate=.8kbits/frame= fps= q=29.0 size= 122kB time=::01.13 bitrate= .9kbits/frame= fps= q=29.0 size= 123kB time=::01.36 bitrate= .4kbits/frame= fps= q=29.0 size= 124kB time=::01.63 bitrate= .4kbits/frame= fps= q=29.0 size= 124kB time=::01.80 bitrate= .0kbits/frame= fps= q=29.0 size= 219kB time=::07.06 bitrate= .1kbits/frame= fps= q=29.0 size= 219kB time=::07.20 bitrate= .7kbits/frame= fps= q=29.0 size= 220kB time=::07.60 bitrate= .2kbits/frame= fps= q=29.0 size= 220kB time=::07.76 bitrate= .4kbits/frame= fps= q=29.0 size= 221kB time=::07.93 bitrate= .8kbits/frame= fps= q=29.0 size= 246kB time=::08.30 bitrate= .5kbits/frame= fps= q=29.0 size= 246kB time=::08.60 bitrate= .6kbits/frame= fps=9.6 q=-1.0 Lsize= 451kB time=::10.30 bitrate= .4kbits/s dup= drop= speed=.319x
video:446kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.000611%
[libx264 @ 0x4c450] frame I: Avg QP:25.07 size:
[libx264 @ 0x4c450] frame P: Avg QP:18.96 size:
[libx264 @ 0x4c450] frame B: Avg QP:27.88 size:
[libx264 @ 0x4c450] consecutive B-frames: 1.6% 1.3% 1.0% 96.2%
[libx264 @ 0x4c450] mb I I16..: 23.5% 52.4% 24.1%
[libx264 @ 0x4c450] mb P I16..: 1.9% 3.5% 0.7% P16..: 17.1% 2.9% 2.5% 0.0% 0.0% skip:71.4%
[libx264 @ 0x4c450] mb B I16..: 0.0% 0.1% 0.0% B16..: 10.4% 0.6% 0.1% direct: 1.2% skip:87.5% L0:40.9% L1:56.1% BI: 3.1%
[libx264 @ 0x4c450] 8x8 transform intra:55.4% inter:83.9%
[libx264 @ 0x4c450] coded y,uvDC,uvAC intra: 48.3% 88.0% 59.2% inter: 2.4% 9.2% 2.3%
[libx264 @ 0x4c450] i16 v,h,dc,p: % % % %
[libx264 @ 0x4c450] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: % % % % % % % % %
[libx264 @ 0x4c450] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: % % % % % % % % %
[libx264 @ 0x4c450] i8c dc,h,v,p: % % % %
[libx264 @ 0x4c450] Weighted P-Frames: Y:2.5% UV:1.3%
[libx264 @ 0x4c450] ref P L0: 56.2% 11.0% 24.4% 7.7% 0.6%
[libx264 @ 0x4c450] ref B L0: 75.6% 21.6% 2.8%
[libx264 @ 0x4c450] ref B L1: 91.8% 8.2%
[libx264 @ 0x4c450] kb/s:350.88
# ls
test1.mp4
#
I.MX6 FFmpeg 录制视频的更多相关文章
- 实例:通过调用外部程序进行录制视频(ffmpeg.exe)
相关知识点: 1. ffmpeg可以用下面的参数来录制Windows 桌面操作的视频. ffmpeg.exe -y -rtbufsize 100M -f gdigrab -framerate 10 - ...
- ffmpeg命令 从网络摄像头录制视频
安装 sudo apt-get install ffmpeg 录制视频为record.mp4文件 ffmpeg -y -i rtsp://cameral_ip:port -vcodec copy -a ...
- ffmpeg为视频添加时间戳 - 手动编译ffmpeg
FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...
- Android手机录制视频 实时传输(转载)
最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...
- 在Ubuntu上录制视频和编辑(很全)
Linux多媒体三剑客:GIMP,Inkscape,Blender3D Blender基金会制作的开源微电影Sintel:http://www.sintel.org/about电影采用Creative ...
- NET 2.0(C#)调用ffmpeg处理视频的方法
另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...
- javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- python+ffmpeg切割视频
什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...
- Java Web 中使用ffmpeg实现视频转码、视频截图
Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html ...
随机推荐
- Windows server2008 搭建ASP接口訪问连接oracle数据库全过程记录
真的是太不easy了,曾经的时候在window server 2003上面搭建了一套asp+oracle的接口系统.就费了好大的劲儿,事实上那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨 ...
- Hadoop编码解码【压缩解压缩】机制具体解释(1)
想想一下,当你须要处理500TB的数据的时候,你最先要做的是存储下来. 你是选择源文件存储呢?还是处理压缩再存储?非常显然,压缩编码处理是必须的.一段刚刚捕获的60分钟原始视屏可能达到2G,经过压缩处 ...
- solr查询
1.根据字段查询: http://www.360doc.com/content/14/0306/18/203871_358295621.shtml 2.模糊查询: http://www.tuicool ...
- 1. lvs+keepalived 高可用群集
一. keepalived 工具介绍 1.专为lvs 和HA 设计的一款健康检查工具 2.支持故障自动切换 3.支持节点健康状态检查 二. keepalived 实现原理剖析 keepalived ...
- SQLServer2008 统计表占用空间
1.查看一张表占用的空间大小 EXEC sp_spaceused '表' 1.查看一个数据库中所有表占用空间大小 EXEC sp_MSforeachtable 'sp_spaceused " ...
- Qt插件开发入门(两种方法:High-Level API接口,Low-Level API接口)
Qt中为我们提供了两种开发插件的方式.一种是使用High-Level API接口,一种是使用Low-Level API接口.所谓High-Level API 是指通过继承Qt为我们提供的特定的插件基类 ...
- Linux中假设系统丢失了ls命令
假设系统丢失了ls命令,如何修复: 1.查询ls命令属于那个rpm包[root@localhost ~]# rpm -qf /bin/lscoreutils-8.4-43.el6.x86_64 2.挂 ...
- 如何下载symfony
php -r "readfile('https://symfony.com/installer');" > symfony 可能无法下载,:那么你检查一下你的php.ini找 ...
- C#读取excel 找不到可安装的ISAM
实在没有办法了 就仔细的查看了 一下数据链接字符串: string strConn = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" ...
- Django模型系统——ORM中跨表、聚合、分组、F、Q
核心知识点: 1.明白表之间的关系 2.根据关联字段确定正反向,选择一种方式 在Django的ORM种,查询既可以通过查询的方向分为正向查询和反向查询,也可以通过不同的对象分为对象查询和Queryse ...