如何用ffmpeg 2d转3d命令命令分离3D格式的视频

1. 视频转换
比如一个avi文件,想转为mp4,或者一个mp4想转为ts。
ffmpeg -i input.avi output.mp4
ffmpeg -i input.mp4 output.ts
2. 提取音频
ffmpeg -i test.mp4 -acodec copy -vn output.aac
上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。
ffmpeg -i test.mp4 -acodec aac -vn output.aac
3. 提取视频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
4. 视频剪切
下面的命令,可以从时间为00:00:15开始,截取5秒钟的视频。
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
-ss表示开始切割的时间,-t表示要切多少。上面就是从15秒开始,切5秒钟出来。
5. 码率控制
码率控制对于在线视频比较重要。因为在线视频需要考虑其能提供的带宽。
那么,什么是码率?很简单:
bitrate = file size / duration
比如一个文件20.8M,时长1分钟,那么,码率就是:
biterate = 20.8M bit/60s = 20.8* bit/60s= 2831Kbps
一般音频的码率只有固定几种,比如是128Kbps,
那么,video的就是
video biterate = 2831Kbps -128Kbps = 2703Kbps。
那么ffmpeg如何控制码率。
ffmpg控制码率有3种选择,-minrate -b:v -maxrate
-b:v主要是控制平均码率。
比如一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率。
ffmpeg -i input.mp4 -b:v 2000k output.mp4
上面把码率从原码率转成2Mbps码率,这样其实也间接让文件变小了。目测接近一半。
不过,ffmpeg官方wiki比较建议,设置b:v时,同时加上 -bufsize
-bufsize 用于设置码率控制缓冲器的大小,设置的好处是,让整体的码率更趋近于希望的值,减少波动。(简单来说,比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 当然是第二种比较好)
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate -maxrate就简单了,在线视频有时候,希望码率波动,不要超过一个阈值,可以设置maxrate。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
6. 视频编码格式转换
比如一个视频的编码是MPEG4,想用H264编码,咋办?
ffmpeg -i input.mp4 -vcodec h264 output.mp4
相反也一样
ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4
当然了,如果ffmpeg当时编译时,添加了外部的x265或者X264,那也可以用外部的编码器来编码。(不知道什么是X265,可以
Google一下,简单的说,就是她不包含在ffmpeg的源码里,是独立的一个开源代码,用于编码HEVC,ffmpeg编码时可以调用它。当然
了,ffmpeg自己也有编码器)
ffmpeg -i input.mp4 -c:v libx265 output.mp4
ffmpeg -i input.mp4 -c:v libx264 output.mp4
7. 只提取视频ES数据
ffmpeg &i input.mp4 &vcodec copy &an &f m4v output.h264
8. 过滤器的使用
8.1 将输入的缩小到960x540输出:
ffmpeg -i input.mp4 -vf scale=960:540 output.mp4
//ps: 如果540不写,写成-1,即scale=960:-1, 那也是可以的,ffmpeg会通知缩放滤镜在输出时保持原始的宽高比。
8.2 为视频添加logo
比如,我有这么一个图片
想要贴到一个视频上,那可以用如下命令:
./ffmpeg -i input.mp4 -i iQIYI_logo.png -filter_complex overlay output.mp4
结果如下所示:
要贴到其他地方?看下面:
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4
8.3 去掉视频的logo
语法:-vf delogo=x:y:w:h[:t[:show]]
x:y 离左上角的坐标
w:h logo的宽和高
t: 矩形边缘的厚度默认值4
show:若设置为1有一个绿色的矩形,默认值0。
ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4
结果如下所示:
9. 截取视频图像
ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-r 表示每一秒几帧
-q:v表示存储jpeg的图像质量,一般2是高质量。
如此,ffmpeg会把input.mp4,每隔一秒,存一张图片下来。假设有60s,那会有60张。
可以设置开始的时间,和你想要截取的时间。
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-ss 表示开始时间
-t 表示共要多少时间。
如此,ffmpeg会从input.mp4的第20s时间开始,往下10s,即20~30s这10秒钟之间,每隔1s就抓一帧,总共会抓10帧。
10. 序列帧与视频的相互转换
把darkdoor.[001-100].jpg序列帧和001.mp3音频文件利用mpeg4编码方式合成视频文件darkdoor.avi:
$ ffmpeg -i 001.mp3 -i darkdoor.%3d.jpg -s
-author fy -vcodec mpeg4 darkdoor.avi
还可以把视频文件导出成jpg序列帧:
$ ffmpeg -i bc-cinematic-en.avi example.%d.jpg
1.输出YUV420原始数据
对于一下做底层编解码的人来说,有时候常要提取视频的YUV原始数据,如下:
ffmpeg -i input.mp4 output.yuv
那如果我只想要抽取某一帧YUV呢?
你先用上面的方法,先抽出jpeg图片,然后把jpeg转为YUV。
你先抽取10帧图片。
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
然后,你就随便挑一张,转为YUV:
ffmpeg -i pic-001.jpeg -s
-pix_fmt yuv420p xxx3.yuv
如果-s参数不写,则输出大小与输入一样。
当然了,YUV还有yuv422p啥的,你在-pix_fmt 换成yuv422p就行啦!
2. H264编码profile & level控制
先科普一下profile&level。(这里讨论最常用的H264)
H.264有四种画质级别,分别是baseline, extended, main, high:
  1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
  2、Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;(用的少)
  3、Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),
    也支持CAVLC 和CABAC 的支持;
  4、High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;
H.264 Baseline profile、Extended profile和Main
profile都是针对8位样本数据、4:2:0格式(YUV)的视频序列。在相同配置情况下,High profile(HP)可以比Main
profile(MP)降低10%的码率。
根据应用领域的不同,Baseline profile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。
下图清楚的给出不同的profile&level的性能区别。
2.1 ffmpeg如何控制profile&level
举3个例子吧
ffmpeg -i input.mp4 -profile:v baseline -level 3.0 output.mp4
ffmpeg -i input.mp4 -profile:v main -level 4.2 output.mp4
ffmpeg -i input.mp4 -profile:v high -level 5.1 output.mp4
如果ffmpeg编译时加了external的libx264,那就这么写:
ffmpeg -i input.mp4
-c:v libx264 -x264-params "profile=high:level=3.0" output.mp4
从压缩比例来说,baseline& main &
high,对于带宽比较局限的在线视频,可能会选择high,但有些时候,做个小视频,希望所有的设备基本都能解码(有些低端设备或早期的设备只能解码
baseline),那就牺牲文件大小吧,用baseline。自己取舍吧!
苹果的设备对不同profile的支持。
2.2. 编码效率和视频质量的取舍(preset, crf)
除了上面提到的,强行配置biterate,或者强行配置profile/level,还有2个参数可以控制编码效率。
一个是preset,一个是crf。
preset也挺粗暴,基本原则就是,如果你觉得编码太快或太慢了,想改改,可以用profile。
preset有如下参数可用:
ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow and placebo.
编码加快,意味着信息丢失越严重,输出图像质量越差。
CRF(Constant Rate Factor): 范围 0-51: 0是编码毫无丢失信息, 23 is 默认, 51 是最差的情况。相对合理的区间是18-28.
值越大,压缩效率越高,但也意味着信息丢失越严重,输出图像质量越差。
举个例子吧。
ffmpeg -i input -c:v libx264 -profile:v main -preset:v fast -level 3.1 -x264opts crf=18
(参考自:)
2.3. H265 (HEVC)编码tile&level控制
和H264的profile&level一样,为了应对不同应用的需求,HEVC制定了&层级&(tier) 和&等级&(level)。
tier只有main和high。
level有13级,如下所示:
不多说,直接给出怎么用。(supposed你用libx265编码)
ffmpeg -i input.mp4 -c:v libx265 -x265-params "profile=high:level=3.0" output.mp4
阅读(...) 评论()FFMPEG(14)
emerge& ffmpeg
&格式转换 (将file.avi 转换成output.flv)
&&&&&ffmpeg -i& file.avi&&&output.flv
&&&&&& -i 表示输入文件&
&:现在有个视频video.avi,有个音频 audio.mp3,将其合并成output.avi
两个命令 & & & & & & & & & & ( video2.avi 是中间文件 ,用完可删)
ffmpeg -i video.avi -vcodec copy -an video2.avi&&&
ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi
&-i 表示输入文件
& -vcodec copy 表示 force video codec ('copy' to copy stream) 这个不知怎么译 ,估计是直接copy&
& -acodec copy & 这个说的应该是音频了&& 跟上面一样
-an : 表示& disable audio& 估计是audio no 之类的缩写&& 表示去掉video.avi 原有的音频
方法2 好像可以直接指定两个输入文件 ,
ffmpeg -i /tmp/a.wav -i /tmp/a.avi /tmp/a.avi 两个文件 的顺序很重
从视频里提取声音(声音与视频的分离)
&ffmpeg& -i 人生若只如初见.flv& -vn r.mp3&&从flv 文件 中提取声音并保存为mp3 格式&&
&&&&&& -vn : 表示忽略视频 估计是video no 之类的缩写
&ffmpeg& -i 人生若只如初见.flv& -an& r.flv&&&只留视频不留声音&
-an : 表示&忽略&声音
估计是audio no 之类的缩写
从视频里提取图片( )
ffmpeg -i test.avi -y -f image2 -ss 8 -t 0.001 -s 350x240 test.jpg&
-ss 第8秒处 截一图
压缩mp3 文件
如果你觉得mp3 文件 有点大,想变小一点那么可以通过-ab 选项改变音频的比特率(bitrate)
ffmpeg -i input.mp3 -ab 128 output.mp3&&& //这里将比特率设为128
你可以用file 命令查看一下源文件 的信息
z.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1,&192 kbps,&44.1 kHz, Stereo
其中的192 kbps 就是这个东西
mp3中比特率的含义是:在压缩音频文件至mp3时,由压缩软件所确定数码文件在播放时每秒传 送给播放器大小,其单位是:千位/秒;英文的含义是:kbps - = kilobits per second。现在mp3文件的最高数位率是320 kbps。这样的文件体积很大,每分钟的音乐超过两兆字节。如果采用可变比特率(VBR)编码来生成mp3文件,获得与320 kbps相当音质,文件的体积会缩小25~50%。请注意:播放时间相同,而歌曲不同,所获的压缩mp3文件的一般不相同,这是因为VBR编码所生成的
mp3文件的大小不仅仅取决于播放时间的长度,还取决于源音频文件的其它因素。
录音(要有可用的麦克风,并且如果用alsa
的话,好像得安alsa-oss,重启)&
&ffmpeg& -f oss -i /dev/dsp&& out.avi& (should& hava oss or alsa-oss)
&ffmpeg&& -f& alsa -ac 2 -i hw:0,&0& out.avi&& (should )
&ffmpeg&&&-f alsa -ac 2 -i pulse& (should hava PulseAudio)
&& oss 是linux 下的声音相关的东西,与alsa 一样,不过oss 是商业的, 而/dev/dsp 是oss 用到的麦克的设备吧,可以这样理解
ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi&
ffmpeg -f x11grab&&-s 320x240&&-r 10 -i :0.0+100+200 wheer.avi
:0:0 表示屏幕(个人理解,因为系统变量$DISPLAY值就是:0.0)& 而100,表示距左端100象素,200表示距上端200
-s 设置窗口大小
&&-r 10 好像是设置频率,不懂
ffmpeg -f x11grab -s xga&&&&-qscale 5&&& -r 10 -i :0.0+0+0 wheer.avi&
-qscale 8 设定画面质量,值 越小越好
屏幕录像,同时录音
ffmpeg -f oss -i /dev/dsp & & && -f x11grab -r 30 -s
-i :0.0& output.mkv
ffmpeg&& -ac 2 -f oss& -i& /dev/dsp & -f x11grab -r 30 -s
-i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output.mkv
看到这,你会发现这个命令有多强大,
如果我屏幕上打开了一个窗口,我只想录这个窗口的内容,如何确定这个窗口的坐标位置呢
可以用另外一个命令
xwininfo&输入这个命令后,用鼠标点选目标窗口,
就会出现目标窗口的坐标,宽高等一系列信息
Absolute upper-left X:& 276
& Absolute upper-left Y:& 57
& Relative upper-left X:& 2
& Relative upper-left Y:& 23
& Width: 742
& Height: 499
& Depth: 24
& Visual: 0x21
& Visual Class: TrueColor
& Border width: 0
& Class: InputOutput
& Colormap: 0x20 (installed)
& Bit Gravity State: NorthWestGravity
& Window Gravity State: NorthWestGravity
& Backing Store State: NotUseful
& Save Under State: no
& Map State: IsViewable
& Override Redirect State: no
& Corners:& +276+57& -262+57& -262-244& +276-244
& -geometry 80x24+274+34&看到这一行了没 ()
比如根据上面的信息
ffmpeg -f oss& -i& /dev/dsp&&&&& -f& x11grab -r 30& -s
-i :0.0+0+23& output.avi&
Another thing you can change is the video frame rate (FPS). In the example above we used -r 30 which means capture at 30 FPS. You can change this value to whatever frame rate you want.
这个 -r 30 应该是每秒钟取样几次,估计是一秒截三十次屏,
&ffmpeg -ss 00:00:10 -t 00:01:22 -i 五月天-突然好想你.mp3& output.mp3&
只要 从第10秒开始截取,共截取1:22时长的内容
视频文件的连接,如两个flv 文件 连接成一
好像必须先将文件 转成mpg ,dv 等格式的文件后才能进行连接
连接复数的AVI影片档之范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PS, DV格式亦可连接))
ffmpeg -i input1.avi -sameq inputfile_01.mpg -r 20
ffmpeg -i input2.avi -sameq inputfile_02.mpg -r 20
cat inputfile_01.mpg inputfile_02.mpg & inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi&上面将 input1.avi input2.avi 合并成outputfile.avi&-sameq 表示 相同的质量(可能指的是画面,不太清楚)
-r 指频率&
=====================================================================下面是wiki 上给的几个例子
FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编解码器的叙述。此外,参数明细可用&ffmpeg -h&显示;编解码器名称等明细可用&ffmpeg -formats&显示。
下列为较常使用的参数。
-i 设定输入档名。-f 设定输出格式。-y 若输出档案已存在时则覆盖档案。-fs 超过指定的档案大小时则结束转换。-ss 从指定时间开始转换。-title 设定标题。-timestamp 设定时间戳。-vsync 增减Frame使影音同步。
-b 设定影像流量,默认为200Kbit/秒。(&单位请参照下方注意事项&)-r 设定FrameRate值,默认为25。-s 设定画面的宽与高。-aspect 设定画面的比例。-vn 不处理影像,于仅针对声音做处理时使用。-vcodec 设定影像影像编解码器,未设定时则使用与输入档案相同之编解码器。
-ab 设定每Channel&(最近的&版为所有Channel的总合)的流量。(&单位
请参照下方注意事项&)-ar 设定采样率。-ac 设定声音的Channel数。-acodec 设定声音编解码器,未设定时与影像相同,使用与输入档案相同之编解码器。-an 不处理声音,于仅针对影像做处理时使用。-vol 设定音量大小,256为标准音量。(要设定成两倍音量时则输入512,依此类推。)
以-b及ab参数设定流量时,根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同。(可用ffmpeg -h显示说明来确认单位。)
例如,单位为bits/sec的情况时,欲指定流量64kbps时需输入‘ -ab 64k ’;单位为kbits/sec的情况时则需输入‘ -ab 64 ’。
以-acodec及-vcodec所指定的编解码器名称,会根据使用的ffmpeg版本而有所不同。例如使用AAC编解码器时,会有输入aac与 libfaac的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats&确 认输入的编解码器是否能运作。
将MPEG-1影片转换成MPEG-4格式之范例
ffmpeg -i inputfile.mpg -f mp4 -acodec libfaac -vcodec mpeg4 -b 256k -ab 64k outputfile.mp4
将MP3声音转换成MPEG-4格式之范例
ffmpeg -i inputfile.mp3 -f mp4 -acodec libaac -vn -ab 64k outputfile.mp4
将DVD的VOB档转换成VideoCD格式的MPEG-1档之范例
ffmpeg -i inputfile.vob -f mpeg -acodec mp2 -vcodec mpeg1video -s 352x240 -b 1152k -ab 128k outputfile.mpg
将AVI影片转换成H.264格式的M4V档之范例ffmpeg -i inputfile.avi -f mp4 -acodec libfaac -vcodec libx264 -b 512k -ab 320k outputfile.m4v
将任何影片转换成东芝REGZA可辨识的MPEG2格式之范例ffmpeg -i inputfile -target ntsc-svcd -ab 128k -aspect 4:3 -s 720x480 outputfile.mpg
连接复数的AVI影片档之范例(在此范例中须一度暂时将AVI档转换成MPEG-1档(MPEG-1, MPEG-2 PS
DV格式亦可连接)、
ffmpeg -i input1.avi -sameq inputfile_01.mpg
ffmpeg -i input2.avi -sameq inputfile_02.mpg
cat inputfile_01.mpg inputfile_02.mpg & inputfile_all.mpg
ffmpeg -i inputfile_all.mpg -sameq outputfile.avi
=============================================================================
同时搞明白的一些问题
在alsa 体系中声卡(也可能是麦克风,)叫hw:0,0 而在oss 体系中叫/dev/dsp (用词可能不太专业)& Linux在安装了声卡后,会有一些设备文件生
&&采集数字样本的&
/dev/dsp文件,针对混音器的&
/dev/mixer文件,用于音序器的&
/dev/sequencer,&
/dev/audio文件一个&
基于兼容性考虑的声音设备文件。只要向&
/dev/audio中输入&
wav文件就能发出声音。而对&
/dev/dsp文件读取就能得到&
WAV文件格式的声音文&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:596910次
积分:9895
积分:9895
排名:第1335名
原创:156篇
转载:1070篇
评论:135条
微信扫描关注我!
阅读:3744
阅读:3356
文章:21篇
阅读:10830
(5)(8)(2)(22)(16)(17)(14)(9)(42)(29)(46)(86)(54)(71)(3)(20)(53)(17)(33)(32)(38)(86)(104)(59)(82)(138)(82)(7)(32)(35)FFmpeg(31)
FFmpeg都是命令行的,用起来肯定不方便。但是,这对技术宅应该不成问题。下面,我就罗列一些比较实用的使用方法吧。
FFmpeg的下载与安装
FFmpeg是开源的。但我们不必去下载它的源代码。下载已经编译好的exe/dll即可。可以到,然后点击“Windows Builds”,再根据你当前的机器是32位还是64位来决定下载哪个包。我的机器跑的是Win
7,所以我选择了“Download FFmpeg git-7c210c4 64-bit Shared”。如果你英文不好,也可以直接去我的网盘下载:。
下载完成之后,解压到硬盘上,假设路径为E:\OpenSrc。启动一个控制台程序,然后执行DOS命令进入FFmpeg工具的bin目录,如下:
应用场景1:格式转换
我想把用iPhone拍的.MOV文件转成.avi文件。最简单了,可以执行下面的命令:
ffmpeg -i D:\Media\IMG_0873.MOV D:\Media\output.avi
意思是,把D:\Media目录下的源文件IMG_0873.MOV(视频:h.264,音频:aac)转换成output.avi(编码格式自动选择为:视频mpeg4,音频mp3),目标文件仍然保存到D:\Media目录下。问题来了:我想自己指定编码格式,怎么办呢?一种方法是,通过目标文件的扩展名(.flv、.mpg、.mp4、.wmv等)来控制,比如:
ffmpeg -i D:\Media\IMG_0873.MOV D:\Media\output2.flv
另一种方法是通过-c:v参数来控制,比如我想输出的视频格式是H.265(警告:编码时间会比较长哦)。命令行如下:
ffmpeg -i D:\Media\IMG_0873.MOV&-c:v libx265&D:\Media\output265.avi
注:可以先用ffmpeg -encoders命令查看一下所有可选的编码格式。
不再深究了,我们继续。我发现源文件的图像帧尺寸是,我不需要这么大——能有720 x 480就够了。于是,就要用上-s参数了。为了保证图像缩放后的质量,最好加上码流参数-b:v。如下:
ffmpeg -i D:\Media\IMG_0873.MOV&-s 720x480 -b:v 1500k&D:\Media\output2.avi
还可以更简单一点,使用-target参数匹配行业标准,参数值可以是vcd、svcd、dvd、dv、dv50等,可能还需要加上电视制式作为前缀(pal-、ntsc-或film-)。如下:
ffmpeg -i D:\Media\IMG_0873.MOV&-target pal-dvd&D:\Media\output2dvd.avi
又来一个问题:我发现用手机拍的视频中,有些是颠倒的,我想让它顺时针旋转90度。这时候,可以使用-vf参数加入一个过滤器,如下:
ffmpeg -i D:\Media\IMG_0873.MOV&-vf &rotate=90*PI/180&&D:\Media\output3.avi
注:如果想逆时针旋转90度,90前面加个负号就可以了。
如果我只需要从源视频里截取一小段,怎么办呢?比如从第2秒的地方开始,往后截取10秒钟。命令行可以这样:
ffmpeg&-ss 2 -t 10&-i D:\Media\IMG_0873.MOV D:\Media\output4.avi
注:这种情况下,-ss和-t参数必须放在-i前面,表示是限定后面跟着的输入文件的。
应用场景2:视频合成
我发现,用手机拍的视频有时候背景噪音比较大。怎么把噪音去掉,换成一段美妙的音乐呢?使用FFmpeg也能轻易做到。
第一步:把源文件里的音频去掉,生成一个临时文件tmp.mov
ffmpeg -i D:\Media\IMG_0873.MOV&-vcodec copy -an&D:\Media\tmp.mov
注:-vcodeccopy的意思是对源视频不解码,直接拷贝到目标文件;-an的意思是将源文件里的音频丢弃。
第二步:把这个无声的视频文件(tmp.mov)与一个音乐文件(music.mp3)合成,最终生成output.mov
ffmpeg -i D:\Media\tmp.mov&-ss 30 -t 52&-i D:\Media\music.mp3&-vcodec copy&D:\Media\output5.avi
为了保证良好的合成效果,音乐时长必须匹配视频时长。这里我们事先知道视频时长为52秒,于是截取music.mp3文件的第30秒往后的52秒与视频合成。另外,为了保证音频时长截取的准确性,我们这里没有使用-acodec copy,而是让音频重新转码。
还有一种情况:我们希望在一段视频上叠加一张图片。可以简单实现如下:
ffmpeg -i D:\Media\IMG_0873.MOV -i D:\Media\logo.png&-filter_complex 'overlay'&D:\Media\output6.avi
应用场景3:视频播放
格式转换或合成之后,我们需要试着播放一下。播放器的选择很多。这里顺手用ffplay工具也行:
ffplay -i D:\Media\output6.avi
应用场景4:获取视频信息
有时候,我只是想看看这个视频文件的格式信息。可以用ffprobe工具:
ffprobe -i D:\Media\IMG_0873.MOV
FFmpeg的功能非常强大。关键是要理解各种参数的意义,并且巧妙搭配。必要的话,就把在线文档完整读一遍吧:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:161346次
积分:3009
积分:3009
排名:第9035名
原创:82篇
转载:349篇
评论:18条
(3)(2)(10)(15)(5)(20)(7)(12)(1)(2)(5)(16)(3)(20)(32)(138)(74)(20)(5)(5)(1)(4)(1)(1)(1)(1)(18)(6)(4)(3)(1)(5)(1)

我要回帖

更多关于 ffmpeg压缩视频命令 的文章

 

随机推荐