2014-02-13 102 views
0

我是Android應用程序開發的初學者,我的項目的目標是從視頻文件中分離音頻和視頻。在網上衝浪之後,我開始知道,使用FFmpeg我們可以做到。Android中的獨立音頻和視頻

ffmpeg -i input.mkv # show stream numbers and formats 
ffmpeg -i input.mkv -c copy audio.m4a # AAC 
ffmpeg -i input.mkv -c copy audio.mp3 # MP3 
ffmpeg -i input.mkv -c copy audio.ac3 # AC3 
ffmpeg -i input.mkv -an -c copy video.mkv 
ffmpeg -i input.mkv -map 0:1 -c copy audio.m4a # stream 1 

分離的視頻文件將不包含它必須是隻包含視頻類型的任何音訊。 這個選項是否可能在ffmpeg中? 是否有其他選擇?

+0

Offtopic:這個問題不會出現約在[幫助中心](http://stackoverflow.com/help/on-topic)中定義的範圍內進行編程。您的問題可以被投票/標記爲遷移到[su]。請在[su]問問未來的'ffmpeg' cli問題。 – LordNeckbeard

回答

0

只複製視頻

是的,這是可能的scream copy只從輸入視頻與-map選項:

ffmpeg -i input.mkv -map 0:v -codec copy output.mkv 
  • 這將數據從第一輸入複製所有的視頻流(在這種情況下唯一的輸入)到輸出。

  • 如果輸入有多個視頻流,而您只想要第一個視頻流,則使用-map 0:v:0

  • 選項也可以用來代替,但是這隻會排除導致可能複製其他流類型(包括字幕,數據和附件)的音頻。

  • 有關ffmpeg如何選擇要包含在輸出中的流的更多信息,請參見stream selection

僅複製音頻

這非常類似於上面的例子:只要改變-map選擇使用不同的stream specifier

ffmpeg -i input.mp3 -map 0:a -codec copy output.mp3 
+0

有沒有比ffmpeg更好的android api來完成上述功能。因爲ffmpeg有很多構建過程,所以我更喜歡在Android本身中有一些默認的Api。 – Manoj

+0

@Manoj,看看你爲完成任務而必須做的處理。所以'不'在android中沒有api來實現這一點。你必須使用'Ffmpeg'或任何類似的外部庫。 – BlueSword