共计 2059 个字符,预计需要花费 6 分钟才能阅读完成。
首先当然是需要安装 ffmpeg 软件包,可以直接从源中进行安装!但我安装后并不能成功执行后面所需要执行的转换命令,所以我只能重新从源码编译安装 ffmpeg:
(1)下载 ffmpeg 源码包,注意版本不能太高,应该与直接从源中安装的版本大抵相当最好;我刚开始下的版本比较高,编译时提示说有一个编译选项找不
到,我到网上也没搜出什么结果,所以只能又降低了版本,最后使用的是 ffmpeg-0.4.9-p20050906.tbz!
(2)参考文档 https://wiki.ubuntu.com/ffmpeg
进行编译安装,在编译的时候可能还会有很多错误提示,但多半是由于某些头文件找不到所致,所以直接从源中安装提供这些头文件的包即可(技巧提示,可以在源中直接搜索头文件 *.h 去掉后缀.h 的名称 * 即可,一般需要安装其对应的 *-dev 包)!
安装完毕之后就可以进行转码操作了:
(1) 对于普通的 avi 视频文件,可以直接使用命令:
ffmpeg -y -i "tt.avi" -vcodec xvid -s 400x240 -r 29.97 -b 1500 -acodec aac -ac 2 -ar 48000 -ab 128 -vol 200 -f mp4 "tt.mp4"
参数解释如下:
-y 覆盖输出文件,即如果 tt.mp4 文件已经存在的话,不经提示就覆盖掉了
-i "tt.avi" 输入文件名,可以自己修改路径和名字
-vcodec xvid 使用 XVID 编码压缩视频,不能改的
-s 400x240 输出的分辨率,注意片源一定要是 16:9 的不然会变形
-r 29.97 帧数 (一般用 25 就可以了)
-b 1500 视频数据流量,用 -b xxx 表示使用固定码率,数字可更改;还可以用动态码率如:-qscale 4 和 -qscale 6,4 的质量比 6 高(一般用 800 就可以了,否则文件会很大)
-acodec aac 音频编码用 AAC
-ac 2 声道数 1 或 2
-ar 48000 声音的采样频率
-ab 128 音频数据流量,一般选择 32、64、96、128
-vol 200 200% 的音量,可更改(如果源文件声音很小,可以提升 10 到 20 倍(1000%~2000%),我试过,效果还行!但不能太大,200000% 我也试验过,但嘈杂声太大了)
-f mp4 输出 mp4 格式
"tt.mp4" 输出文件名,也可以修改路径和名称
至于这些参数的值是如何得到的,那就得看你的播放设备 (mp4,psp,手机等等) 了!刚买播放设备的时候,里面肯定会预置有一些视频文件,通过查看这些
预置文件即可得到你的播放设备所支持视频的各项参数!最简单的方法,可以到 windows 下用暴风影音或 KMP 播放器打开一个预置视频文件(KMP 列出的
比暴风影音还要详细),然后通过查看属性就能得到所有你需要的参数了!
(2) 对于 wmv9,rm,rmvb 等视频格式,ffmpeg 还无法解析,但可以通过两次转换达到目的:
先用 mencoder 将其转换成 avi 格式:
mencoder tt.rmvb -ovc lavc -oac mp3lame -o tt.avi
然后再利用 (1) 中的命令对该 avi 文件进行转换即可!
参数说明:
tt.rmvb 输入文件(可自己修改路径及名称)
-ovc lavc 视频编码格式(mp4 视频)
-oac mp3lame 音频编码格式(mp3 音频)
-o tt.avi 输出文件(可自己修改路径及名称)
mencoder 是与 mplayer 一起安装的,安装了 mplayer,系统肯定就会有 mencoder!mencoder 与 ffmpeg 好像都有 windows 版的!
mencoder 的功能也很强大,至于为什么不用 mencoder 一次性转换到位?这个问题我也还在抽时间研究,因为它的参数使用更加复杂,我现在还没试验成功!
至于其它的视频文件格式,我用的不多,所以也没测试过,不过应该都能利用 (1) 中的命令进行搞定!
就这样,你喜欢的电影就能与你形影相随了!
补充一点:
我个人比较喜欢单个的视频文件,所以如果一个视频文件被分成了两个,也可以通过 mencoder 对其进行合并(好像仅支持 avi 视频格式的合并)!
假如有两个 rmvb 文件 cd1.rmvb 和 cd2.rmvb,反正也是分别需要转换成 avi 格式的,那么转换到 avi 之后,就可以通过命令:
mencoder t1.avi t2.avi -ovc copy -oac copy -o all.avi
对分割的文件进行合并,合并完之后,再将其转换成 mp4 即可!主要是看个人的爱好了!
参数说明:
t1.avi t2.avi 输入文件(可自己修改路径及名称,还可以更多,空格分开,注意顺序,还有这些输入文件的码流也需要一致)
-ovc copy 表示视频编码格式不变(因为是合并而不是转换,所以没必要变)
-oac copy 表示音频编码格式不变(同上)
-o tt.avi 输出文件(可自己修改路径及名称,按输入文件的顺序进行连接的)
将 rmvb 视频格式转换成 avi:
ffmpeg -i sample.rmvb -qscale 5 -vcodec msmpeg4 -acodec libmp3lame -f avi sample1.avi
