轉換參數
-i sourceVideo.wmv -vcodec libx264 -preset ultrafast -profile:v baseline -acodec aac -strict experimental -s 640*480 -b 568k -ab 128k destinationVideo.mp4
-vcodec libx264 采用H.264的編碼方式
-preset ultrafast 快速的編碼方式
-profile:v baseline 讓視頻提供最好的兼容方式,但會關閉很多高級特性
-acodec aac 采用AAC音頻編碼
-strict experimental
-s 640*480 圖片的大小
-b 568k 視頻碼率
-ab 128k 音頻碼率
問題描述
1、轉換多視頻流視頻,其視頻流信息丟失,輸出視頻只有音頻信息。
出錯視頻異常參數 |
正常視頻的正常參數 |
出錯視頻描述 |
導致的結果 |
3 video streams:MPEG-4(microsoft), 3Kbps,MPEG-4 Visual(Microsoft) |
1 audio stream:WMA 568Kbps,WMV1;
|
只有音頻 |
視頻信息丟失,不能播放視頻 |
2、總比特率模式為變量的視頻,轉換時間長,輸出視頻大,頻率高(有時會導致轉換程序中斷,視頻無法繼續轉換)。
出錯視頻異常參數 |
正常視頻的正常參數 |
出錯視頻描述 |
導致的結果 |
Overrall bit rate mode:Variable
|
Overrall bit rate mode:Constant |
頻率高,文件大(是原來的2-3倍) |
轉換時間長,有的甚至出現“無法轉換”。 |
問題對策
1、使用參數“ -map 0 ”,使得所有的流都參與到轉換中去。
解釋:視頻中一般包含視頻流和音頻流,並且可以有多個視頻流,多個音頻流。FFmpeg轉換視頻,默認情況下,其第一個視頻流、第一個音頻率參與轉換,其他的忽略。上述的出錯視頻其第一個視頻流的視頻比特率只有3kb,其太小,轉換時將其忽略。(個人解釋,不具有權威性)
2、使用參數“-r 25”,強制寫入幀率,使得輸出視頻的幀率不過高(蹦到1000)。
解釋:可能視頻的總比特率為變量,所以原視頻的信息(比例幀率)未能寫入到輸出視頻中去。