首页 技术 正文
技术 2022年11月9日
0 收藏 992 点赞 2,368 浏览 3807 个字

FFMPEG -i 1.wmv -c:v libx264 -strict -2 1_wmv.mp4

ffmpeg -i b.mp4 -codec copy -bsf h264_mp4toannexb a.ts

ffmpeg -i 1.mp4 -c:v libx264 -crf 24 destination.flv

ffmpeg -i HYB-wish.wav -acodec libmp3lame -ab 192k -ac 2 HYB-wish.mp3
ffmpeg -i HYB-wish.wav -acodec libfaac -ab 192k -ac 2 HYB-wish.aac
ffmpeg -i HYB-wish.wav -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 HYB-wish-nb.amr
ffmpeg -i HYB-wish.wav -acodec libamr_wb -ab 23.85k -ar 16000 -ac 1 HYB-wish-wb.amr

转载自:http://www.cnblogs.com/super119/archive/2010/12/09/1901539.html

现在绝大部分的所谓转换软件都是基于ffmpeg的,mencoder也用的是ffmpeg。ffmpeg就是做mplayer的组织做的。所以,为什么很多软件转换不了某些文件和codec呢?就因为ffmpeg不支持。比如:wmvv3(wmv9) encoding,ffmpeg现在不支持,所以,基本上现在能看到的转换软件都不支持,只能支持wmvv1(wmv7), wmvv2(wmv8)的decode和encode。   以下是一些步骤和关键点:1. 自己编译ffmpeg。Ubuntu reposiroty中的ffmpeg功能不全(主要是看怎么编译的),比如由于没有将libmp3lame引入,所以,Ubuntu官方repository中的ffmpeg是无法encode mp3的(只能encode mp2 — mpeg 1 audio layer 2)。编译ffmpeg很简单,configure, make, sudo make install就OK了。主要是configure,看打开哪些支持,这次我做的是: ./configure –prefix=/usr –enable-gpl –enable-postproc –enable-nonfree –enable-pthreads –enable-x11grab –enable-libamr-nb –enable-libamr-wb –enable-libfaac –enable-libfaad –enable-libmp3lame –enable-libx264 –enable-libxvid –disable-armv5te –disable-armv6 –disable-armv6t2 –disable-armvfp 按照上面的命令行,要自己安装faac, faad, libmp3lame, amrnb, amrwb, x264…。特别是要记得安装这些包的dev版本,dev版本的包中才有头文件。这里也可以看出ffmpeg也不是每个decoder/encoder都是自己做的,也依赖很多其他的项目。比如x264,这是VLC player那个组织做的,用于H264的encoder/decoder。 2. 然后就是使用ffmpeg了。可以非常方便的转换媒体文件,比如: ffmpeg -i HYB-wish.wav -acodec libmp3lame -ab 192k -ac 2 HYB-wish.mp3ffmpeg -i HYB-wish.wav -acodec libfaac -ab 192k -ac 2 HYB-wish.aacffmpeg -i HYB-wish.wav -acodec libamr_nb -ab 12.2k -ar 8000 -ac 1 HYB-wish-nb.amrffmpeg -i HYB-wish.wav -acodec libamr_wb -ab 23.85k -ar 16000 -ac 1 HYB-wish-wb.amr 看ffmpeg的manual就可以知道这些参数的含义,非常简单:-i — input file; -acodec — 指定audio codec,用ffmpeg -formats命令可以看到当前编译的ffmpeg支持的所有file formats和codec;-ab — bitrate,主要数字后面要带一个k,否则无效;-ac 指定channel数;-ar 指定sample rate,注意amrnb是8000,amrwb是16000,普通的是44100/48000。最后一个参数就是输出文件的名字,ffmpeg会根据扩展名来检测我们要转换成什么file format,也可以用-f option来明确指定output file format。 3. 转换video: # 只转换14400帧 — 24fps,所以这是10分钟,也就是将input mp4的前十分钟导出ffmpeg -i mada2_h264_aac_24.mp4 -vcodec copy -vframes 14400 -acodec copy mada_h264_aac_24.mp4 # -s: size; -r fps; -b bitrate; “copy” means 不转换,纯拷贝ffmpeg -i samsung_mpeg4_aac_30.mp4 -vcodec h263 -s cif -r 30 -b 496k -acodec copy samsung_h263_aac_30.3gpffmpeg -i samsung_mpeg4_aac_30.mp4 -vcodec h263p -r 30 -b 496k -s qvga -acodec copy samsung_h263p_aac_30.movffmpeg -i samsung_mpeg4_aac_30.mp4 -vcodec libx264 -s qvga -r 30 -b 496k -acodec copy samsung_h264_aac_30.mp4 # ffmpeg -i samsung_mpeg4_aac_30.mp4 -vcodec mpeg2video -s qvga -r 30 -b 496k -acodec libmp3lame -ab 192k -ac 2 samsung_mpeg2_mp3_30.mpg ffmpeg -i mada_h264_aac_24.mp4 -vcodec h263 -s cif -r 24 -b 952k -acodec copy mada_h263_aac_24.3gpffmpeg -i mada_h264_aac_24.mp4 -vcodec h263p -s 480×272 -b 952k -r 24 -acodec copy mada_h263p_aac_24.movffmpeg -i mada_h264_aac_24.mp4 -vcodec mpeg4 -s 480×272 -r 24 -b 952k -acodec copy mada_mpeg4_aac_24.mp4 # ffmpeg -i mada_h264_aac_24.mp4 -vcodec mpeg2video -s 480×272 -b 952k -r 24 -acodec libmp3lame -ac 2 -ab 192k mada_mpeg2_mp3_24.mpg 还有两点注意:1. 不同的codec支持的video size是不一样的。比如h263是不支持qvga(320×240)的。如果设置错了也没关系,ffmpeg会提示,而且会打印出h263支持的所有video size大小。如果Audio转换的参数给错了,ffmpeg也会打印原因和提示信息,非常的不错。2. 不同的file format对能放入其中的codec也是有要求的。比如mp4就不能放入h263/mp3。所以上面转成h263的时候,输出文件都是3gp。如果file format给错了,ffmpeg的出错信息是:[ <file format> <function address>]: could not find tag…… 基本上就是这样了。ffmpeg还是非常好用的,特别是用来转换不同的media file和codec。参考ffmpeg的manual可以查阅每个参数的解释。不过ffmpeg现在也是有很多问题的:比如很多的codec现在还是不支持,像wmvv3(wmv9), wmav3(wma9)等。还有很多codec只提供了decoder,没有提供encoder。这对于转换来说也非常痛苦,对于播放倒是没什么。还有一些bug,比如上面命令行中,转换到h263p的时候,如果输出文件格式给定的是3gp,就会出错说could not find tag…,事实上,3gp中是可以放入h263p的,m.youtube.com上的3gp就是h263++/amr。所以,上面用mov来代替了。 BTW:如果要转换成wma/wmv的话,前面说了,如果是wmav1, wmav2, wmvv1, wmvv2(也就是wma7, wma8, wmv7, wmv8),使用ffmpeg就可以搞定。但是如果是wmav3, wmvv3(wma9, wmv9)的话,就只能用微软的windows media encoder了。windows media encoder要求输入文件是bmp, jpg, mp3, wav, mpg, avi, wmv, wma, asf,其他的一概不能兼容。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,291