แปลงวิดีโอด้วยตัวแปลงสัญญาณ vp9 โดยใช้ ffmpeg


7

ฉันพยายามแปลง input.mp4 วิดีโอเพื่อ output.mkv ใช้ตัวแปลงสัญญาณ vp9 ฉันได้ติดตั้งรุ่นพัฒนาของ ffmpeg ผ่าน: brew install ffmpeg --devel.

ffmpeg -i input.mp4 -vcodec vp9 output.mkv

แต่ฉันได้รับข้อผิดพลาด: Unknown encoder 'vp9' แม้รวมถึง vp9: ffmpeg -codecs


คุณควรจะรวมถึงความสมบูรณ์ ffmpeg เอาต์พุตคอนโซล
llogan

brew install ffmpeg --with-libvpx --with-opus
Joel Purra

คำตอบ:


8

คำสั่งพื้นฐานที่สุดคือ:

ffmpeg -i input.mp4 -vcodec libvpx-vp9 -strict experimental output.webm
  • ปัจจุบัน FFmpeg พิจารณาว่าโปรแกรมเปลี่ยนไฟล์นี้เป็นรุ่นทดลอง การตั้งค่าเริ่มต้นอาจไม่ได้ให้ผลลัพธ์ที่ยอดเยี่ยม นี่เป็นตัวเข้ารหัสที่ช้ามาก แต่การพัฒนาเพิ่มประสิทธิภาพยังดำเนินต่อไป

  • ทำตามคำแนะนำใน คู่มือการเข้ารหัส FFmpeg VPx สร้างผลลัพธ์ที่ยอมรับได้มากขึ้น แต่ฉันเชื่อว่าคำแนะนำถูกเขียนขึ้นสำหรับ VP8 ในใจและฉันไม่แน่ใจว่า VP8 แตกต่างจาก VP9 อย่างไรในแง่ของตัวเลือก ฯลฯ

  • ตัวเข้ารหัสเสียงเริ่มต้นจะเป็น libvorbis. อ้างถึงข้อมูลเฉพาะของ Vorbis บน คู่มือการเข้ารหัส FFmpeg Theora และ Vorbis สำหรับข้อมูลเพิ่มเติม

  • สำหรับรายการตัวเข้ารหัสที่สนับสนุนในปัจจุบันอ้างถึง ffmpeg -encoders:

    $ ffmpeg -encoders | grep -i vp
    …
    V..... libvpx               libvpx VP8 (codec vp8)
    V..... libvpx-vp9           libvpx VP9 (codec vp9)
    

ขอบคุณ แต่คำสั่งไม่ทำงาน นี่คือบันทึก: gist.github.com/pavelbinar/8236408 ปัญหาอาจเป็นความจริงที่ว่าฉันไม่ได้ติดตั้ง / รวม vp9 encoder (ฉันคิดว่ามันใน ffmpeg 2.x) gist.github.com/pavelbinar/8236426
Pavel Binar

ฉันติดตั้ง ffmpeg และส่วนประกอบทั้งหมดผ่านทางคู่มือนี้และใช้งานได้ทันที! sites.google.com/a/webmproject.org/wiki/ffmpeg/...
Pavel Binar

2

ด้วยเวอร์ชัน ffmpeg ของฉัน

$ ffmpeg -version
ffmpeg version 2.3.3 Copyright (c) 2000-2014 the FFmpeg developers

คำสั่งมีลักษณะเช่นนี้

ffmpeg -y -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm /dev/null
ffmpeg    -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 2 -c:a opus -b:a 64k -f webm output.webm

นั่นคือ

  • ปล่อยธงการทดลองออก
  • ทำการเข้ารหัสสองรอบเพราะสองวินาทีแรกของเอาต์พุตนั้นพร่ามัวเป็นอย่างอื่น การเข้ารหัสสองรอบนั้นเร็วกว่าการเข้ารหัสเดี่ยว
  • เมื่อทำ 2 รอบคุณไม่จำเป็นต้องเข้ารหัสเสียงในรอบแรกตามที่ @ FrankGalligan บันทึกไว้ในความคิดเห็น

ผ่านเดียวคือ / ถูกทำลายตาม http://wiki.webmproject.org/vp9/known-issues


อย่าตั้งค่า -strict experimental. นั่นคือสำหรับ FFmpeg รุ่นเก่า เมื่อทำ 2 รอบคุณไม่จำเป็นต้องเข้ารหัสเสียงในรอบแรก ffmpeg -y -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm /dev/null ffmpeg -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 2 -c:a opus -b:a 64k -f webm output.webm
FrankGalligan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.