หากคุณต้องการบรรทัดคำสั่งคุณสามารถใช้ffmpeg
(หรือhandbrake-cli
)
MP4
สมมติว่าคุณกำลังใช้เวอร์ชันล่าสุดของffmpeg
:
ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
-crf
: คุณภาพ ช่วงคือลอการิทึม 0 (สูญเสีย) ถึง 51 (คุณภาพแย่ที่สุด) ค่าเริ่มต้นคือ 23 ช่วงที่มีอัตนัยคือ ~ 18-28 หรือมากกว่านั้น ใช้ค่าสูงสุดที่ยังคงให้คุณภาพที่ยอมรับได้ หากคุณกำลังเข้ารหัสอินพุตขนาดใหญ่ที่ทำไม่ได้อีกครั้งเพื่ออัปโหลดไปยัง YouTube หรือที่คล้ายกันลองใช้ค่า 17 หรือ 18 เนื่องจากบริการวิดีโอเหล่านี้จะเข้ารหัสอีกครั้ง
-preset
: ความเร็วในการเข้ารหัส ค่าที่ตั้งล่วงหน้าที่ช้ากว่าให้การบีบอัดที่ดีกว่า (คุณภาพต่อขนาดไฟล์) แต่ช้ากว่า ใช้สิ่งที่ช้าที่สุดที่คุณมีความอดทนสำหรับ: เร็วมากเร็วมากเร็วมากเร็วเร็วปานกลาง (ค่าเริ่มต้น) ช้าช้าลงช้ามาก
-movflags +faststart
: อนุญาตให้วิดีโอเล่นก่อนที่จะถูกดาวน์โหลดอย่างสมบูรณ์ในกรณีที่มีการดาวน์โหลดแบบโปรเกรสซีฟ มีประโยชน์ถ้าคุณกำลังโฮสต์วิดีโอมิฉะนั้นฟุ่มเฟือยถ้าอัปโหลดไปยังบริการวิดีโอเช่น YouTube
-vf scale=-2:720,format=yuv420p
: ตัวกรองกราฟโดยใช้ตัวกรองวิดีโอขนาดและรูปแบบ ปรับความสูงเป็น 720 พิกเซลและเลือกความกว้างที่จะรักษาภาพไว้โดยอัตโนมัติแล้วตรวจสอบให้แน่ใจว่ารูปแบบพิกเซลเข้ากันได้กับเครื่องเล่นใบ้
-b:a 128k
: บิตเรตเสียง หากคุณffmpeg
ล้าสมัยแล้วคุณจะต้องเพิ่มการใช้งาน-strict experimental
-c:a aac
MOV
เนื่องจากไฟล์ MOV และ MP4 ของคุณอาจมีรูปแบบวิดีโอและเสียงที่เหมือนกันคุณสามารถเข้ารหัส MP4 และสร้าง MOV โดยทำการ muxing ใหม่ (ด้วยโหมดการคัดลอกสตรีม ) แทนที่จะเข้ารหัสใหม่:
ffmpeg -i input.mp4 -codec copy output.mov
WMV
FFmpeg รองรับ WMV 7 และ 8 เท่านั้นฉันไม่รู้ตัวโอเพ่นซอร์สตัวเข้ารหัสสำหรับเวอร์ชัน 9
$ ffmpeg -encoders | grep -i windows
[...]
V..... = Video
A..... = Audio
------
V..... wmv1 Windows Media Video 7
V..... wmv2 Windows Media Video 8
A..... wmav1 Windows Media Audio 1
A..... wmav2 Windows Media Audio 2
เนื่องจากฉันไม่คุ้นเคยกับโปรแกรมเปลี่ยนไฟล์เหล่านี้ฉันจึงสามารถยกตัวอย่างที่ยังไม่ทดลองเท่านั้น:
ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv
รับ ffmpeg
คุณสามารถดาวน์โหลดลินุกซ์บิวด์ของ ffmpegหรือทำตามคำแนะนำการคอมไพล์ ffmpegทีละขั้นตอนเพื่อปรับแต่งบิลด์ของคุณ
การใช้ bash "for loop" เพื่อทำการเข้ารหัสแบบ batch
ในการเข้ารหัสวิดีโอทั้งหมดในไดเรกทอรี:
$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
"encoded/${f%.avi}.mp4"; done
ยังดู