ฉันจะแปลงวิดีโอ 1080p wmv เป็นวิดีโอ 720p ได้อย่างไร


14

ฉันมีวิดีโอ 1080p wmv ที่ฉันต้องการแปลงเป็นวิดีโอที่มีคุณภาพต่ำกว่า (ควรเป็น 720p) ฉันต้องการเก็บเสียงไว้เหมือนเดิม ฉันจะทำให้สำเร็จใน Ubuntu ได้อย่างไร

คำตอบ:


16

เมื่อคุณใช้แท็ก ffmpeg ฉันจะใช้มันสำหรับคำตอบ

ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

เปลี่ยนคุณภาพวิดีโอโดยการระบุพารามิเตอร์ CRF อื่น ดูคู่มือการเข้ารหัส x264สำหรับข้อมูลเพิ่มเติม


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

ตามวิกิของ ffmpegสิ่งนี้สามารถทำได้ง่ายเพียง:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom

4

เวลาผ่านไปเล็กน้อยตั้งแต่คำตอบเดิมที่ยอมรับสำหรับคำถามนี้ในปี 2012 FFmpeg รุ่นใหม่จะดีกว่าถ้าใช้ฟิลเตอร์วิดีโอ 'scale' ของ FFmpeg

ฉันยกตัวอย่างด้านล่างโดยใช้ตัวกรองนี้ซึ่งเพียงแค่คัดลอกแทร็กเสียงตามที่คุณร้องขอ:

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a copy \
       output.mp4

-tune filmตัวเลือกดังกล่าวข้างต้นสามารถละเว้นหรือคุณอาจจะพยายามที่จะ-tune animationขึ้นอยู่กับชนิดของคลิปวิดีโอที่คุณกำลังใช้

ถ้าคุณตัดสินใจว่าคุณจะชอบที่จะแปลงเป็นทางเลือกที่ดีเสียงที่จะใช้ libfdk_aac ห้องสมุดภายนอกดังนี้

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a libfdk_aac -b:a 128k \
       output.mp4

นี่คือสิ่งที่ฉันจะทำกับไฟล์ wmv ที่ฉันกำลังขยายคุณจะพบผลลัพธ์มากกว่าที่ยอมรับได้ ...


1

หากคุณต้องการให้แทร็กเสียงคำบรรยายและอื่น ๆ ไม่บุบสลายคุณควรใช้สิ่งนี้:

ffmpeg -i input.mkv \
       -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \
       -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \
       -c:a:0 copy -c:a:1 copy -c:s copy \
       output.mkv

ในกรณีนี้ไฟล์ input.mkv มีแทร็กเสียงสองแทร็กและคำบรรยายสองคำ คุณสามารถระบุแทร็กเสียงทั้งหมด (หรือคำบรรยายหรือวิดีโอ ฯลฯ ) ทีละรายการหรือเป็นเอนทิตีเดียว (ตามที่ฉันระบุสำหรับคำบรรยาย)

หวังว่ามันจะช่วย ...


1
คุณไม่จำเป็นต้องระบุสตรีมแต่ละรายการในลักษณะด้านบน: -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 แต่คุณสามารถระบุ-map 0แทนได้ วิธีนี้จะเลือกสตรีมทั้งหมดในอินพุต 0 โดยอัตโนมัติคล้ายกับตัวแปลงสัญญาณเสียง -c:copy -c:v libx264ตัวเลือกการแปลงสัญญาณเดียวที่คุณจะต้องระบุเป็น ซึ่งหมายความว่า: "ตั้งค่าตัวแปลงสัญญาณสตรีมทั้งหมดให้คัดลอกยกเว้นวิดีโอที่ควรแปลงเป็น x264"
Cheekysoft

เทียบเท่า (แสดงลำดับพารามิเตอร์):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.