วิธีการแปลง MKV เป็น AVI ด้วยการสูญเสียน้อยที่สุด


23

ในการแปลง MKV เป็น AVI ฉันทำสองสิ่ง สิ่งแรกที่ฉันทำคือ:

ffmpeg -i filename.mkv -vcodec copy -acodec copy output.avi

หรือสิ่งนี้:

ffmpeg -i filename.mkv -sameq -acodec copy output.avi

อย่างใดอย่างหนึ่งเหล่านี้จะแปลง MKV เป็น AVI แต่ปัญหาคือวิดีโอไม่เล่นอย่างราบรื่นด้วยเหตุผลบางอย่าง ไม่เป็นไรเพราะถ้าฉันทำอีกสิ่งหนึ่งมันก็จะถูกแก้ไข

ffmpeg -i output.avi -vcodec mpeg4 -b 4000k -acodec mp2 -ab 320k converted.avi

หลังจากฉันทำแล้วไฟล์จะเล่นโดยไม่มีปัญหา ฉันประสบความสำเร็จในการทำเช่นนี้สำหรับไฟล์หนึ่ง แต่จากนั้นฉันลองมันกับไฟล์อื่นและมีคุณภาพวิดีโอที่สูญเสียไปเล็กน้อย แต่เห็นได้ชัด นี่คือผลลัพธ์ที่ฉันได้รับเมื่อทำขั้นตอนที่สอง:

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 29 2010 18:02:10 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: 
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0

Seems stream 0 codec frame rate differs from container frame rate: 359.00 (359/1) -> 29.92 (359/12)
Input #0, avi, from 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
  Duration: 00:04:17.21, start: 0.000000, bitrate: 3074 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], 29.92 fps, 29.92 tbr, 29.92 tbn, 359 tbc
    Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16
Output #0, avi, to 'converted.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], q=2-31, 4000 kb/s, 29.92 tbn, 29.92 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 320 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

ฉันเพิ่งใช้การตั้งค่าขนาดใหญ่โดยพลการในขั้นตอนที่สองและมันใช้งานได้ดีมาก่อน แต่ไม่ใช่ในกรณีนี้ ฉันควรใช้การตั้งค่าแบบใด


นี่คือสิ่งที่ ffmpeg มอบให้ฉันสำหรับ sameq: ตัวเลือก 'sameq' ถูกลบออก หากคุณกำลังมองหาตัวเลือกในการรักษาคุณภาพ (ซึ่งไม่ใช่สิ่งที่ -sameq ใช้) ให้ใช้ -qscale 0 หรือตัวเลือกปัจจัยคุณภาพที่เทียบเท่ากัน
DavidG

คำตอบ:


25

เพื่อคัดลอกวิดีโอและออดิโอบิตสตรีมจึงไม่มีการสูญเสียคุณภาพ:

ffmpeg -i filename.mkv -c:v copy -c:a copy output.avi

หากคุณต้องการ FFmpeg เพื่อแปลงวิดีโอและเสียงโดยอัตโนมัติ:

ffmpeg -i filename.mkv output.avi

7
การตั้งค่าเริ่มต้นของ FFmpeg มีแนวโน้มที่จะไม่ดี นี่คือคำแนะนำทั่วไปในการเข้ารหัสด้วยโคเดกต่างๆ FFmpeg wikiมีคำแนะนำในเชิงลึกมากขึ้น
evilsoup

รหัสแรกสร้างไฟล์ที่เสียหายไม่ได้เล่นใน VLC
codemirror

18
 ffmpeg -i "input.mkv" -f avi -c:v mpeg4 -b:v 4000k -c:a libmp3lame -b:a 320k "converted.avi"

คำแนะนำของฉัน: ใช้ mpeg4 + mp3 ใน avi container


1

ลองใช้ ffmulticonverter มีประโยชน์มากสำหรับฉัน: มันเป็น GUI สำหรับ ffmpeg และคุณสามารถตั้งค่าพารามิเตอร์ทั้งหมดได้อย่างง่ายดาย นอกจากนี้คุณสามารถค้นหารายการรูปแบบวิดีโอที่เป็นไปได้ทั้งหมด

แผ่นเสียง


-3

ฉันขอแนะนำทางลัดที่ฉันใช้เป็นประจำได้ไหม

ffmpeg -i filename.mkv -sameq output.avi

4
sameq ไม่ได้หมายถึงคุณภาพเดียวกันและไม่ควรใช้ ในความเป็นจริงมันถูกลบออกจาก ffmpeg โดยสิ้นเชิง ค่อนข้างตั้งค่าคุณภาพโดยใช้สิ่งที่ตัวแปลงสัญญาณเป้าหมายให้
slhck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.