解決FFmpeg丟失視頻流及幀率過高的問題


轉換參數

-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 streamsMPEG-4microsoft),

3KbpsMPEG-4 VisualMicrosoft

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)。

解釋:可能視頻的總比特率為變量,所以原視頻的信息(比例幀率)未能寫入到輸出視頻中去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM