歡迎您光臨本站 註冊首頁

在Ubuntu下批量轉換視頻為H.264編碼的mp4格式

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  原文地址:這裡

H.264(又名MPEG4 AVC)是目前比較流行的視頻編碼方式,比起MPEG2在畫質大致相同的情況下能再壓縮2~4倍,即如果一個DVD視頻大小是1GB,用H264編碼后能縮小到250MB左右,同時H264視頻還能用時髦的瀏覽器(比如Firefox,Chrome,ie9等)直接播放,如果你有一堆DVD或者Home Video(舊款的家用DV一般是MPEG2格式)想刻錄到光碟存檔,又或者有一大堆RMVB,AVI等想用iPod,iPad播放,那麼用H264編碼是一個不錯的選擇。

Ubuntu 10.10 的軟體中心裡有一個名為 Transmageddon 軟體,可以很方便地製作如 mp4,Ogg,QuickTime等格式。不過如果你有一大批視頻需要轉換,那麼使用 mencoder 程序會比較方便,mencoder幾乎支持所有的視頻格式,而且可調參數豐富、速度快。

首選你需要安裝 mencoder 程序:

$ sudo apt-get install mencoder

查看你系統支持哪些視頻和音頻編碼器:

$ mencoder -ovc help
$ mencoder -oac help

然後查看你系統支持哪些封裝格式:
mencoder -of help

如果有mp3lame音頻編碼器和x264視頻編碼器以及mp4格式封裝,那麼所有的條件就已經具備了,否則你可能需要安裝相應的音頻和視頻編碼器:

$ sudo apt-get install ffmpeg libavcodec-extra-52

首先試試壓縮一段MPEG2視頻

$ mencoder m001.mpg -o m001.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint

上面命令中的 m001.mpg 和 m001.mp4 分別是輸入和輸出文件名,-oac 用於指定音頻編碼器,-ovc 指定視頻編碼器, -of 指定輸出文件封裝方式,lavf表示輸出文件封裝方式由輸出文件名決定(即你用m001.mp4就用mp4封裝,用m001.avi的話就用avi封裝),最後 -vf lavcdeint 參數用於去除視頻中的拉絲條紋(鋸齒紋),如果沒有的話不要這個參數也可以。

h264的編碼過程比較耗時,在我的電腦(AMD四核2.8G)編碼速度大概是 30fps,基本上就是視頻播放有多長時間,編碼就需要多長時間。

如果沒有問題的話,下面我們就可以寫一段腳本用於批量轉換編碼

#!/bin/bash
find . -type f \( -name “*.mpg” -o -name “*.mpeg” \)|while read line;do
echo $line
mencoder $line -o ${line}.mp4 -oac mp3lame -ovc x264 -of lavf -vf lavcdeint

將上面的腳本保存在存放原始視頻的文件夾里,然後添加可執行屬性再運行,就可以把文件夾里所有後綴名為“mpg”的視頻編碼為H264+mp4封裝的格式了。

除了mencoder之外,還可以使用ffmpeg來編碼,詳細方法請參考這裡
如遇問題歡迎交流 @ivarptr (twitter)



[火星人 ] 在Ubuntu下批量轉換視頻為H.264編碼的mp4格式已經有998次圍觀

http://coctec.com/docs/linux/show-post-65696.html