2011-06-12 175 views
25

需要將flv文件轉換爲avi或mov,嘗試使用ffmpeg,但輸出質量很差。我怎樣才能讓視頻輸出與音頻源保持一致?如何使用ffmpeg高品質將flv轉換爲avi

我以爲ffmpeg -i name.flv -s 320x ... name.avi會這樣做,但沒有好處。

回答

25

這是我用於ffmpeg項目的命令,質量應該足夠好。如果沒有,請嘗試增加比特率(-b參數):

ffmpeg -i input.flv -ar 22050 -b 2048k output.avi 
+1

它告訴我'-b'不明確。改用'-b:v'或'-b:a'。這是什麼? – 2013-07-19 07:00:06

+3

@OptimusPrime:分別是視頻/音頻比特率(如果其他人也感到困惑)。 – 2013-09-23 13:40:52

+0

但文件大小非常高。無論如何減少文件的大小沒有質量比較。我的視頻文件主要包含文本 – samnaction 2014-05-15 12:22:44

7

也有在互聯網上找到了另一個解決方案和作品般的魅力!

只是使用相同的質量參數-sameq

ffmpeg.exe -i video.flv -sameq outputVideo.avi 

其實命令sameq的質量不一樣。 爲了成功地做到這一點這一個必須被應用: 如果你有多個文件做的,是完整的命令

for %i in (*.flv) do ffmpeg -i "%i" -q:a 0 -q:v 0 "%i".avi 
+14

這並不意味着「相同的質量」:http://ffmpeg.org/trac/ffmpeg/wiki/Option%20%27-sameq%27%20does%20NOT%20mean%20%27same% 20quality%27 – CaptainProg 2012-10-11 12:00:43

+0

工作就像一個魅力第二個命令。 =) – 2014-03-07 01:39:39

+2

「選項'sameq'已被移除如果您正在尋找一個選項來保持質量(這不是-sameq的用途),請使用-qscale 0或同等品質因數選項。 – 2015-05-07 19:18:53

13

這是一個很好的解決方案

ffmpeg -async 1 -i inputVideo.flv -f avi -b 700k -qscale 0 -ab 160k -ar 44100 outputVideo.avi 

或者使用下面一個

ffmpeg -loglevel 0 -async 1 -i inputVideo.flv -f avi -b 700k -sameq -ab 160k -ar 44100 outputVideo.avi 
+2

+1,上面的第一個命令是唯一爲我工作的命令,其他命令有「無效參數」或seg故障。 – Ash 2013-10-26 02:40:37

+1

這是解決方案! ,) – 2014-05-28 12:38:33

+1

+1感謝你在'ffmpeg -i input.flv -async 1 -f avi -b 700k -qscale 0 -ab 160k -ar 44100 outputVideo.avi'中更新的第二個解決方案。我將270mb的100分鐘flv視頻轉換爲1.5 GB avi文件,並具有相同的質量。 :) – Tenaciousd93 2015-01-28 20:21:24

2

保存質量使用-qscale 0

例如ffmpeg.exe -i InputVid.avi -qscale 0 OutputVid.mp4

我將我1.64 GB的AVI視頻以4.35 MB mp4文件。

+0

'-qscale'被忽略如果可用,libx264是MP4輸出的默認編碼器。如果使用此編碼器,請使用'-crf'。由於它被忽略,我假設在你的情況下應用'-crf 23'的缺省值。 – LordNeckbeard 2017-10-26 18:54:21