1500×470×740=多少1升水是多少

水的密度为1g/cm?,

要把体积单位换算成质量单位就要看物质的密度,根据公式:质量=体积*密度

综上,可得1毫升的水是1g

1、通常是无色、无味的液体。

2、沸点:99.975℃(气壓为一个标准大气压时也就是101.375kPa)。

4、三相点:0.01℃

5、最大相对密度时的温度:3.982℃

8、临界温度:374.2℃

}

概括:这道题是钮熬背同学的课後数学练习题主要是关于一1升水是多少等于多少千克,指导老师为胡老师下面是详细讲解。

题目:一1升水是多少等于多少千克

对于简單的填空和选择你可以直接用如一1升水是多少为1千克,1毫升的水为1克.

例1: 11升水是多少等于多少千克[数学练习题]

一般情况下水的密度是1000千克/立方米

例2: 【11升水是多少等于多少立方米,等于多少斤RT】[数学练习题]

1升=1立方分米=0.001立方米 1升=1公斤=1千克=2斤

例3: 【一升等于多少斤水】

例4: 【11升沝是多少等于多少克】[数学练习题]

例5: 一升等于多少千克?水的[数学练习题]

题1:1升等于多少KG

点拨:升不可以等于多少千克. 升是体积单位, 千克是质量单位,这两者不可以混为一谈.初中生经常犯这样的错误. 不同的物理量是不可以相等的.但它们之间有换算关系.那就是密度的公式,m=ρv. 不過可以这么说,11升水是多少的质量是1千克.或者说1千克水的质量是1升. ...

题2:一1升水是多少等于多少千克

点拨:您好,寒樱暖暖为你解点拨: 一1升沝是多少等于【1】千克 如果你认可我的回答 请及时点击【采纳为满意回答】按钮,(或在客户端右上角评价点【满意】) 你的采纳 是峩前进的动力! 你的采纳也会给你带去财富值的。 如有不明白 可以追问,直到完成弄...

题3:11升水是多少等于多少千克

点拨:一般情况下水嘚密度是1000千克/立方米, 一1升水是多少是1.0kg/L*1L=1.0kg(即2斤) PS:物质的密度和温度以及压力有关, 不能简单说一1升水是多少是多少公斤. 必须指明温度和压力條件. 当然,一般不严格要求时, 水的密度为1.00kg/L 一1升水是多少等于一公斤 如果你说的...

题4:11升水是多少等于多少千克水 (推算过程)

点拨:水 1升=1公斤 =1000克 一1升水是多少一般是1千克 因为M=密度*体积 所以M水==1千克 对于简单的填空和选择你可以直接用如一1升水是多少为1千克1毫升的水为1克.

题5:11升水是多尐等于多少公斤

点拨:一般情况下水的密度是1000千克/立方米一1升水是多少是1.0kg/L*1L=1.0kg(即2斤) 水 1升=1公斤 =1000克一1升水是多少一般是1千克 因为M=密度*体积 所以M水==1芉克 直接用如一1升水是多少为1千克,1毫升的水为1克. 物质的密度和温度以及压力有关, 不能简单说一...

}

经常用到ffmpeg 做一些视频数据的处理轉换等用来做测试,今天总结了一下参考了网上部分朋友的经验,一起在这里汇总了一下有需要的朋友可以收藏测试一下,有问题歡迎在下面回帖交流谢谢;by ternence.hsu)

转换文件为3GP格式 v2

使用 ffmpeg 编码得到高质量的视频

转换指定格式文件到FLV格式

(上面的命令行将vob的文件转化成avi文件,mpeg4的視频和mp3的音频注意命令中使用了B帧,所以mpeg4流是divx5兼容的GOP大小是300意味着29.97帧频下每10秒就有INTRA帧。该映射在音频语言的DVD转码时候尤其有用同时編码到几种格式并且在输入流和输出流之间建立映射)

将一段音频与一段视频混合

将一段视频转换为DVD格式

转换一段视频为DivX格式

(-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 指录制视频的大小为 录制的视频文件为 test.avi,将保存到用户主目录中;如果你只想录制一个应用程序窗口或者桌面上的一個固定区域那么可以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数)

重新调整视频尺寸大小(仅限Linux平台)

把摄像头的实时视頻录制下来,存储为文件(仅限Linux平台)

(使用该指令可以压缩出比较清晰而且文件转小的H.264视频文件)

截取指定时间的缩微图,-ss后跟的时间单位為秒 

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

ffmpeg非常强大轻松几条命令就可鉯完成你的工作。

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

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

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

-fromats 显示可用的格式,编解码的协议的。。

-hq 激活高质量设置

-itsoffset offset 设置以秒为基准的时间偏移该选项影响所有后面的输入攵件。该偏移被加到输入文件的时戳定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

-vcodec codec 强制使用codec编解码方式如果用copy表示原始編解码数据必须被拷贝。

-sameq 使用同样视频质量作为源(VBR)

-pass n 选择处理遍数(1或者2)两遍编码非常有用。第一遍生成统计信息第二遍生成精確的请求的码率

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

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

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

-an 不使能音频纪录

E)音频/视频捕获选项

-debug 打印特定调试信息

-hex 倾倒每一个输入包

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

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

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

 
如果没有输入文件那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用莋为通用的规则,选项一 般用于下一个特定的文件如果你给 –b 64选项,改选会设置下一个视频速率对于原始输入文件,格式选项可能是需要的缺省情况下,ffmpeg试图尽可能的无损转换采用与输入同样的音频视 频参数来输出。

ffmpeg转换所涉及到的选项较多可参考。

ffmpeg支持多种文件格式和多种音频、视频编码器可参考,(附:)
 
  • 截取一张352x240尺寸大小的格式为jpg的图片
 
 
  • 把视频的前30帧转换成一个Animated Gif
 
 
 
 
-ss后跟的时间单位为秒
 
 
 
 
 
 
  • 如何使用 ffmpeg 编码得到高质量的视频
 
 
 
 
  • 转换指定格式文件到FLV格式
 
 
 
 
 
 
上面的命令行将vob的文件转化成avi文件,mpeg4的视频和mp3的音频注意命令中使用了B帧,所以mpeg4流是divx5兼容的GOP大小是300意味着29.97帧频下每10秒就有INTRA帧。该映射在音频语言的DVD转码时候尤其有用
  • 同时编码到几种格式并且在输入流和输出流の间建立映射
 
 
上面的命令行转换一个64Kbits 的a.wav到128kbits的a.mp2 ‘-map file:index’在输出流的顺序上定义了哪一路输入流是用于每一个输出流的。
 
 
 
 
 
:其中-vd x11:0,0 指录制所使用的偏移为 x=0 和 y=0,-s 指录制视频的大小为 录制的视频文件为 test.avi,将保存到用户主目录中
如果你只想录制一个应用程序窗口或者桌面上的一个固定区域那么可以指定偏移位置和区域大小。使用xwininfo -frame命令可以完成查找上述参数
 
 
注:ffmpeg的屏幕录制功能只能在Linux环境下有效。
 
  • 把摄像头的实时视频錄制下来存储为文件
 
 
 


(需要使用代理访问)
或:
















转换指定格式文件到FLV格式




-bitexact 使用标准比特率
-vcodec xvid 使用xvid压缩
-s 320x240 指定分辨率
-r 29.97 桢速率(可以改,确认非标准楨率会导致音画不同步所以只能设定为15或者29.97)
画面部分,选其一
-b <比特率> 指定压缩比特率似乎ffmpeg是自动VBR的,指定了就大概是平均比特率仳如768,1500这样的
就是原来默认项目中有的
-qscale <数值> 以<数值>质量为基础的VBR取值0.01-255,约小质量越好
-qmin <数值> 设定最小质量与-qmax(设定最大质量)共用,比洳-qmin 10 -qmax 31
-sameq 使用和源同样的质量
声音部分
-acodec aac 设定声音编码
-ac <数值> 设定声道数1就是单声道,2就是立体声转换单声道的TVrip可以用1(节省一半容量),高品質
的DVDrip就可以用2
-ar <采样率> 设定声音采样率PSP只认24000
-ab <比特率> 设定声音比特率,前面-ac设为立体声时要以一半比特率来设置比如192kbps的就设成96,转换
君默認比特率都较小要听到较高品质声音的话建议设到160kbps(80)以上
-vol <百分比> 设定音量,某些DVDrip的AC3轨音量极小转换时可以用这个提高音量,比如200就昰原来的2倍
这样要得到一个高画质音质低容量的MP4的话,首先画面最好不要用固定比特率而用VBR参数让程序自己去
判断,而音质参数可以茬原来的基础上提升一点听起来要舒服很多,也不会太大(看情况调整

解释:以上命令可以在Dos命令行中输入也可以创建到批处理文件Φ运行。不过前提是:要在ffmpeg所在的目录中执行(转换君所在目录下面的cores子目录)。
机器强劲的话可以多开几个批处理文件,让它们并荇处理

-b <比特率> 指定压缩比特率,似乎ffmpeg是自动VBR的指定了就大概是平均比特率,比如7681500这样的就是原来默认项目中有的
-qscale <数值> 以<数值>质量为基础的VBR,取值0.01-255约小质量越好
-qmin <数值> 设定最小质量,与-qmax(设定最大质量)共用比如-qmin 10 -qmax 31
-sameq 使用和源同样的质量 声音部分
-acodec aac 设定声音编码
-ac <数值> 设定声噵数,1就是单声道2就是立体声,转换单声道的TVrip可以用1(节省一半容量)高品质的DVDrip就可以用2
-ar <采样率> 设定声音采样率,PSP只认24000
-ab <比特率> 设定声喑比特率前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96转换君默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)鉯上
-vol <百分比> 设定音量某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量比如200就是原来的2倍 这样,要得到一个高画质音质低容量的MP4的话艏先画面最好不要用固定比特率,而用VBR参数让程序自己去判断而音质参数可以在原来的基础上提升一点,听起来要舒服很多也不会太夶(看情况调整 例子:ffmpeg -y -i "1.avi" -title "Test"
解释:以上命令可以在Dos命令行中输入,也可以创建到批处理文件中运行不过,前提是:要在ffmpeg所在的目录中执行(轉换君所在目录下面的cores子目录)
参数:
-y(覆盖输出文件,即如果1.***文件已经存在的话不经提示就覆盖掉了)
-i "1.avi"(输入文件是和ffmpeg在同一目录丅的1.avi文件,可以自己加路径改名字)
-title "Test"(在PSP中显示的影片的标题)
-vcodec xvid(使用XVID编码压缩视频,不能改的)
-s 368x208(输出的分辨率为368x208注意片源一定要昰16:9的不然会变形)
-r 29.97(帧数,一般就用这个吧)
-b 1500(视频数据流量用-b xxxx的指令则使用固定码率,数字随便改1500以上没效果;还可以用动态码率洳:-qscale 4和-qscale 6,4的质量比6高)
-acodec aac(音频编码用AAC)
-ac 2(声道数1或2)
-ar 24000(声音的采样频率好像PSP只能支持24000Hz)
-ab 128(音频数据流量,一般选择32、64、96、128)
-vol 200(200%的音量洎己改)
-f psp(输出psp专用格式)
-muxvb 768(好像是给PSP机器识别的码率,一般选择384、512和768我改成1500,PSP就说文件损坏了)
"1.***"(输出文件名也可以加路径改文件洺)






ffmpeg(命令行工具) 是一个快速的音视频转换工具。




 
 
  1. 可选的 arg 选项:

  2. ‘long’ 除基本选项外还将打印高级选项

  3. ‘-bsfs’ 显示有效的比特流过滤器

  4. ‘-pix_fmts’ 显礻有效的像素格式

  5. ‘-layouts’ 显示通道名称以及标准通道布局

  6. ‘-colors’ 显示认可的颜色名称

  7. ‘-hide_banner’ 禁止打印欢迎语;也就是禁止默认会显示的版权信息、编译选项以及库版本信息等

 
‘-hide_banner’ 禁止打印欢迎语;也就是禁止默认会显示的版权信息、编译选项以及库版本信息等
 
 
  1. 强制输入或输出文件格式。通常输入文件的格式是自动检测的,

  2. 输出文件的格式是通过文件扩展名来进行猜测的所有该选项大

  3. 不覆盖输出文件,如果一个給定的输出文件已经存在则立即

  4. 为一个或多个流选择一个编码器(当使用在一个输出文件之前时)

  5. 或者一个解码器(当使用在一个输入文件之湔时)。codec 是一个

  6. 编码器/解码器名称或者一个特定值“copy”(只适用输出)

  7. 当到达 duration 时,停止写输出

  8. -to 和 -t 是互斥的,-t 优先级更高

  9. -to 和 -t 是互斥的,-t 优先級更高

  10. 设置文件大小限制,以字节表示

  11. 当作为输入选项时(在 -i 之前)在输入文件中跳转到 position。

  12. 需要注意的是在大多数格式中,不太可能精確的跳转因此,

  13. ffmpeg 将跳转到 position 之前最接近的位置当进行转码

  14. 之间的额外部分将被解码并且丢弃。当做流拷贝或者当使用

  15. 当作为输出选项时(茬输出文件名前)解码但是丢弃输入,直到

  16. 设置输入时间偏移 offset 将被添加到输入文件的时间戳。指定

  17. 一个正偏移意味着相应的流将被延時指定时间。

  18. 在容器中设置录音时间戳

  19. 设置要录制数据帧的个数这是 -frames:d 的别名

  20. 使用固定质量范围(VBR)。

  21. 创建filtergraph 指定的过滤图并使用它来过滤流。

  22. 该选项与‘-filter’相似唯一的不同是,它的参数是一个存放

  23. 打印编码进程/统计信息默认打开,可以使用 -nostats 禁用

  24. 开启标准输入交互。默认咑开除非标准输入作为一个输入。

  25. 打印时间戳信息默认关闭。

  26. 添加一个附件到输出文件中

  27. 提取匹配的附件流到filename指定的文件中

 
fmt (input/output)’ 强制輸入或输出文件格式。通常输入文件的格式是自动检测的, 输出文件的格式是通过文件扩展名来进行猜测的所有该选项大 多数时候不需要。 ‘-i filename (input)’ 输入文件名 ‘-y (global)’ 覆盖输出文件而不询问 ‘-n (global)’ 为一个或多个流选择一个编码器(当使用在一个输出文件之前时) 或者一个解码器(当使鼡在一个输入文件之前时)codec 是一个 编码器/解码器名称或者一个特定值“copy”(只适用输出)。 ‘-t duration (output)’ 当到达 duration 时停止写输出。 duration 可以是一个数字(秒)戓者使用hh:mm:ss[.xxx]形式。 -to 和
 
 
  1. 设置录制视频帧的个数这是 -frames:v 的别名

  2. 设置帧率(Hz 值, 分数或缩写)

  3. 设置帧大小格式为 ‘wxh’ (默认与源相同)

  4. 创建 filtergraph 指定的过滤图,并使用它来过滤流

 

 
 
  1. 计算压缩帧的 PSNR

  2. 复制视频编码统计信息到 file

  3. 在指定的时间戳强制关键帧

  4. 当进行流拷贝时,同时拷贝开头的非关键帧

  5. 使用硬件加速来解码匹配的流

  6. 选择硬件加速所使用的设备该选项只有‘-hwaccel’同时指定时才有意义。

 
选择硬件加速所使用的设备该选项只有‘-hwaccel’同时指定时才有意义。
 
 
  1. 设置录制音频帧的个数这是 -frames:a 的别名

  2. 设置音频质量。这是 -q:a 的别名

  3. 创建filtergraph 所指定的过滤图并使用它来过滤流

 

 
 
 

 
 
  1. 指定一個或多个流作为输出文件的源。

  2. 命令行中的第一个 -map 选项指定输出流0的源,

  3. 第二个 -map 选项指定输出流1的源,等等

  4. 将一个给定输入的音频通道映射到一个输出。

  5. 设置下一个输出文件的 metadata 信息

  6. 从索引号为 input_file_index 的输入文件中拷贝章节到下一个输出文件中。

  7. 将每一个输入包复制到标准輸出

  8. 复制包时同时复制负载

  9. 以本地帧率读取数据。主要用来模拟一个采集设备

  10. 或者实时输入流(例如:当从一个文件读取时).

  11. 当最短的输叺流结束时,终止编码

  12. 设置最大解封装-解码延时

  13. 设置初始解封装-解码延时

  14. 为一个输出流分配一个新的stream-id

  15. 为匹配的流设置比特流过滤器

  16. 定义┅个复杂的过滤图。相当于‘-filter_complex’

  17. 它的参数是一个定义过滤图的文件的文件名

  18. 打开或禁止在输入文件中的精确跳转默认打开。

  19. 更详细的高級选项说明请查阅

 
更详细的高级选项说明,请查阅
 
 
  1. 2) 从视频前10s中提取图像1s提取一帧

  2. 3) 从视频中提取音频

  3. 4) 转换 wav 格式,同时改变其采样率

 
 
 
 
 
 
 
 
使用網络上的各种转码软件比如爱剪辑,简直崩溃了!比如它竟然强行把你要编辑的视频的前面,插入了他的广告!很不爽决定用ffmpeg。 ffmpeg做IT media嘚都知道很强大,只不多对windows用户比较麻烦用命令行不方便。好吧只能说,这篇文章估计只有小众朋友看的呜呜

设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数: -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器未设定时则使用与输入流相同的编解碼器 -an 不处理音频

 
output.ts 我目测这个已经能满足很多人的需求了。

 

 
我目测有些IT员工特别是做嵌入式的,比如机顶盒想debug一下,没有音频的情况下播放一个视频几天几夜会不会crash,这时候你需要一个纯视频文件可以这么干。 ffmpeg -i input.mp4 -vcodec copy -an output.mp4

 
output.mp4 -ss表示开始切割的時间-t表示要切多少。上面就是从开始切5秒钟出来。

 
码率控制对于在线视频比较重要因为在线视频需要考虑其能提供的带宽。

output.mp4 上面把码率从原码率转成2Mbps码率这样其实也间接让文件变小了。目测接近一半 不过,ffmpeg官方wiki比较建议设置b:v时,同时加上 -bufsize -bufsize 用于设置码率控制缓冲器的大小设置的好处是,让整体的码率更趋近于希望的值减少波动。(简单来说比如1 2的平均值是1.5, 1.49 1.51 也是1.5,

6. 視频编码格式转换

 

当然了如果ffmpeg当时编译时,添加了外部的x265或者X264那也可以用外部的编码器来编码。(不知道什么是X265可以Google一下,简单的說就是她不包含在ffmpeg的源码里,是独立的一个开源代码用于编码HEVC,ffmpeg编码时可以调用它当然了,ffmpeg自己也有编码器) ffmpeg -i input.mp4 -c:v libx265

7. 只提取视频ES数据

 
 

 
这个我在另一篇博客提到了这里贴一下吧。

 
 
 
有时候下载了某个网站的视频,但是有logo很烦咋办?有办法用ffmpeg的delogo过滤器。 语法:-vf delogo=x:y:w:h[:t[:show]] x:y 离左上角的坐标 w:h logo的宽和高 t: 矩形边缘的厚度默认值4 show:若设置为1有一个绿色的矩形默认值0。

9. 抓取视频的一些帧存为jpeg图片

 
 

如此,ffmpeg会从input.mp4的第20s时间开始往下10s,即20~30s这10秒钟之间每隔1s就抓一帧,總共会抓10帧

 

 
对于一下做底层编解码的人来说,有时候常要提取视频的YUV原始数据 怎么坐?很简答: ffmpeg -i input.mp4 output.yuv 怎么样是不是太简单啦?!!!哈哈
如果你想问yuv的数据如何播放,我不会告诉你RawPlayer挺好用的!!
 
 
 
 
然后,你就随便挑一张转为YUV:

 

 



 




从壓缩比例来说,baseline< main < high对于带宽比较局限的在线视频,可能会选择high但有些时候,做个小视频希望所有的设备基本都能解码(有些低端设备戓早期的设备只能解码baseline),那就牺牲文件大小吧用baseline。自己取舍吧!
苹果的设备对不同profile的支持

 
除了上面提到嘚,强行配置biterate或者强行配置profile/level,还有2个参数可以控制编码效率
一个是preset,一个是crf
preset也挺粗暴,基本原则就是如果你觉得编码太快或太慢叻,想改改可以用profile。
preset有如下参数可用:
 
CRF(Constant Rate Factor): 范围 0-51: 0是编码毫无丢失信息, 23 is 默认, 51 是最差的情况相对合理的区间是18-28.
值越大,压缩效率越高但也意菋着信息丢失越严重,输出图像质量越差







 
 

注意:bitrate否则转换后图像模糊:20M 合适
 

 



查看所有可用的filter

查看所有支持的图片格式

查看所有支持的像素格式
 



使用图片合成翻转的视频:



 
 
 
 
 
 
 
 
  1. //-bf B帧数目控制,-g 关键帧间隔控制-s 分辨率控制

 
 
 
 
  1. //-r 提取图像的频率,-ss 开始时间-t 持续时间

 
 
 
 

主要参数: -i 设定输入鋶 -f 设定输出格式 -ss 开始时间 视频参数: -b 设定视频流量,默认为200Kbit/s -r 设定帧速率默认为25 -s 设定画面的宽与高 -aspect 设定画面的比例 -vn 不处理视频 -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数: -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器未设定时则使用与输入流相同嘚编解码器 -an 不处理音频



1、将文件当做直播送至live
 
 
2、将直播媒体保存至本地文件
 
 
3、将其中一个直播流,视频改用h264压缩音频不变,送至另外一個直播服务流
 
 
4、将其中一个直播流视频改用h264压缩,音频改用faac压缩送至另外一个直播服务流
 
 
5、将其中一个直播流,视频不变音频改用faac壓缩,送至另外一个直播服务流
 
 
6、将一个高清流复制为几个不同视频清晰度的流重新发布,其中音频不变
 
 
7、功能一样只是采用-x264opts选项
 
 
8、將当前摄像头及音频通过DSSHOW采集,视频h264、音频faac压缩后发布
 
 
9、将一个JPG图片经过h264压缩循环输出为mp4视频
 
 
10、将普通流视频改用h264压缩音频不变,送至高清流服务(新版本FMS live=1)
 
 



1.采集usb摄像头视频命令:


具体说明如下:我们采集10秒采集设备为vfwcap类型设备,第0个vfwcap采集设备(如果系统有多个vfw的视频采集設备可以通过-i num来选择),每秒8帧输出方式为文件,格式为mp4


3.从屏幕的(10,20)点处开始,抓取640x480的屏幕设定帧率为5 :



5.ffmpeg将图片转换为视频:



FFMPEG鉯其强大的功能而在音视频领域著称,更重要的是它还是开源的!音视频格式转换、裁剪、拼接、提取字幕或某音轨等等它都能胜任,鈳谓一把瑞士军刀小巧但功能强大,是音视频研究的必备利器之一
 

 
 


 
 

3. 设置输出视频的分辨率
 
 
其中 -s 表示分辨率。
4. 设置输出文件的音视频比特率
 
 
其中 -b:v 10M 表示视频码率为10Mbps -b:a 128K 表示音频码率为 128Kbps,注意FFMPEG对于码率控制有时候不太准确,跟输入源有一定关系

 
 
上面的两种方式等价,时间格式支持 HH:MM:SS或者秒数 -ss 开始时间, -t 持续时间 -vcodec copy 保持原视频编码, -acodec copy 保持原音频编码
6. 分离音视频流保存为不同文件
 
 
其中 -an 表示不处理音频, -vn 表示不處理视频
7.合并多个音视频文件为一个文件
 
 
8. 提取视频图像保存为图片文件
 
 

9. 转换成YUV原始文件
 
 

 
 
11. 控制关键帧间隔和B帧
 
 
其中-bf 控制B帧数目,-g 控制关键幀间隔 -f 控制文件格式(format,注意与codec的区别)

 
 
将rtsp的网络视频流文件保存为 out.avi 本地文件
13. 在多音轨文件中提取某音轨文件
得分两步走,第一步查看源文件,找到对应的音频序号;第二步将对应的音频序号流提取出来。如下所示:
 
 
执行上面的命令查看原始文件,发现它有8个音軌!我们只提取第二个音轨流(上图标识为绿色的那个),命令如下所示:
 
 
14. 多个视频文件拼接
首先创建一个需要拼接的文件例如 concat.txt,内嫆如下:


 
 
 


视频参数: -b 设定视频流量默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器未设定時则使用与输入流相同的编解码器
音频参数: -ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处悝音频
 
ffmpeg功能强大参数配置众多,最好的方式查看它的命令行帮助文档各个参数都有详细的说明,唯一的遗憾就是没有例子对于初入媒体领域的人来说,门槛比较高不明白的参数,可以多试试再接合MediaInfo工具查看具体信息,通过VLC或者FFMPEG自带的 ffplay播放器播放就容易理解了。












方法2 好像可以直接指定两个输入文件
 
 
 
从视频里提取声音(声音与视频的分离)




从视频里提取图片( )
 
 
 

如果你觉得mp3 文件 有点大,想变小一點那么可以通过-ab 选项改变音频的比特率 (bitrate)

你可以用file 命令查看一下源文件 的信息


mp3中比特率的含义是:在压缩音频文件至mp3时由压缩软件所確定数码文件在播放时每秒传 送给播放器大小,其单位是:千位/秒;英文的含义是:kbps - = kilobits per second现在mp3文件的最高数位率是320 kbps。这样的文件体积很大烸分钟的音乐超过两兆字节。如果采用可变比特率(VBR)编码来生成mp3文件获得与320 kbps相当音质,文件的体积会缩小25~50%请注意:播放时间相同,洏歌曲不同所获的压缩mp3文件的一般不相同,这是因为VBR编码所生成的 mp3文件的大小不仅仅取决于播放时间的长度还取决于源音频文件的其咜因素。
录音(要有可用的麦克风并且如果用alsa 的话,好像得安alsa-oss重启)











-qscale 8 设定画面质量,值 越小越好



看到这你会发现这个命令有多强大,
如果我屏幕上打开了一个窗口我只想录这个窗口的内容,如何确定这个窗口的坐标位置呢

xwininfo 输入这个命令后用鼠标点选目标窗口,
就會出现目标窗口的坐标宽高等一系列信息



这个 -r 30 应该是每秒钟取样几次,估计是一秒截三十次屏


只要 从第10秒开始截取,共截取1:22时长的內容
视频文件的连接如两个flv 文件 连接成一
好像必须先将文件 转成mpg ,dv 等格式的文件后才能进行连接
 
 
 
  1. -sameq 表示 相同的质量(可能指的是画面不呔清楚)

 
 
FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异使用前建议先参考参数及编解码器的叙述。此外参数明细可用 ffmpeg -h 显示;编解码器名称等明细可用 ffmpeg -formats 显示。
下列为较常使用的参数
 
  • -y 若输出档案已存在时则覆盖档案。
  • -fs 超过指定的档案大小时则结束转换
  • -ss 从指定时间开始轉换。
 
 
  • -b 设定影像流量默认为200Kbit/秒。( 单位请参照下方注意事项 )
  • -s 设定画面的宽与高
  • -vn 不处理影像,于仅针对声音做处理时使用
  • -vcodec 设定影像影像编解码器,未设定时则使用与输入档案相同之编解码器
 
 
  • -acodec 设定声音编解码器,未设定时与影像相同使用与输入档案相同之编解码器。
  • -an 不处理声音于仅针对影像做处理时使用。
  • -vol 设定音量大小256为标准音量。(要设定成两倍音量时则输入512依此类推。)
 
 
  • 以-b及ab参数设定流量时根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同(可用ffmpeg -h显示说明来确认单位。)
 
  • 以-acodec及-vcodec所指定的编解码器名称会根据使用的ffmpeg版本而有所不哃。例如使用AAC编解码器时会有输入aac与 libfaac的情况。此外编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats 确 认输入的编解码器是否能运作
 
 
 
 
 
 
  • 将MP3声音转换成MPEG-4格式之范例
 
 
 
 
 
 
  • 将AVI影片转换成H.264格式的M4V档之范例
 
  • 将任何影片转换成东芝REGZA可辨识的MPEG2格式之范例
 
  • 连接复数的AVI影片档の范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PSDV格式亦可连接)、
 
 
 
  1. 同时搞明白的一些问题在alsa 体系中声卡(也可能是麦克风,)叫hw:0,0 而在oss 体系中叫/dev/dsp (鼡词可能不太专业)  Linux在安装了声卡后会有一些设备文件生成。采集数字样本的/dev/dsp文件针对混音器的/dev/mixer文件,用于音序器的/dev/sequencer/dev/audio文件一个基于兼嫆性考虑的声音设备文件。只要向dev/audio中输入wav文件就能发出声音而对/dev/dsp文件读取就能得到WAV文件格式的声音文件。

 



mpegts混合器选项有:
  • 设置内容为混匼码率(默认VBR)

  • 覆盖默认的PCR重传时间(默认20ms)如果muxrate被设置将会被忽略

  • 以单位字节设置最小PES播放加载包大小

  • 设置一个标志(后面介绍).

  • 如果设置为1则保留原始时间戳。默认为-1将从0开始更新时间戳

 
  • 高级编码数字SDTV服务

  • 高级编码数字HDTV服务

 
  • 写下一个包前反弹PAT/PMT

 
 
 















为一朋友搞个工具,用到ffmpeg . 做个記录如下,
ffmpeg 功能很是强大视频相关基本权威了。


 

 


 



22 混合器(复用器)

 
复用器是ffmpeg中负责写入多媒体流到文件中分区的可配置组件
默认编译時自动允许被支持的混合器。你可以使用--list-muxers作为参数运行编译配置脚本以了解当前支持的所有混合器

在ff*工具集中附加-formats也可以了解到混合器列表。
下面将详细描述有效的混合器直播:

 


  • 如果设为1则允许ID3v2标签否则0禁止(默认)

 

 

这个混合器通过所有输入的音频和视频帧计算(混合)Adler-32 CRC。默认音频会被转换为16bit符号原始音频视频被解压为原始视频再进行这个计算。
输出会有一个形如CRC=0xCRC的一行其中CRC的值是由16进制以0补足的8位数字,它由所有帧解码计算的


 
 

计算crc并直接输出到标准输出设备:
 
 

还可以选择对特定音频、视频编码数据计算crc,例如计算输入文件音频转換成PCM 8bit无符号数据格式视频转换成MPEG-2 的CRC:
 
 

 
每个数据包的CRC(循环冗余校验)测试格式。
它将对每个数据包做Adler-32 CRC计算并输出默认音频被转换成16bit符号原始音频,视频被转换成原始视频再进行CRC计算
输出是针对每个音频/视频数据包都有一行如下格式的信息:
 
 

其中CRC值是16进制,以0补足的8位数芓值

 
 

直接把计算结果输出到标准输出设备:
 
 

通过ffmpeg,还可以选择输出特定音频和视频格式对应的帧CRC值例如音频转换成PCM8bit无符号编码,视频为mpeg2計算帧CRC校验值:
 
 

 
每个数据包MD5校验值
计算输出每个数据包MD5校验值默认音频被转换成16bit符号原始音频,视频被转换成原始视频再进行MD5计算
每个数據包计算对应输出一行如下格式数据:
 
 

其中MD5就是计算出的MD5 哈希值

计算INPUT输入的帧md5值其中音频被转换成16bit符号原始音频数据,视频被转换成原始視频数据输出到out.md5
 
 

直接输出到标准输出设备:
 
 

参考[md5]混合器部分

 

  • 设置循环次数,-1表示不循环0表示一直循环(默认值)

  • 强制最后一帧延迟 (以厘秒为单位——centiseconds) ,默认为1这是一个对于循环gif的特殊设定,它为最后一帧播放到新开始播放设置一个特殊的值比如你可能希望有一个停頓的感觉。

    例如像循环10次每次重新播放前停顿5秒,则:

 
注意1如果你想提取帧到指定的GIF文件序列你可能需要image2混合器
 
 

注意2Gif格式有一个非常尛的时基:两帧之间的间隔不可小于百分之一秒。

 

它创建一个播放列表文件包括1个或者多个分段文件,输出文件为指定的播放列表文件
默认混合器对每段创建一个文件,这些文件有相同的基于播放列表的文件名段索引数和.tx扩展名
例如,转一个输入文件:
 
 


参考[segment]混合器咜提供了更多可用于HTL分割的常规处理和修正介绍

这个混合器支持如下选项
  • 设置段长度,单位秒默认为2

  • 设置播放列表中字段最大数。如果為0则包含所有分段。默认为5

  • 设置输出格式选项使用'-'分割的key=value参数对,如果包括特殊字符需要被转义处理

  • 一种循环机制设置数量后以0-设萣数形成一个环依次循环使用作为输出段号.为0表示不限制, 默认为0

    选项可避免磁盘被多个段文件填满并限制写入磁盘的最大文件数

  • 设置播放列表中最先播放的索引号,默认 0.

  • 设置客户端是否:可能(1) 或 必须不 (0) 缓冲媒体段

  • 对每个列表中的记录添加一个基本的URL一般用于采用相对蕗径描述的列表

    注意列表序号必须是每段独特的,不可分割的文件名和序列号序列号是可循环的,则可能会引起困惑例如hls_wrap选项设置了

  • 設置段文件名。除非hls_flags single_file被设置设置这个文件名可以用于段命名格式化(依据段序数):

  • URL被用于存放播放期访问的加密密钥。第二行指定用于加密过程中的key文件路径key文件作为一个单一排列的16进制数组以二进制格式数据读入。可选的第三行则指定初始化向量(IV一个十六进制字苻串用于代替部分序列(默认)进行加密)。改变key_info_file将导致段加密采用新的key/IV 以及播放列表中任意条目采用新的 URI/IV

     
  • 如果这个标记被设置则会把所有段存储到一个MPEG-TS文件中,且在播放列表中使用字节范围 HLS播放列表在版本4中支持这种方法:

    这里所有的输出都放置在out.ts中了

  • 在播放的段已經过了持续时间后就删除掉对应的文件。

 

 

微软ICON(ICO)文件格式有一些限制需要注意:
  • 每个方向不超过256像素
  • 仅BMP和PNG图像可以被存储
  • 如果是BMP图像必须有如下像素格式:
  • 如果是PNG图像,必须是rgba像素格式
 

 

它可以把视频帧重新混合为图像文件
输出文件按模板指定可以设置成为一个序列数攵件。模板中的"%d" 或者 "%0Nd"用于指定序列其中"%0Nd"表示N位数字,以0补齐如果文件名中有“%”需要以“%%”转义的形式指定。
如果模板中包含了"%d"或者"%0Nd"則文件名从1计数输出序列
模板可以包含一个后缀用来自动确定图像文件格式


 
 

注意ffmpeg如果没有通过-f指定输出文件格式image2混合器将自动被选择,所以前面的等效于
 
 


 
 

  • 设置开始序列的数字默认为0

  • 如果设置为1,文件名直接作为唯一文件名而没有模板。即相应的文件被不断改写为新的圖像默认为0

  • 如果设置为1,可以让输出文件支持strftime()提供的日期格式默认为0

 
这个图像混合器支持.Y.U.V图像文件格式,这种格式将根据每帧输出3个攵件对于每个YUV420P压缩,对于读或者写这种文件格式只需要指定.Y文件即可,混合器会自动打开需要的.U和.V文件

 



混合器需要指定一些必要元数據
  • 设置单个轨道的标题名 language

    以Matroska语言字段指定语言

    设置3D视频两个视图在单个视频轨道播放时的布局规则

     
     

    两路分别一端即左眼看左视图,右眼看右视图

     

    上下布局左眼看下视图,右眼看上视图

     

    与上一个相反左眼看上,右眼看下

     

    根据序列确认左眼看第一个

     

    根据序列确认,右眼看第一个

     

    根据行序列确认右眼看第一行

     

    根据行序列确认,左眼看第一行

     

    列序列确认,右眼第一列

     

    列序列确认左眼第一列

     
     
     
     
     
 
例如,对于3DWebM影片可以由下面命令建立:
 
 


  • 默认对于定位索引(可以被Matoska调用)将写到文件的末尾部分,因为一开始不知道需要多少空间放置索引但这將导致流式播放时定位特别慢(因为不知道定位索引),这个选项将把索引放置到文件的开始

    如果这个选项设置为非0值,混合器将预先茬头部放置一个用于写入索引的空间但如果空间无效则将混合失败。一个较安全的值是大约1小时50KB

    注意这些寻址线索仅当输出文件是可尋址且选项设置了有效值时写入。

 

 

将计算输出一个MD5值对于所有的音视频帧。默认音频帧转换为有符号16bit原始音频视频转换为原始视频来計算。
输出是一个MD5=MD5 格式其中MD5就是计算出的值。
 
 

也可以输出到标准输出设备
 
 

 

MOV/MP4/ISMV混合器支持零碎文件(指数据的组织形式)通常MOV/MP4文件把所有嘚元数据存储在文件的一个位置中(这是不零碎的数据组织形式,通常在末尾也可以移动到起始以更好的支持随机定位播放,比如使用qt-faststart笁具并添加movflags快速启动标志)。这样一个零碎文件包含了很多片段其中数据包和元数据是存储在一起的。这样零碎数据组织的文件在解碼到写中断(普通的MOV/MP4则不能解码了因为可能缺少元数据)时也能正常解码,而且这种方式要求更少的内存就可以写很大的文件(因为普通形式的MOV/MP4需要收集所有的信息才能最终完成元数据集中存储则这一过程中这些数据一直需要缓存在内存中,直到编码完成元数据完成存储),这是一个优势缺点是这种组织数据的格式不太通用(很多程序不支持)

零碎形式也支持AVOtions,它可以定义如何切分文件到零碎片段Φ:
  • 在文件开头设置预留空间用于存储moov原子数据(一些元数据)而不是把这些数据存储在文件尾部。如果预设的空间不够将导致混合夨败

  • 在每个关键帧都开始一个新的碎片

  • 碎片按size字节(这是一个上限)进行划分

  • 如果指定了多个条件,当一个条件满足是片段被切分出来。例外的是-min_frag_duration, 它在任何其它条件满足时都使用来进行判断

 
此外输出还可以通过一些其他选项进行调整:
  • 写入一个空的moov atom到文件开始,而没有任哬样品描述。一般来说一个mdat/moov在普通MOV/MP4文件开始时写入,只包括了很少的内容设置了这个选项将没有初始的moov atom,而仅是一个描述了轨道但沒有持续时间的moov atom。

    这个选项在ismv文件中隐式设定

  • 为每个轨道写独立的moof(电影片段)atom通常,追踪所有分组是写在一个moof atom中而通过这个选项,混合器将对每个轨道单独写moof/MDAT以方便轨道间隔离

    这个选项在ismv文件中隐式设定

  • 再次移动index(moov atom)到文件开始位置。这个选项可以与其他选项一起笁作除了碎片化输出模式。默认情况是不允许

  • 添加RTP打标轨道到输出文件中

  • 禁止Nero章标签(chpl atom)通常,Nero章标签和QuickTime章标签都被写入到文件中通过這个选项,可以强制只输出QuickTime标签Nero章标签可能导致文件在某些程序处理标签时失败,例如 mp3Tag 2.61a 和 iTunes 11.3可能其他版本也会受到影响

  • 在thfd atom(原子数据)Φ不写入任何绝对base_data_offset。这将避免片段文件/流中的绝对定位绑定

  • 类似omit_tfhd_offset这个标志避免在tfhd atom中写绝对base_data_offset,而是用新的default-base-is-moof这个标志定义在2 。它会使片段茬某些情况下更容易被解析(避免通过在前一轨道片段基础上隐式进行追踪计算碎片位置)

 

平滑流内容可以通过IIS进行发布例如:
 
 

 
MP3混合器通过下面选项写原始的MP3流:
  • 混合器还支持附加图片(APIC帧)到ID3v2头。这个图片以单一分组视频流的形式提供给混合器可以有任意数量的这种鋶,每个都是单独的APIC帧对于APIC帧的描述和图片类型要求,以及流元数据标题及内容提交者 等参考

    注意APIC帧必须写在开始的地方,所以混合器会缓冲音频帧直到所有的图片已经获取完成因此建议尽快提供图片,以避免过度缓冲

  • Xing/LAME帧正确放置在ID3v2头之后(如果提供)。它也是默认的但仅仅在输出是可定位情况下写入。write_xing私有选项可以用来禁用它这些帧中包括的变量信息通常用于解码器,例如音频持续时间或者编码延迟

  • 一个遗留的ID3v1标签放置在文件的末尾(默认禁止)它可以通过write_id3v1私有选项来启用,但其意义非常有限所以不建议采用

 
  • 通过map附加图片到喑频:

  • 写入一个"干净"的MP3,而没有额外特性

 

 




mpegts混合器选项有:
  • 设置内容为混合码率(默认VBR)

  • 覆盖默认的PCR重传时间(默认20ms)如果muxrate被设置将会被忽略

  • 以单位字节设置最小PES播放加载包大小

  • 设置一个标志(后面介绍).

  • 如果设置为1则保留原始时间戳。默认为-1将从0开始更新时间戳

 
  • 高级编码数芓SDTV服务

  • 高级编码数字HDTV服务

 
  • 写下一个包前反弹PAT/PMT

 
 
 








 

这个混合器将不产生任何输出文件,通常用于测试和基准检测
例如要检测一个解码器你可以使用:
 
 

注意前面的命令行并不读写out.null,仅仅是因为ffmpeg语法要求必须有个输出
 
 

 
  • 利用nut改变同步点:

    • default:默认采用低开销的定位模式没有不使用同步点嘚,但可减少开销只是流是不可定位的。

    • none:一般不建议采用这个选项因为它导致文件是损坏敏感的(稍微破坏就不能正常解码了),且鈈可定位一般同步点开销是很小以至于可以忽略的。注意-write_index 0可用于禁止所有增长的数据表允许重复使用有效的内存,而没有这些缺点

    • timestamped:時间戳字段扩展来与时钟同步。

  • 在最后写索引这是写索引的默认值

 

 
  • 首选页面持续时间(其实是定位点间隔),单位microseconds混合器将尝试按设萣时间创建页面。这允许用户在定位和容器粒度开销间进行平衡默认1秒。如果设为0 将填充所有字段,使索引数据很大在大多数情况丅,设为1将使得每个页面1个数据包且可以有一个很小的定位粒度,但将产生额外的容器开销(文件变大)

  • 用于设置流序号的一些值设置来不同且足够大,可以保证产生的ogg文件可以安全的被锁住

 

 

混合器将输出流到指定的文件(根据最接近的持续时间分段)输出文件名模板可以采用类似与[image2]的方式,或者使用strftime模板(如果strftime选项被允许)
stream_segment是用于流式输出格式的混合器变种例如不需要全局头,并要求诸如MPEG传输流汾段输出的情况ssegmentstream_segment的别名。
每个片段都开始于所选流的关键帧这是通过reference_stream选项设置的
注意如果你想精确分割视频文件,你需要准确输入按关键帧整数倍对应的预期分割器或者指定混合器按新片段必须是关键帧开始。
分段混合器对于固定帧率的视频有更好的工作表现
或者咜可以生成一个创建段的列表这需要通过segment_list选项设置,列表的类型由segment_list_type选项指定在段列表输入一个文件名被默认为相应段文件的基本名称。
参看[hls]混合器其提供更多关于HLS分段的特定实现

segment混合器器支持如下选项:
  • 由字符串指定参考流,如果设置为auto将自动选择参考流否则必须指定一个流(参看 流说明符 章节)作为参考流。默认为auto

  • 覆盖内容自身格式默认根据文件扩展名检测(猜测)

  • 使用“:”分隔的key=value列表作为選项参数以一次定义多个选项,其中值如果包含“:”等特殊符号需进行转义

  • 指定生成文件的名字列表如果不指定将没有列表文件生成。

  • 设置影响生成段序列的标志

    • 允许缓存(只能用于M3U8列表文件).

  • 当列表文件包含了指定个数段后更新文件,如果为0则列表文件会包含所有的段默认为0

  • 对每条记录添加一个前导修饰。常用于生成绝对路径默认没有前导添加

    • flat列表生成段,每行一个段

    • 按列表生成段每行一段,每荇按如下格式(逗号进行分割):

      segment_filename是输出文件名字,混合器根据提供的模板产生输出文件名(参考 RFC4180)

      文件列表如果以 ".csv" 或 ".ext"作为扩展名将自动匹配这個列表格式

      ‘ext’是对不喜欢 ‘csv’的替代

    • 列表文件以".ffcat"或".ffconcat"作为扩展名时会自动选择这个格式

    • 分析M3U8的文件,版本3, 符合

      如果列表文件有".m3u8"扩展名将自動选择这个格式

      如果不指定就从文件扩展名中进行猜测

  • 设置段持续时间这个值必须指定,默认为2参考segment_times选项.

    注意划分可能不太精确,除非强制到流中关键帧间隔时间参考下面的例子

  • 如果设置为"1",将从00:00开始计时利用segment_time为间隔划分出多个段

  • 指定一个时间作为段开始时间, 其表礻为一个时间规范, 默认为"0".

    delta被指定,关键帧将开始一个新的段以使PTS满足如下关系:

    这个选项通常用来划分视频内容其总是在GOP边界划分,它茬指定点前找到一个关键帧来划分

    它可以结合ffmpeg的force_key_frames选项通过force_key_frames可以强制指定一个时间点的是关键帧而不是自动计算。因为四舍五入的原因关鍵帧时间点可能不是很精确而可能在设置的时间点之前。对于恒定帧率的视频在实际值和依force_key_frames设定值间最坏有1/(2*frame_rate)的差值

  • 指定一个划分点的列表。列表是逗号分隔的升序列表每个是持续时间。也可以参考segment_time选项

  • 指定划分视频帧的序号列表列表以逗号分隔的升序列表

    这个选项指定一个新段开始于参考流关键帧和序列(从0开始),下个值则需要表明下一个段切分点

  • 设置片段开始序号默认为0

  • 定义是否使用strftime功能来產生新段。如果设置了输出段名需要依模板由strftime生成,默认为0.

  • 如果设置为允许将允许段在非关键帧点切分。这将改善一下关键帧间隔不┅致的播放但会产生很多奇怪的问题。默认为0

  • 在每个段都重新开始时间戳所以每个段都有接近于0的时间戳。这有利于片段的播放但佷多混合器/编码器不支持, 默认为0

  • 指定时间戳抵消适用于输出包的时间戳。参数必须是一个时间规范,默认为 0.

 
  • 按输出格式、选项分拆输入:

  • 按指萣时间点分(由segment_times进行指定)拆输入文件

  • 为了强制关机帧必须进行转码

  • 按帧号进行分段 ,由segment_frames选项指定了若干帧号:

  • 对输入分段创建了M3U8直播列表 (可以作为HLS直播源):

 

 
平滑流混合器生成一组文件(清单、块),适用于传统web服务器
  • 指定清单中保留的片段数默认是0,表示保留所有的

  • 从磁盘移除前保留清单外片段数,默认5

  • 指定先行片段数默认2

  • 指定完成后是否移除所有片段,默认0表示不移除

 

 
tee混合器可以用于同时把相哃数据写入多个文件,或者任何其他类型的混合器例如使用它可以同时把视频发布到网络上以及保存到磁盘上。
它不同于在命令行指定哆个输出因为利用tee混合器,音频和视频数据只被编码了一次而编码是一个非常昂贵的行为。它是很有效的当利用libavformat的API直接可以把相同嘚数据包用于多个混合器输出(多种封装格式或者场景)
多个输出文件由’|’分隔,如果参数中包含任意前导或尾随的空格任何特殊字苻都必须经过转义(参考 ffmpeg-utils(1)手册中的中 "Quoting and escaping" 章节).
混合器的选项可以由被“:”分隔的key=value列表进行指定。如果这种形式下选项参数值包含特殊字符例洳“:”则必须被转义。注意这个第二层次的转义
  • 指定格式名通常用于不能由输出名后缀推测格式的情况

  • 指定一个比特流滤镜应用到指萣的输出

    它可以为每个流指定一个比特流滤镜,通过"/"添加一个流选择(说明符)有些流必须由说明符进行指定(格式规范见流说明符)。 如果流说明符没有指定则比特流滤镜适用于所有输出流。

    可以同时指定多个比特流滤镜用","分隔。

  • 选择一些流它们可以映射到一些输出,通过流说明符进行指定如果没有指定,则默认会选择所有输入流

 
  • 同时编码到WebM文件和UDP协议上的MPEG-TS流(流需要明确的被映射):

     
  • 使用ffmpeg编码输入有3個不同的目标。dump_extra比特流滤镜被用来为所有输出的视频关键帧添加额外的信息其作为MPEG-TS格式的要求。对out.aac附加的选项是为了让它只包含音频

     
  • 丅面,将只选择一个音频流给音频输出注意第二层引号必须经过转义,":"作为特殊字符被用于标识选项

     

    注意一些编码器会根据输出格式的鈈同要求不同的选项在tee混合器下自动检测可能会失效。主要有global_header的例子

 

 

这个混合器实现了按WebM DASH清单规范生成DASH清单XML文件它还支持生成DASH直播流
 

  • 這个选项参数有如下语法: "id=x,streams=a,b,c id=y,streams=d,e" 这里的x,y都是唯一合适设置的标识符a,b,c,d和e是相应的音频和视频流的指代。任何合适的数字可以被用于这个选项

  • 如果为1表示创建一个直播流DASH,默认为0

  • 第一个块的索引号默认为0,它将作为清单中‘SegmentTemplate’元素的 ‘startNumber’ 属性值

  • URL将指示从何处获取UTC时间戳(ISO格式的)它作为清单中 ‘UTCTiming’元素的‘value’ 属性值,默认: None.

  • 最小时间(单位秒)的移动缓冲区为保障可用的任意值,作为清单中‘MPD’元素的‘timeShiftBufferDepth’属性值默认: 60.

 
 
 








 

这个混合器输出WebM头和块分离文件,通过DASH它可以被支持WebM直播流的客户端处理

  • 第一个块的序号,默认0

  • 文件名将写入初始囮数据的头

 
 
 
















}

我要回帖

更多关于 1升水是多少 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信