FFmpeg รองรับตัวแปลงสัญญาณและรูปแบบใดบ้าง


138

ฉันต้องการรายการตัวแปลงสัญญาณและรูปแบบที่ FFmpeg รองรับ หาได้จากไหนครับ?


ควรมีไซต์ SE สำหรับ FFmpeg โปรดติดตามและยืนยันอีเมลของคุณเพื่อให้คุณโหวต!
Shimmy Weitzhandler

คำถามที่คล้ายกันของฉันมีคำตอบที่ดี: stackoverflow.com/questions/8727992/…
Sugrue

คำตอบ:


174

ตัวแปลงสัญญาณที่เหมาะสม:

ffmpeg -codecs

รูปแบบ:

ffmpeg -formats

4
นั่นจะเป็นเพียงรายการรูปแบบที่สนับสนุนโดยการสร้าง / การติดตั้ง FFmpeg ที่เฉพาะเจาะจง มีการใช้งาน FFmpeg ที่หลากหลายมาก
mikerobi

21
ใช่หากคุณสนใจในเชิงนามธรรมคุณสามารถศึกษาซอร์สโค้ดและเอกสารที่กว้างขึ้น อย่างไรก็ตามในตอนแรกคนส่วนใหญ่จะสนใจffmpeg ของพวกเขา
Matthew Flaschen

1
ฉันเดาว่ามันขึ้นอยู่กับเจตนาของผู้ถาม แต่ฉันไม่คิดว่ามันเป็นนามธรรม หากลูกค้าเรียกร้องและขอให้ฉันเพื่อสนับสนุนสีม่วงยูนิคอร์น Codec 2.718 ffmpeg -formatsมันจะไม่เกิดขึ้นกับผมที่จะทำ
mikerobi

FWIW ตัวเลือก "-codec" ไม่สามารถใช้ได้กับ ffmpeg เวอร์ชัน SVN-r0.5.10 และ (น่าจะเป็น) ก่อนหน้านี้
ขุด

@Matthew ไม่จำเป็น ... เหตุผลหลักที่ฉันสนใจที่จะดูว่ารองรับตัวแปลงสัญญาณหรือไม่คือฉันได้รับข้อความ "ตัวแปลงสัญญาณที่ไม่รองรับ" จาก ffprobe ของฉันแล้วและต้องการดูว่านี่เป็นเพราะการติดตั้งในเครื่องของฉันหรือไม่ ....
ntg

124

รูปแบบและตัวแปลงสัญญาณการสนับสนุนจากการสร้างของคุณffmpegอาจแตกต่างกันเนื่องจากรุ่นวิธีการที่จะถูกรวบรวมและถ้าห้องสมุดภายนอกใด ๆ เช่น libx264, ได้รับการสนับสนุนในระหว่างการรวบรวม

รูปแบบ (muxers และ demuxers):

แสดงรายการรูปแบบทั้งหมด:

ffmpeg -formats

แสดงตัวเลือกเฉพาะสำหรับและข้อมูลเกี่ยวกับ muxer เฉพาะ:

ffmpeg -h muxer=matroska

แสดงตัวเลือกเฉพาะสำหรับและข้อมูลเกี่ยวกับ demuxer เฉพาะ:

ffmpeg -h demuxer=gif

Codecs (ตัวเข้ารหัสและตัวถอดรหัส):

แสดงรายการตัวแปลงสัญญาณทั้งหมด:

ffmpeg -codecs

แสดงรายการตัวเข้ารหัสทั้งหมด:

ffmpeg -encoders

แสดงรายการตัวถอดรหัสทั้งหมด:

ffmpeg -decoders

แสดงตัวเลือกเฉพาะสำหรับและข้อมูลเกี่ยวกับตัวเข้ารหัสเฉพาะ:

ffmpeg -h encoder=mpeg4

แสดงตัวเลือกเฉพาะสำหรับและข้อมูลเกี่ยวกับตัวถอดรหัสเฉพาะ:

ffmpeg -h decoder=aac

การอ่านผลลัพธ์

มีคีย์ใกล้ด้านบนของเอาต์พุตที่อธิบายตัวอักษรแต่ละตัวที่นำหน้าชื่อของรูปแบบตัวเข้ารหัสตัวถอดรหัสหรือตัวแปลงสัญญาณ:

$ ffmpeg -encoders
[…]
Encoders:
 V..... = Video
 A..... = Audio
 S..... = Subtitle
 .F.... = Frame-level multithreading
 ..S... = Slice-level multithreading
 ...X.. = Codec is experimental
 ....B. = Supports draw_horiz_band
 .....D = Supports direct rendering method 1
 ------
[…]
 V.S... mpeg4                MPEG-4 part 2

ในตัวอย่างนี้V.S...ระบุว่าตัวเข้ารหัสmpeg4เป็นVตัวเข้ารหัส ideo และรองรับSมัลติเธรดระดับเหา

ดูด้วย

Codec คืออะไรและแตกต่างจากรูปแบบอย่างไร?


ขอบคุณ llogan มากสำหรับตัวเลือกการกรองพิเศษเหล่านั้น เป็นไปได้ไหมที่จะไปต่อและตัวอย่างเช่นขอให้ FFMPEG แสดงรายการตัวเข้ารหัส / ตัวถอดรหัสทั้งหมดที่มีไว้สำหรับวิดีโอเท่านั้นหรือสำหรับเสียงเท่านั้น
นักบินอวกาศ

1
@spaceman คุณสามารถทำได้ด้วยการประมวลผลเพิ่มเติม ตัวอย่างการใช้งานgrepบน Linux:ffmpeg -encoders | grep "^ V"
llogan

59
ffmpeg -codecs

ควรให้ข้อมูลทั้งหมดเกี่ยวกับตัวแปลงสัญญาณที่มี

คุณจะเห็นตัวอักษรถัดจากตัวแปลงสัญญาณ:

Codecs:
 D..... = Decoding supported
 .E.... = Encoding supported
 ..V... = Video codec
 ..A... = Audio codec
 ..S... = Subtitle codec
 ...I.. = Intra frame-only codec
 ....L. = Lossy compression
 .....S = Lossless compression

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