ffmpeg ปรับขนาดวิดีโอ แต่รักษาคุณภาพเสียง


0
ffmpeg -i input.mp4 -vf scale=640x360,setdar=16:9 -c:v libx264 -preset veryslow -profile:v main -crf 18 -b:a 189k output.mp4

ไฟล์วิดีโออินพุตของฉัน: res: 720p และอัตราบิตเสียง: 189kbps ฉันได้ยินว่าการเลือกบิตเรตเสียงเหมือนกับแหล่งที่มาทำให้คุณภาพเสียงของไฟล์เอาต์พุตนั้นแย่ลง

คำถามของฉันคือวิธีการรักษาคุณภาพเสียงของไฟล์วิดีโอ?

คำถามย่อยของฉันคือเสียงที่ตั้งไว้ล่วงหน้ามากส่งผลกระทบต่ออะไรกับเสียง?

คำตอบ:


2

สตรีมการคัดลอก (re-mux)

คุณสามารถ คัดลอกกระแส แทนการเข้ารหัส คิดว่ามันเหมือนการคัดลอกและวาง คำสั่งของคุณจะมีลักษณะดังนี้:

ffmpeg -i input.mp4 -vf scale=640x360,setdar=16:9 -c:v libx264 \
-preset veryslow -profile:v main -crf 18 -c:a copy output.mp4

เนื่องจากเสียงที่เพิ่งถูกคัดลอกจะไม่มีการสูญเสียคุณภาพและจะเร็วเนื่องจากไม่มีการเข้ารหัสเกิดขึ้น


เปลี่ยนเป็นรหัส

บางครั้งคุณไม่สามารถสตรีมการคัดลอกได้เนื่องจากรูปแบบเอาต์พุตอาจไม่รองรับรูปแบบจากอินพุตดังนั้นจึงจำเป็นต้องมีการเข้ารหัส

เมื่อคุณส่งออกไปเป็น MP4 ฉันจะพูดถึงการเข้ารหัสเสียง AAC ffmpeg สามารถรองรับตัวเข้ารหัสเสียง AAC หลายตัว แต่มีเพียงสองตัวเท่านั้นที่ควรค่าแก่การกล่าวถึง:

libfdk_aac

นี่คือโปรแกรมเข้ารหัสที่ดีที่สุดที่สนับสนุน ffmpegแต่ใบอนุญาตของมันไม่สามารถใช้งานได้กับ GPL ทำให้มีการสร้างบิลด์น้อยมาก (ถ้ามี) ด้วยการสนับสนุนตัวเข้ารหัสนี้ อย่างไรก็ตามคุณสามารถติดตาม แนวทางในการรวบรวม ffmpeg ด้วยการสนับสนุนตัวเข้ารหัสนี้

ffmpeg -i input -c:a libfdk_aac -vbr 5 output.mp4

AAC

ตัวเข้ารหัส FFmpeg AAC ดั้งเดิมมีอยู่ในบิลด์ทั้งหมด มันถือว่าเป็นการทดลอง แต่มีบิตเพียงพอมันควรจะฟังดูดีในกรณีส่วนใหญ่

ffmpeg -i input -c:a aac -strict experimental -b:a 192k output.mp4

ยังดู

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