2013-03-05 19 views
6

如果我有一個帶有視頻流和音頻流的.mp4文件。我執行此命令:有沒有一種方法可以使用ffmpeg和傳入的編解碼器AAC來獲得精確的1秒剪輯AAC

ffmpeg -i input.mp4 -ss 00:00:14.000 -t 00:00:01.000 -vn -c:a libfaac audio.m4a 

結果是持續時間:00:00:01.02,開始時間:0.021179。

ffmpeg -i audio.m4a -ss 00:00:00.000 -t 00:00:01.000 -c:a libfaac audio2.m4a 

此命令的結果具有持續時間:00:00:01.02,啓動:0.000000我想確認開始時間從0開始,所以我就用重新取樣。有沒有一種方法可以得到恰好1秒的最終結果,並以0值作爲開始?

我在以前的嘗試中使用了標誌-map 0:1 -ab 128k -ar 44100,但它提供了相同的結果。

如果需要,我可以提供ffmpeg的完整輸出。

謝謝。

+0

幾個問題:什麼是在原文件中的音頻採樣率是多少? 44100或48000赫茲?原始音頻是否也是AAC?如果是這樣,你的意思是做音頻轉碼(這將導致世代流失),而不是無損的remuxing? – 2013-03-06 01:16:25

+0

這裏是音頻流信息: 流#0:1(ENG):音頻:AAC(MP4A/0x6134706D),48000赫茲,單聲道,fltp,96 kb/s的 至於第二個問題,音頻代碼轉換。將細。只需要在開始時間爲0的情況下獲得*精確*一秒的持續時間。 – 2013-03-06 15:09:49

回答

0

我解決了這個問題通過選擇框,而不是

$ ffmpeg -i input.mp4 -ss 14 -frames 46 -vn pass-1.m4a 

$ ffmpeg -i pass-1.m4a -c copy audio.m4a 

結果

 
$ ffmpeg -i audio.m4a 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'audio.m4a': 
    Metadata: 
    major_brand  : M4A 
    minor_version : 512 
    compatible_brands: isomiso2 
    encoder   : Lavf55.1.100 
    Duration: 00:00:01.00, start: 0.000000, bitrate: 135 kb/s 
    Stream #0:0(und): Audio: aac (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 
          125 kb/s 
    Metadata: 
     handler_name : SoundHandler 
相關問題