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,其他的一概不能兼容。
- 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 ...
- c# ffmpeg视频转换
c# ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...
- c# ffmpeg视频转换【转载】
c# ffmpeg视频转换 什么是ffmpeg,它有什么作用呢,怎么可以使用它呢,带着问题去找答案吧!先参考百度百科把,我觉得它很强大无奇不有,为了方便大家我就把链接提供了! http://baik ...
- 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 ...
- 使用python+ffmpeg批量转换格式
需求: 给定一个文件夹路径,遍历该文件夹内的所有文件以及子文件夹内的文件,当所有后缀名为wav格式的文件转换为ogg格式的文件. import os # 获取目录下的所有文件列表 import fn ...
- ffmpeg常用转换命令,支持WAV转AMR
音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...
- ffmpeg 频中分离 video audio 截取片断
1.获取视频的信息 ffmpeg -i video.avi 2,将图片序列分解合成视频 ffmpeg -i src.mpg image%d.jpg ffmpeg -f image2 -i ...
- ffmpeg常用转换命令
音频转换: 1.转换amr到mp3: ffmpeg -i shenhuxi.amr amr2mp3.mp3 2.转换amr到wav: ffmpeg -acodec libamr_nb -i shenh ...
- ffmpeg格式转换
遇到有些wav文件在ubuntu下无法打开的情况,可以使用ffmpeg进行格式转换即可 ffmpeg -i 0.wav test.wav
随机推荐
- springboot项目抓数据后优化配置及四个补充
昨天搞了一个抓取某某平台信息的抓取功能,其中有一个地址url,昨天是写死的,之前也进行配置过,印象有些模糊,今天想配置一下,在properties文件中,由此引发了下面的一系列总结操作: 1.原始模式 ...
- flex布局总结回顾
1.背景 传统css盒式模型,依赖 display属性 + position属性 + float属性实现页面的布局,而随着互联网的迅猛发展,带动了无数的互联网创业者和互联网产品,因而样式布局的美化成为 ...
- 字典树——动态&&静态
静态---时间快 /************************************************************************* > File Name: ...
- 关于FTP和SFTP的操作总结
SFTP使用的三方类库是Renci.SshNet.DLL SFTP连接大部分网上使用IP地址形式的路径,而我本次使用的是网站形式的.类似sftp.XXX.com SFTP的操作也类似File文件的操作 ...
- win10激活方法 windows 10 最简单的激活方法
1.首先,要用管理员权限打开cmd命令行窗口,可以搜索框中输入“cmd”,在出现的“命令行提示符”,图标上右击“以管理员身份运行”. 2.为了让其它激活工具的密钥清除,先卸载密钥,在命令行输入 ...
- 【leetcode】1209. Remove All Adjacent Duplicates in String II
题目如下: Given a string s, a k duplicate removal consists of choosing k adjacent and equal letters from ...
- css-div中文字过多(内容超出div宽度)后自动换行
故事是这样的: 买家秀:(refuse) ...
- node.js入门学习(二)MIME模块,request和response对象,demo之不同url请求不同html页面,页面包含图片、样式css等静态资源
一.构建http服务程序-根据不同请求做出不同响应 // 加载http模块 var http = require("http"); // 创建一个http服务对象 http.cre ...
- linux 系统时间 硬件时间
Linux时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,简称RTC).系统时钟是指当前Linux Kernel中的时钟:而硬件时钟则是主板上由电池供电的时钟, ...
- Django之nginx+wsgi后台部署(最新版)
0-部署准备 1.要使用安全组打开腾讯云的80端口 腾讯云的80端口不能访问www.jianshu.com 以实际项目部署为例 项目名称api_learn: Python版本:python 3.6. ...