2013-07-11 207 views
3

我正在使用FFmpeg在我的android應用程序中連接視頻。我按照一些步驟合併了不同格式的視頻。對於MP4視頻,我必須將所有輸入文件轉換爲MPEG-2 TS文件,然後合併所有.ts文件以獲得輸出mp4文件。使用FFmpeg的不同分辨率的Concat視頻文件

  • 我有一個問題,在融合的視頻,如果他們是不同的 決議(說一個是640 * 480,另一種是1280 * 720)。該輸出 視頻無法正常合併(有時它拋出Streams中的錯誤)。有什麼辦法可以解決這個問題,而不會丟失視頻質量 ?

  • 可以說我很合併兩個視頻之一的音頻和其他沒有 audio.When我嘗試合併這兩個我在音頻得到錯誤 Streams.Is有什麼辦法也處理這個(視頻應該是合併或不合並音頻)?

我在上面兩件事情上面臨問題,花了更多的時間沒有成功。 任何想法,不勝感激。

+0

您使用的是ffmpeg命令行工具還是API?你提到「錯誤」,但你沒有顯示它們。 – LordNeckbeard

+0

我正在使用ffmpeg API,並且參數從android傳遞。 – vijay

+0

https://superuser.com/a/1136854/101823 –

回答

0

對於合併視頻,您需要使用相同的分辨率,您應該縮放640x480視頻或壓縮1280x720,這取決於您。我會建議你壓縮更大的一個更快。

此外,爲了合併視頻,您需要帶有音頻和視頻部分的媒體文件。您可以創建具有相同視頻持續時間的靜音音頻,然後將其添加到視頻中。視頻應該與音頻合併。

ffmpeg -ar 48000 -t 60 -f s16le -acodec pcm_s16le -i /dev/zero -ab 128K -f mp2 -acodec mp2 -y silence.mp2 

ffmpeg -i video_without_audio.mpg -i silence.mp2 video_to_merge.mpg 
+0

Alvaro,感謝您的回覆。/dev/zero是輸入視頻文件,對不對?另外我們如何知道是否有音頻?這些可以通過FFmpeg自動完成,因爲轉換需要很長時間才能使應用程序變得糟糕。 – vijay

+0

/dev/zero不是視頻文件,該命令用於創建虛擬音頻以加入您的視頻,而無需音頻即可合併視頻。要知道是否有音頻流,請使用ffmpeg輸出,並使用選項-i您可以檢查流,流#0.0視頻和流#0.1音頻。 –

+0

感謝Alvaro,我會檢查它。有沒有一種方法可以直接在一步中直接轉換不同格式的視頻文件而無需轉換,因爲它需要更多時間?另外,我在構建最新的ffmpeg時遇到了問題。是否有任何步驟使用ffmpeg庫(在單獨構建之後)使用android創建包含所有ffmpeg命令的共享庫? – vijay