FFMPEG功能

FFMPEG功能

1.  视频音频格式转换


Ffmpeg能使用任何支持的格式和协议作为输入:


*比如你可以输入YUV文件:ffmpeg -i /tmp/test%d.Y /tmp/out.mpg

它将要使用如下文件:

   /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V,等等…


    *你能输入原始的YUV420P文件:ffmpeg -i /tmp/test.yuv /tmp/out.avi

原始的YUV420P文件包含原始的YUV极性,每帧以Y平面开始,跟随U和V平面,它们是Y平面水平垂直的一半分辨率


    *你能输出原始的YUV420P文件

ffmpeg -i mydivx.avi -o hugefile.yuv
       *你能设置几个输入文件和输出文件

   ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

   上面的命令行转换音频文件a.wav和原始的YUV 视频文件 a.yuv到mpeg文件a.mpeg
       *你也能同时转换音频和视频

ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

上面的命令行转换a.wav的采样率到22050HZ并编码为mpeg音频

*你也能同时编码到几种格式并且在输入流和输出流之间建立映射

ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0

    上面的命令行转换一个64Kbits 的a.wav到128kbits的a.mp2 ‘-map file:index’在输出流的顺序上定义了那一路输入流是用于每一个输出流的,

       

转码解密的VOB:

   ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi

   上面的命令行将vob的文件转化成avi文件,mpeg4的视频和mp3的音频。注意命令中使用了B帧,所以mpeg4流是divx5兼容的。GOP大小是300意味着29.97帧频下每10秒就有INTRA帧。该映射在音频语言的DVD转码时候尤其有用

2.   Ffmpeg使用语法

       ffmpeg [[options][`-i' input_file]]... {[options] output_file}...

   如果没有输入文件,那么视音频捕捉就会起作用。

   作为通用的规则,选项一般用于下一个特定的文件。如果你给 –b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。

   缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。

3.选项

a) 通用选项
       -L license
       -h 帮助
       -fromats 显示可用的格式,编解码的,协议的。。。
       -f fmt 强迫采用格式fmt
       -I filename 输入文件
     -y 覆盖输出文件
         -t duration 设置纪录时间   hh:mm:ss[.xxx]格式的记录时间也支持
       -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持
         -title string 设置标题
         -author string 设置作者
         -copyright string 设置版权
         -comment string 设置评论
       -target type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码以及缓冲区大小)自动设置 ,只需要输入如下的就可以了:
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
       -hq 激活高质量设置
         -itsoffset offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

b) 视频选项

            -b bitrate 设置比特率,缺省200kb/s
                -r fps 设置帧频 缺省25
                -s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:
                      Sqcif   128X96 qcif 176X144 cif 252X288 4cif 704X576
                -aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
                -croptop size 设置顶部切除带大小 像素单位
                -cropbottom size –cropleft size –cropright size
                -padtop size 设置顶部补齐的大小 像素单位
                -padbottom size –padleft size –padright size –padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
                -vn 不做视频记录
                -bt tolerance 设置视频码率容忍度kbit/s
                -maxrate bitrate设置最大视频码率容忍度
                -minrate bitreate 设置最小视频码率容忍度
                -bufsize size 设置码率控制缓冲区大小
                -vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。
                -sameq 使用同样视频质量作为源(VBR)
                -pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率

            -passlogfile file 选择两遍的纪录文件名为file

            -

c)高级视频选项

             -g gop_size 设置图像组大小

             -intra 仅适用帧内编码

             -qscale q 使用固定的视频量化标度(VBR)

             -qmin q 最小视频量化标度(VBR)

             -qmax q 最大视频量化标度(VBR)

             -qdiff q 量化标度间最大偏差 (VBR)

             -qblur blur 视频量化标度柔化(VBR)

             -qcomp compression 视频量化标度压缩(VBR)

             -rc_init_cplx complexity 一遍编码的初始复杂度

             -b_qfactor factor 在p和b帧间的qp因子

             -i_qfactor factor 在p和i帧间的qp因子

             -b_qoffset offset 在p和b帧间的qp偏差

             -i_qoffset offset 在p和i帧间的qp偏差

             -rc_eq equation 设置码率控制方程 默认tex^qComp

             -rc_override override 特定间隔下的速率控制重载

             -me method 设置运动估计的方法 可用方法有 zero phods log x1 epzs(缺省) full

             -dct_algo algo 设置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC

             -idct_algo algo 设置idct算法。可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM

             -er n 设置错误残留为n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE

-ec bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)

             -bf frames 使用frames B 帧,支持mpeg1,mpeg2,mpeg4

             -mbd mode 宏块决策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD

             -4mv 使用4个运动矢量 仅用于mpeg4

             -part 使用数据划分 仅用于mpeg4

             -bug param 绕过没有被自动监测到编码器的问题

             -strict strictness 跟标准的严格性

             -aic 使能高级帧内编码 h263+

             -umv 使能无限运动矢量 h263+

             -deinterlace 不采用交织方法

             -interlace 强迫交织法编码 仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。可选的方法是不交织,但是损失更大

             -psnr 计算压缩帧的psnr

             -vstats 输出视频编码统计到vstats_hhmmss.log

             -vhook module 插入视频处理模块 module 包括了模块名和参数,用空格分开

D)音频选项

             -ab bitrate 设置音频码率

             -ar freq 设置音频采样率

             -ac channels 设置通道 缺省为1

             -an 不使能音频纪录

             -acodec codec 使用codec编解码

   E)音频/视频捕获选项

             -vd device 设置视频捕获设备。比如/dev/video0

             -vc channel 设置视频捕获通道 DV1394专用

             -tvstd standard 设置电视标准 NTSC PAL(SECAM)

             -dv1394 设置DV1394捕获

             -av device 设置音频设备 比如/dev/dsp

              

F)高级选项

             -map file:stream 设置输入流映射

             -debug 打印特定调试信息

             -benchmark 为基准测试加入时间

             -hex 倾倒每一个输入包

             -bitexact 仅使用位精确算法 用于编解码测试

             -ps size 设置包大小,以bits为单位

             -re 以本地帧频读数据,主要用于模拟捕获设备

             -loop 循环输入流。只工作于图像流,用于ffserver测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程02

2019独角兽企业重金招聘Python工程师标准>>> 线程中有几个方法需要我们区分 1 sleep方法是表示线程执行到这的时候只是暂时处于“睡眠”状态,在这种状态下线程是不会释放CPU资源的,当到达休眠时间后,线程继续“起来”干活。当线程…

@postconstruct注解方法没有执行_把对象的创建交给spring来管理(注解IOC)

自动按照类型注入/** * 账户的业务层实现类 * * 曾经XML的配置&#xff1a; * <bean id"accountService" class"com.itheima.service.impl.AccountServiceImpl" * scope"" init-method"" destroy-method""> * <pro…

解决-ubuntu 安装redis无法启动

解决-ubuntu 安装redis无法启动 环境 Ubuntu 16.04 Port 6379 Redis version 5:4.0.9-1 1-安装 apt install redis2-安装完成-自启时提示启动服务失败 Errors were encountered while processing:redis-serverredis E: Sub-process /usr/bin/dpkg returned an error code (1…

JavaScript中的数据类型转换

js数据类型转换 使用&#xff1a;Number&#xff08;&#xff09;、parseInt() 和parseFloat&#xff08;&#xff09; 做类型转换 Number()强转一个数值(包含整数和浮点数)。*parseInt()强转整数&#xff0c;*parseFloat&#xff08;&#xff09;强转浮点数函数isNaN()检测参…

web.xml(8)_jsp-config

13.jsp-config jsp-config元素主要用来设定JSP的相关配置,<jsp:config>包含<taglib>和<jsp-property-group>两个子元素.当中<taglib>元素 在JSP 1.2时就已经存在了;而<jsp-property-group>是JSP 2.0新增的元素. taglib :对标记库描写叙述符文件&…

CABAC之手把手教你编码

首先要说明的是CABAC的生命期是SLICE,因此本篇所讲的也是一个SLICE里CABAC的流程,其次对于我们来说场模式几乎用不到,所以本文的编码流程只使用帧模式,因此实际上用到的表只有277个, 当然如果我写成399, 不是说里面所有表都用到的. 这里只是声明一下这个问题, 如果大家实际操作…

python网络攻击代码_Python-python网络编程写arp攻击代码

from scapy.all import ARP,send,arping import sys,re,random,time stdoutsys.stdout ip IPADDR"192.168.1.102" 网关 gateway_ip"192.168.1.1" tmp[] 伪造网关mac地址 for i in range(0,6): tmp.append(str("%02x"%random.randint(0x01,0xfe))…

Kubernetes初步学习

今天分享如题&#xff1a; Kubernetes 本篇内容源于工作项目需要自学 但K8s确实现在十分的主流so推荐给大家 最近更新缓慢由于工作太忙惹&#xff0c;忙里偷闲整理愿分享能与君共勉&#x1f4aa; 大家新年快乐&#x1f389; &#x1f508;言归正题&#xff0c;相信很多朋友…

手机界面常见的的九宫格

手机界面常见的的九宫格 手机界面常见的的九宫格 首先布局的话需要用到一个mainactivity和一个item的布局目前用得最多也最熟悉的还是LinearLayout布局所以&#xff0c;一下也是&#xff0c;按套路就不过多赘述了。 <GridView android:layout_width"wrap_content"…

JavaScript中的运算符

js运算符 算 字 赋 比 逻 位 它算术运算符 - * / --字符串连接 赋值运算 - %比较运算符 < > > < ! !逻辑运算符 && || !位运算 ^ & | << >>其它运算符 ? : 三元运算符 delete&#xff1…

CABAC编码

H&#xff0e;264&#xff0f;AVC标准采用了很多新技术和新方法&#xff0c;大大提高了视频编码效率&#xff0c;其中CABAC便是H&#xff0e;264&#xff0f;AVC采用的新型熵编码方法之一。CABAC采用了高效的算术编码思想&#xff0c;同时充分考虑了视频流相关统计特性&#xf…

【教程分享】Jmeter入门教程

好&#xff01;回归学长每周的教程分享&#xff01; PART2 >今天又来分享Jmter 因为最近好像有相关工作内容 提前准备资修一下 分享仅供参考- JMeter的作用对软件做压力测试 1.能够对HTTP和FTP服务器进行压力和性能测试&#xff0c; 也可以对任何数据库进行同样的测试&…

linux 特殊shell变量

特殊变量 环境变量&#xff1a; 系统本身运行需要由linux系统提前创建好的一类变量 主要用于用户的工作环境&#xff0c;包括&#xff08;用户的宿主目录&#xff0c;命令的查找路径&#xff0c;用户的当前目录&#xff0c;登录的终端等&#xff09;环境变量的值由操作系统本身…

JavaScript中的循环

js循环 程序中进行有规律的重复性操作&#xff0c;需要用到循环语句。 break 和 continue 语句对循环中的代码执行提供了更严格的控制。 for循环 for(var i0;i<len;i){...... }while循环 var i0;while(i<8){......i;}for-in 语句 for-in 语句是严格的迭代语句&…

快速傅里叶变换python_FFT快速傅里叶变换的python实现过程解析

FFT是DFT的高效算法&#xff0c;能够将时域信号转化到频域上&#xff0c;下面记录下一段用python实现的FFT代码。 # encodingutf-8 import numpy as np import pylab as pl # 导入和matplotlib同时安装的作图库pylab sampling_rate 8000 # 采样频率8000Hz fft_size 512 # 采样…

rabbitmq的安装全过程

2019独角兽企业重金招聘Python工程师标准>>> 1 首先下载安装依赖elang 添加yum支持 cd /usr/local/src/ mkdir rabbitmq cd rabbitmq wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rp…

【框架学习分享】HttpRunner

今天文章分为两部分 :) PART1 HttpRunner内容分享/ PART2 关于后厂村儿 10 Minutes HttpRunner: PART 1 首先感谢作者开源&#x1f44d; 因为最近工作需要用到HttpRunner&#xff0c; 于是便趁着周末学了下这个测试框架&#xff0c;感觉还可以~ 所以分享一下今天的学习记…

x264 移植到 ARM的方法

1。Linux下编译X264&#xff1a; 其实在windows下使用vc已经编译过了&#xff0c;不过听到有人说在linux下编好了&#xff0c;我也就尝试做一下&#xff0c;况且x264源代码的makefile已经做好了&#xff0c;我只需要做的就是把文件copy一下&#xff0c;然后make 一下就可以了。…

JavaScript中的元素获取与操作

js元素获取与操作 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素&#xff0c;获取到的是一个html对象&#xff0c;然后将它赋值给一个变量&#xff0c;比如&#xff1a; <script type"text/javascript">var oDiv document…

VUE2第五天学习---自定义指令

阅读目录 1.理解VUE中的自定义指令回到顶部1.理解VUE中的自定义指令 默认核心指令有 (v-model 和 v-show), 但是有时候我们需要用到自定义指令&#xff0c;在vue中&#xff0c;代码复用主要形式和抽象是组件&#xff0c;但是在有的情况下&#xff0c;我们仍然需要对DOM元素进行…