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.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
 
看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.3gp
ffmpeg -i samsung_mpeg4_aac_30.mp4 -vcodec h263p -r 30 -b 496k -s qvga -acodec copy samsung_h263p_aac_30.mov
ffmpeg -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.3gp
ffmpeg -i mada_h264_aac_24.mp4 -vcodec h263p -s 480x272 -b 952k -r 24 -acodec copy mada_h263p_aac_24.mov
ffmpeg -i mada_h264_aac_24.mp4 -vcodec mpeg4 -s 480x272 -r 24 -b 952k -acodec copy mada_mpeg4_aac_24.mp4
 
# ffmpeg -i mada_h264_aac_24.mp4 -vcodec mpeg2video -s 480x272 -b 952k -r 24 -acodec libmp3lame -ac 2 -ab 192k mada_mpeg2_mp3_24.mpg
 
还有两点注意:
1. 不同的codec支持的video size是不一样的。比如h263是不支持qvga(320x240)的。如果设置错了也没关系,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,其他的一概不能兼容。

使用ffmpeg来转换media Video的更多相关文章

  1. ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR

    ffmpeg -i 32_mkv_h264_718x480_ac3.mkv  -codec copy -bsf:v h264_mp4toannexb  -f mpegts xx.ts ./ffmpeg ...

  2. c# ffmpeg视频转换

    c#  ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...

  3. c# ffmpeg视频转换【转载】

    c#  ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...

  4. ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part

    To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...

  5. 使用python+ffmpeg批量转换格式

    需求:  给定一个文件夹路径,遍历该文件夹内的所有文件以及子文件夹内的文件,当所有后缀名为wav格式的文件转换为ogg格式的文件. import os # 获取目录下的所有文件列表 import fn ...

  6. ffmpeg常用转换命令,支持WAV转AMR

    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...

  7. ffmpeg 频中分离 video audio 截取片断

    1.获取视频的信息    ffmpeg -i video.avi 2,将图片序列分解合成视频    ffmpeg -i src.mpg image%d.jpg ffmpeg -f image2 -i ...

  8. ffmpeg常用转换命令

    音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...

  9. ffmpeg格式转换

    遇到有些wav文件在ubuntu下无法打开的情况,可以使用ffmpeg进行格式转换即可 ffmpeg -i 0.wav test.wav

随机推荐

  1. python 绘制对象检测框及中文信息标注

    # 坐标顺序: 上->左->下->右 def draw_bounding_box_on_image(image, ymin, xmin, ymax, xmax, color='red ...

  2. Docker 镜像 容器 仓库

    Docker 包括三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker 镜像 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资 ...

  3. Spring学习之设计模式,动态代理和gclib动态代理

    传统的代理模式是静态代理,也就是在方法区域中写入方法. 而动态代理的作用是,不修改实现类的代码,能够在代码的前后或者抛出异常的前后执行某个方法. 动态代理类的实现 //Interface public ...

  4. CreateRemoteThread

    CreateRemoteThread是一个Windows API函数,它能够创建一个在其它进程地址空间中运行的线程(也称:创建远程线程)..

  5. React-Redux 总结

    一.定义与功能 React-Redux 将所有组件分成两大类:UI 组件(presentational component)和容器组件(container component) 1.UI 组件特征: ...

  6. HDU-3415-Max Sum of Max-K-sub-sequence(单调队列,带限制的最大子段和)

    链接: https://vjudge.net/problem/HDU-3415 题意: Given a circle sequence A[1],A[2],A[3]......A[n]. Circle ...

  7. JS收缩展开效果

    // 收缩展开效果 $(document).ready(function () { $(".box h2").toggle(function () { $(this).next(& ...

  8. strcat()与strcpy()用法

    1.strcpy (1)原型 extern char *strcpy(char *dest,char *src); (2)用法 #include <cstring> (3)功能 把src所 ...

  9. Tire树简介

    又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 典型应用:用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计. 它的优点是:利用字符串的公共 ...

  10. jQuery字体图标的三种方法

    BootStrap框架原生图标 在导入BootStrap包的同时,导入bootstrap-3.3.7-dist/css/bootstrap.css层叠样式; <button type=" ...