/*************************************************************************
* 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 录制视频的更多相关文章

  1. 实例:通过调用外部程序进行录制视频(ffmpeg.exe)

    相关知识点: 1. ffmpeg可以用下面的参数来录制Windows 桌面操作的视频. ffmpeg.exe -y -rtbufsize 100M -f gdigrab -framerate 10 - ...

  2. ffmpeg命令 从网络摄像头录制视频

    安装 sudo apt-get install ffmpeg 录制视频为record.mp4文件 ffmpeg -y -i rtsp://cameral_ip:port -vcodec copy -a ...

  3. ffmpeg为视频添加时间戳 - 手动编译ffmpeg

    FFMPEG给视频加时间戳水印 项目中需要给视频添加时间戳,理所当然最好用的办法是ffmpeg.在找到正确的做法前,还被网上的答案timecode给水了一下(水的不轻,在这里转了2天),大概是这样写的 ...

  4. Android手机录制视频 实时传输(转载)

    最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...

  5. 在Ubuntu上录制视频和编辑(很全)

    Linux多媒体三剑客:GIMP,Inkscape,Blender3D Blender基金会制作的开源微电影Sintel:http://www.sintel.org/about电影采用Creative ...

  6. NET 2.0(C#)调用ffmpeg处理视频的方法

    另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...

  7. javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  8. python+ffmpeg切割视频

    什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...

  9. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

随机推荐

  1. winphone 中的指针和手势事件

    注意  有关这些主题的最新概述,请参阅指针事件和手势事件主题. 小心  W3C 指针事件规范自从在 Internet Explorer 10 中实施以来,已经经历了多次修订.此外,截止到 Intern ...

  2. 【BZOJ3112】[Zjoi2013]防守战线 单纯形法

    [BZOJ3112][Zjoi2013]防守战线 题解:依旧是转化成对偶问题,然后敲板子就行了~ 建完表后发现跟志愿者招募的表正好是相反的,感觉很神奇~ #include <cstdio> ...

  3. 关于logback

    1 logback是一个日志框架 2 logback的构成 LogBack被分为3个组件,logback-core, logback-classic 和 logback-access. 其中logba ...

  4. 测试站如何最快获取正式站的最新数据: ln -s

    针对静态数据, 比如图片/js等文件, 测试站如何获取最新的呢? ln -s /alidata/www/mysite/uploads /alidata/www/mysite_test/uploads ...

  5. rm -rf 删除文件找回

    一个不小心rm掉文件了吧? 后悔莫及了吧! 把这段代码加入你的home目录的.bashrc或者.zshrc就可以了! 工作原理: 在你的home目录会创建一个.trash文件夹 里面会按照删除时间 年 ...

  6. [转】IIS:Do not nest virtual directories

    原文:https://msdn.microsoft.com/en-us/library/ms178685.aspx#Anchor_6 Configuration settings for virtua ...

  7. 14.Django自带的admin配置

    admin有自己的默认显示,要自定义显示的样式,一般需要自己定义一个类,在自己定义的类里进行相应的设置,然后,把自己的类交给装饰器 交给装饰器的方法有两种: 1.@admin.register(Pub ...

  8. Swift学习笔记十一:方法

         方法是与某些特定类型相关联的功能/函数.在Swift中,结构体和枚举能够定义方法:其实这是Swift与C/Objective-C的主要差别之中的一个. 在Objective-C中,类是唯一能 ...

  9. ARDUINO MEGA2560 经过ESP8266 WIFI模块上传温湿度数据到 OneNet 服务器

    简述 原来写了一个C++的wifi库但是发现用c++ arduino这小身板有点扛不住,代码比较大,使用String类型数据处理速度慢,而且很容易无缘无故跑飞.而且封装成库后使用还需要修改arduin ...

  10. 用Visual Studio编辑Linux代码

    估计很多人都是用惯了Visual Studio的主,怎么也不适应Linux的一套编辑器,比如vim.source insight这些东西,可视化的eclipse效果还好点,但一般以远程共享一台Linu ...