清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
ffmpeg.exe -i IMG_1137.MOV -f mpegts -ar 48000 -ab 64k -s 1280x720 -vcodec libx264 -x264opts keyint=15:min-keyint=10 -r 25 demo1.mp4 在网上找了个视频,其中有部分内容是需要的,能不能从整个文件中抽取一部分呢?或抽取一部分内容的音频列?在查阅了资料后发现 FFmpeg 很容易实现这些功能。 ffmpeg -ss 00:46:28 -i "Morning_News.asf" -acodec copy -vcodec copy -t 00:03:25 output.asf 这行命令解释为:从文件 Morning_News.asf 第 46:28 分秒开始,截取 03: 25 的时间,其中视频和音频解码不变,输出文件名为 output.asf 。 那如果视频文件太大,该如何保存为的 mp3 文件呢? ffmpeg -ss 00:46:28 -i "Morning_News.asf" -t 00:03:25 output.mp3 这两条命令顺序一定要注意。不然运行会有问题。切记切记! 参考: 1、http://wuyuans.com/2012/04/ffmpeg-split/ 2、http://ffmpeg.org/ffmpeg.html 视频合并 1. 首先将各个视频全部转换为mpeg格式: ffmpeg -i INPUT -f mpeg OUTPUT 例如: ffmpeg -i 1.flv -f mpeg -r 29.97 result1.mpg ffmpeg -i 2.flv -f mpeg result2.mpg 2. 通过copy或者cat命令合并视频 copy -b INPUT+INPUT OUTPUT 例如: copy /b "result1.mpg"+"result2.mpg" "result.mpge" 3. 将合并的视频进行编码生成最终的结果视频 ffmpeg -i INPUT -f FORMAT OUTPUT 例如: ffmpeg -i "D:/result.mpge" -f mp4 "D:/result.mp4" ======================================================================== 录音在windows 下也是可以的, 不过选择音频设备的时候要输入全部设备名 DirectShow ffmpeg -list_devices true -f dshow -i dummy 可以查看设备,以便设置参数 如果从mic 里录音,大概命令是这样 ffmpeg -f dshow -i audio="linein (USB Audio Device)" out.mp3 audio="xxx" (xxx) 是自己的录音设备,全部设备名, 设备名可以从 list device 里看到 ======================================================================== sudo apt-get build-dep ffmpeg 到http://ffmpeg.mplayerhq.hu下载最新的ffmpeg源代码 解压,安装: [wheer]$ ./configure --prefix=/usr --enable-gpl --enable-shared --enable-libmp3lame --enable-libamr_nb --enable-libogg --enable-libvorbis --enable-libxvid --enable-liba52 --enable-liba52bin --enable-pp --enable-libfaad --enable-libfaadbin --enable-libfaac --enable-pthreads --disable-ffserver --enable-x11grab [wheer]$ make [wheer]$ sudo make instal ./configure的参数很多,可以用./configure --help来看,很多选项默认是不打开的,得加上,本来我还加上--enable-libx264的,但编译出错,去掉才好了-_- ok了,既然费劲装了这么个怪物,当然要好好利用了,ffmpeg最强大的自然是音、视频录制和转换了,它的格式支持也许比不上mencoder,但似乎更好理解点,举些例子吊吊胃口,更多变态功能自己摸索吧,反正本人连摄像头都没有,也没有那么多需求: 录音(mp3或amr): ffmpeg -f oss -i /dev/dsp wheer.mp3 ffmpeg -f oss -i /dev/dsp -ar 8000 -ab 10200 wheer.amr 当然你还可以设一堆参数,如调节音量-vol 1024(256是默认值), 设定采样率-ar 8000,设定比特率-ab 122000等等。。。至于你想在麦克和声卡之间切换当然就可以求助于aumix了 另外,我还在~/.bashrc中定义alias amrec='ffmpeg -f oss -vol 1024 -i /dev/dsp -ar 8000 -ab 10200',以后就用amrec file.amr录音了,压缩率极高,一小时音频才5M多:) 屏幕录像: ffmpeg -f x11grab -s xga -r 10 -i :0.0+0+0 wheer.avi 其中-f指定x11grab表示屏幕录像(*编译时必须加上--enable-x11grab选项*),-s设定尺寸,写成缩写或1024x768格式均可,-f设定fps,-i中的:0.0表示你的x11屏幕,+0,0表示偏移,如果你想录制某个小窗口,可以用xwininfo -frame来找到具体坐标。 另外还有一堆参数可设,如比特率-b 200000,-vcodec为视频编码,还可加上-f oss -i /dev/dsp同时录音,用aumix将录音源调成麦克风就可以配音了,声音太小了用-vol改~~ mp3->amr, amr->mp3 ffmpeg -i wheer.mp3 -ab 122000 wheer.amr ffmpeg -i wheer.amr wheer.mp3 从视频中抓取音频 ffmpeg -i movie.rmvb -ss 40 -vn wheer.mp3 ffmpeg -i movie.rmvb -ss 40 -vn -ab 12200 -ar 8000 -ac 1 wheer.amr 均表示从第40s开始抓取,-vn表示不要视频 截图或gif动画 ffmpeg -i wheer.avi -t 0.001 -f image2 cap.jpg ffmpeg -i wheer.avi -ss 10 -t 5 -pix_fmt rgb24 -loop_output 0 -f gif cap.gif 其中第二行表示从第10秒开始截5秒视频为gif动画,并将gif设为无限次重复播放 转换为3gp格式(手机上常用) ffmpeg -i wheer.avi -s 176x144 -b 20000 -acodec amr -ab 12200 out.3gp 另外,我发现新版的ffmpeg和老版的用法还不太一样,如新版就没有-vd(video device)选项,屏幕录制就只能用-f x11grab,另外比特率单位在新版是b/s,在老版是kb/s,等等。。。