2013-07-22 26 views
7

如果我導入一個文件與ffmpeg一起使用,但沒有指定任何關於任何流的編解碼器的任何內容,ffmpeg會做什麼?是僅複製編解碼器的默認操作?或者將ffmpeg使用一些默認編解碼器對輸入文件進行編碼?默認ffmpeg編解碼器什麼都沒有指定

以下兩個命令是否相同?或者第二次重新編碼並且需要很長時間?

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4 

ffmpeg -i input.mkv output.mp4 

回答

7

如果我導入文件的有關ffmpeg的使用,但不指定有關任何流的編解碼器的話,會的ffmpeg做什麼?

ffmpeg將使用默認編碼器重新編碼輸入中的每個流。使用的編碼器將取決於您如何配置ffmpeg。例如,如果可用libx264將是mp4輸出的默認編碼器,但如果不是,則將使用mpeg4。默認情況下,ffmpeg只會對每種類型的流進行重新編碼,並會忽略其餘部分(請參閱stream selection)。

在你的兩個命令中,第一個命令將使用stream copy mode作爲視頻和音頻。你的第二個命令將重新編碼。

+0

如果我導入已經有h.264視頻流的mp4文件,該怎麼辦?它會嘗試重新編碼嗎,不改變任何東西,但需要很長時間嗎?或者它會認識到它已經是默認的編解碼器,只需複製它? – Sam

+0

@Sam'ffmpeg'將一直重新編碼,除非您另有說明。 – LordNeckbeard

+0

如果它重新編碼到完全相同的編解碼器(即h.264-> h.264),是否會有質量損失?它會比從不同的編解碼器到h.264更快嗎?我懷疑這樣做有什麼意義,但我仍然有興趣... – Sam

1

要發現第二個命令使用的默認編碼解碼器(音頻和視頻),在電腦:與-t 5

  • 運行第二個命令,也許所以它完成更快(編碼只有5秒)。

  • 運行ffprobe output.mp4。掃描「視頻」和「音頻」輸出以查看哪些編解碼器最終被使用。例如,我的Ubuntu 12安裝使用h264和aac。

相關問題