ffmpeg
นี่คือคำสั่ง ffmpeg ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
ffmpeg - ffmpeg ตัวแปลงวิดีโอ
เรื่องย่อ
เอฟเอ็มเพก [global_options-input_file_options] -ผม อินพุต_ไฟล์-output_file_options]
เอาต์พุต_ไฟล์-
DESCRIPTION
ffmpeg เป็นโปรแกรมแปลงไฟล์วิดีโอและเสียงที่รวดเร็วมาก ซึ่งสามารถดึงมาจากไฟล์เสียง/วิดีโอสดได้
แหล่งที่มา. นอกจากนี้ยังสามารถแปลงระหว่างอัตราการสุ่มตัวอย่างตามอำเภอใจและปรับขนาดวิดีโอได้ทันที
ด้วยฟิลเตอร์โพลีเฟสคุณภาพสูง
ffmpeg อ่านจากจำนวนอินพุต "ไฟล์" โดยพลการ (ซึ่งสามารถเป็นไฟล์ปกติ, ไพพ์,
สตรีมเครือข่าย อุปกรณ์จับ ฯลฯ ) ที่ระบุโดยตัวเลือก "-i" และเขียนถึง an
จำนวนเอาต์พุต "ไฟล์" โดยพลการซึ่งระบุโดยชื่อไฟล์เอาต์พุตธรรมดา
สิ่งใดที่พบในบรรทัดคำสั่งที่ไม่สามารถตีความได้ว่าเป็นตัวเลือกจะถูกพิจารณา
จะเป็นชื่อไฟล์ที่ส่งออก
โดยหลักการแล้วไฟล์อินพุตหรือเอาต์พุตแต่ละไฟล์สามารถมีจำนวนสตรีมที่แตกต่างกัน
ประเภท (วิดีโอ/เสียง/คำบรรยาย/สิ่งที่แนบมา/ข้อมูล) จำนวนและ/หรือประเภทของสตรีมที่อนุญาต
อาจถูกจำกัดด้วยรูปแบบคอนเทนเนอร์ การเลือกว่าสตรีมใดจะมาจากอินพุตใด
ที่เอาต์พุตจะทำโดยอัตโนมัติหรือด้วยตัวเลือก "-map" (ดู Stream
บทที่เลือก)
หากต้องการอ้างถึงไฟล์อินพุตในตัวเลือก คุณต้องใช้ดัชนีของไฟล์ดังกล่าว (อิงตาม 0) เช่นแรก
ไฟล์อินพุตคือ 0 ไฟล์ที่สองคือ 1 เป็นต้น ในทำนองเดียวกัน สตรีมภายในไฟล์ถูกอ้างถึงโดย
ดัชนีของพวกเขา เช่น "2:3" หมายถึงสตรีมที่สี่ในไฟล์อินพุตที่สาม ดูเพิ่มเติม
บทตัวระบุสตรีม
ตามกฎทั่วไป ตัวเลือกจะถูกนำไปใช้กับไฟล์ที่ระบุถัดไป ดังนั้น ลำดับคือ
สำคัญ และคุณสามารถมีตัวเลือกเดียวกันบนบรรทัดคำสั่งได้หลายครั้ง แต่ละ
เหตุการณ์จะถูกนำไปใช้กับไฟล์อินพุตหรือเอาต์พุตถัดไป ข้อยกเว้นจากกฎนี้
เป็นตัวเลือกสากล (เช่น ระดับการใช้คำฟุ่มเฟือย) ซึ่งควรระบุก่อน
อย่าผสมไฟล์อินพุตและเอาต์พุต -- ขั้นแรกให้ระบุไฟล์อินพุตทั้งหมด จากนั้นจึงระบุไฟล์เอาต์พุตทั้งหมด
อย่าผสมตัวเลือกที่เป็นของไฟล์ต่างกัน ตัวเลือกทั้งหมดใช้เฉพาะกับ
ไฟล์อินพุตหรือเอาต์พุตถัดไปและถูกรีเซ็ตระหว่างไฟล์
· ในการตั้งค่าบิตเรตวิดีโอของไฟล์เอาต์พุตเป็น 64 kbit/s:
ffmpeg -i input.avi -b:v 64k -bufsize 64k เอาท์พุต.avi
· ในการบังคับอัตราเฟรมของไฟล์ที่ส่งออกเป็น 24 fps:
ffmpeg -i input.avi -r 24 เอาท์พุต.avi
· เพื่อบังคับอัตราเฟรมของไฟล์อินพุต (ใช้ได้กับรูปแบบดิบเท่านั้น) เป็น 1 fps และ
อัตราเฟรมของไฟล์เอาต์พุตถึง 24 fps:
ffmpeg -r 1 -i input.m2v -r 24 เอาท์พุต.avi
อาจจำเป็นต้องใช้ตัวเลือกรูปแบบสำหรับไฟล์อินพุตแบบดิบ
รายละเอียด DESCRIPTION
กระบวนการแปลงรหัสใน ffmpeg สำหรับแต่ละเอาต์พุตสามารถอธิบายได้ดังต่อไปนี้
แผนภาพ:
__________ ______________
- - - -
| อินพุต | ดีลักซ์เซอร์ | ข้อมูลที่เข้ารหัส | ตัวถอดรหัส
| ไฟล์ | -----> | แพ็กเก็ต | -----+
|__________| |_____________| |
v
_________
| |
| ถอดรหัส |
| เฟรม |
| _________ |
-
| | | | |
| เอาท์พุต | <-------- | ข้อมูลที่เข้ารหัส | <----+
| ไฟล์ | muxer | แพ็กเก็ต | ตัวเข้ารหัส
|________| |_____________|
ffmpeg เรียกไลบรารี่ libavformat (ที่มี demuxers) เพื่ออ่านไฟล์อินพุตและรับ
แพ็กเก็ตที่มีข้อมูลที่เข้ารหัสจากพวกเขา เมื่อมีไฟล์อินพุตหลายไฟล์ ffmpeg
พยายามทำให้ข้อมูลตรงกันโดยการติดตามการประทับเวลาต่ำสุดในสตรีมอินพุตที่ใช้งานอยู่
แพ็กเก็ตที่เข้ารหัสจะถูกส่งไปยังตัวถอดรหัส (เว้นแต่จะเลือก streamcopy สำหรับ
สตรีม ดูคำอธิบายเพิ่มเติม) ตัวถอดรหัสสร้างเฟรมที่ไม่มีการบีบอัด (raw
วิดีโอ/เสียง PCM/...) ซึ่งสามารถประมวลผลเพิ่มเติมได้โดยการกรอง (ดูหัวข้อถัดไป) หลังจาก
การกรองเฟรมจะถูกส่งไปยังตัวเข้ารหัสซึ่งเข้ารหัสและส่งออกการเข้ารหัส
แพ็คเก็ต ในที่สุดสิ่งเหล่านั้นจะถูกส่งไปยัง muxer ซึ่งเขียนแพ็กเก็ตที่เข้ารหัสไปยัง
ไฟล์ที่ส่งออก
กรอง
ก่อนการเข้ารหัส ffmpeg สามารถประมวลผลภาพและเสียงดิบโดยใช้ตัวกรองจาก
ไลบรารี libavfilter ตัวกรองที่ถูกล่ามโซ่หลายตัวสร้างกราฟตัวกรอง ffmpeg ที่แตกต่าง
ระหว่างตัวกรองสองประเภท: แบบง่ายและซับซ้อน
ง่าย ตัวกรองกราฟ
กราฟตัวกรองอย่างง่ายคือกราฟที่มีอินพุตและเอาต์พุตเพียงรายการเดียว ทั้งคู่เหมือนกัน
พิมพ์. ในไดอะแกรมข้างต้น พวกเขาสามารถแสดงได้โดยเพียงแค่แทรกขั้นตอนเพิ่มเติม
ระหว่างการถอดรหัสและการเข้ารหัส:
________ ______________
- - - -
| ถอดรหัส | | ข้อมูลที่เข้ารหัส |
| เฟรม |\ _ | แพ็กเก็ต |
|_________| \ /||_______________|
-
ง่ายๆ _\|| | / ตัวเข้ารหัส
filtergraph | กรอง |/
| เฟรม |
-
กราฟตัวกรองอย่างง่ายได้รับการกำหนดค่าด้วย per-stream -กรอง ตัวเลือก (ด้วย -vf และ -อัฟ
นามแฝงสำหรับวิดีโอและเสียงตามลำดับ) กราฟตัวกรองอย่างง่ายสำหรับวิดีโอสามารถค้นหาได้
ตัวอย่างเช่นนี้:
__________ _______________ __________ ________
- - - - - - - -
| อินพุต | ---> | ดีอินเตอร์เลซ | ---> | ขนาด | ---> | เอาท์พุต |
|__________| |_____________| |__________| |________|
โปรดทราบว่าตัวกรองบางตัวเปลี่ยนคุณสมบัติของเฟรม แต่ไม่ใช่เนื้อหาเฟรม เช่น "fps"
ตัวกรองในตัวอย่างด้านบนเปลี่ยนจำนวนเฟรมแต่ไม่แตะเฟรม
เนื้อหา อีกตัวอย่างหนึ่งคือตัวกรอง "setpts" ซึ่งตั้งค่าการประทับเวลาเท่านั้น มิฉะนั้น
ผ่านเฟรมไม่เปลี่ยนแปลง
ซับซ้อน ตัวกรองกราฟ
กราฟตัวกรองที่ซับซ้อนคือสิ่งที่ไม่สามารถอธิบายได้ว่าเป็นเพียงการประมวลผลเชิงเส้น
ห่วงโซ่นำไปใช้กับหนึ่งสตรีม เป็นกรณีนี้ เช่น เมื่อกราฟมีค่ามากกว่า
หนึ่งอินพุตและ/หรือเอาต์พุต หรือเมื่อเอาต์พุตประเภทสตรีมแตกต่างจากอินพุต พวกเขาสามารถเป็น
แสดงด้วยไดอะแกรมต่อไปนี้:
_________
| |
| อินพุต 0 |\ __________
- - -
\ _________ /| เอาต์พุต 0 |
- - -
_________ \| ซับซ้อน | /
- - - -
| อินพุต 1 |---->| ตัวกรอง |\
- - - -
/| กราฟ | \ | |
/ | | \| เอาท์พุท 1 |
_________ / |__________| |__________|
- - -
| อินพุต 2 |/
| _________ |
กราฟตัวกรองที่ซับซ้อนได้รับการกำหนดค่าด้วย -filter_complex ตัวเลือก. โปรดทราบว่าสิ่งนี้
ตัวเลือกเป็นสากลเนื่องจากตัวกรองที่ซับซ้อนโดยธรรมชาติไม่สามารถชัดเจนได้
เชื่อมโยงกับสตรีมหรือไฟล์เดียว
พื้นที่ -ลาฟฟี ตัวเลือกเทียบเท่ากับ -filter_complex.
ตัวอย่างเล็กๆ น้อยๆ ของกราฟตัวกรองที่ซับซ้อนคือตัวกรอง "โอเวอร์เลย์" ซึ่งมีวิดีโอ XNUMX รายการ
อินพุตและเอาต์พุตวิดีโอหนึ่งรายการ โดยมีวิดีโอหนึ่งวางทับอีกรายการหนึ่ง เสียงของมัน
คู่คือตัวกรอง "ผสม"
กระแส สำเนา
คัดลอกสตรีมเป็นโหมดที่เลือกโดยระบุพารามิเตอร์ "คัดลอก" ไปที่ -ตัวแปลงสัญญาณ ตัวเลือก. มัน
ทำให้ ffmpeg ละเว้นขั้นตอนการถอดรหัสและเข้ารหัสสำหรับสตรีมที่ระบุ ดังนั้นจึงทำเท่านั้น
ดีม็อกซ์และมิกซ์ซิ่ง มีประโยชน์สำหรับการเปลี่ยนรูปแบบคอนเทนเนอร์หรือแก้ไข
ข้อมูลเมตาระดับคอนเทนเนอร์ ไดอะแกรมด้านบน ในกรณีนี้ จะทำให้ง่ายขึ้น:
__________ _______________ ________
- - - - - -
| อินพุต | ดีลักซ์เซอร์ | ข้อมูลที่เข้ารหัส | muxer | เอาท์พุต |
| ไฟล์ | -----> | แพ็กเก็ต | --------> | ไฟล์ |
|__________| |_____________| |________|
เนื่องจากไม่มีการถอดรหัสหรือเข้ารหัส มันจึงเร็วมากและไม่มีการสูญเสียคุณภาพ
อย่างไรก็ตาม อาจใช้ไม่ได้ในบางกรณีเนื่องจากปัจจัยหลายประการ การใช้ตัวกรองคือ
เห็นได้ชัดว่าเป็นไปไม่ได้เช่นกัน เนื่องจากตัวกรองทำงานกับข้อมูลที่ไม่บีบอัด
กระแส การคัดเลือก
โดยค่าเริ่มต้น ffmpeg รวมสตรีมแต่ละประเภทเท่านั้น (วิดีโอ, เสียง, คำบรรยาย) ปัจจุบัน
ในไฟล์อินพุตและเพิ่มลงในไฟล์เอาต์พุตแต่ละไฟล์ มันเลือก "ดีที่สุด" ของแต่ละรายการตาม
ตามเกณฑ์ต่อไปนี้ สำหรับวิดีโอ เป็นสตรีมที่มีความละเอียดสูงสุดสำหรับ
audio เป็นสตรีมที่มีช่องมากที่สุด ส่วนซับไตเติ้ล คือ ซับไตเติ้ลแรก
ลำธาร. ในกรณีที่สตรีมประเภทเดียวกันหลายสายมีค่าเท่ากัน กระแสที่มี
เลือกดัชนีต่ำสุด
คุณสามารถปิดใช้งานค่าเริ่มต้นบางส่วนได้โดยใช้ตัวเลือก "-vn/-an/-sn" สำหรับคู่มือฉบับเต็ม
ควบคุม ใช้ตัวเลือก "-map" ซึ่งปิดใช้งานค่าเริ่มต้นที่อธิบายไว้
OPTIONS
ตัวเลือกตัวเลขทั้งหมด หากไม่ได้ระบุไว้เป็นอย่างอื่น ให้ยอมรับสตริงที่แทนค่า a
ตัวเลขเป็นอินพุต ซึ่งอาจตามด้วยคำนำหน้าหน่วย SI อย่างใดอย่างหนึ่ง เช่น 'K'
'M' หรือ 'G'
หาก 'i' ต่อท้ายคำนำหน้าหน่วย SI คำนำหน้าทั้งหมดจะถูกตีความว่าเป็น
คำนำหน้าหน่วยสำหรับทวีคูณไบนารี ซึ่งอิงตามกำลัง 1024 แทนที่จะเป็นกำลังของ
1000. การต่อท้าย 'B' กับคำนำหน้าหน่วย SI จะคูณค่าด้วย 8 ซึ่งช่วยให้สามารถใช้
ตัวอย่างเช่น: 'KB', 'MiB', 'G' และ 'B' เป็นคำต่อท้ายตัวเลข
ตัวเลือกที่ไม่รับอาร์กิวเมนต์คือตัวเลือกบูลีน และตั้งค่าที่สอดคล้องกัน
เป็นจริง สามารถตั้งค่าเป็นเท็จโดยนำหน้าชื่อตัวเลือกด้วย "ไม่" ตัวอย่างเช่น
การใช้ "-nofoo" จะตั้งค่าตัวเลือกบูลีนที่มีชื่อ "foo" เป็นเท็จ
กระแส specifiers
บางตัวเลือกจะใช้ต่อสตรีม เช่น บิตเรตหรือตัวแปลงสัญญาณ ตัวระบุสตรีมใช้เพื่อ
ระบุอย่างแม่นยำว่าตัวเลือกที่กำหนดเป็นของสตรีมใด
ตัวระบุสตรีมเป็นสตริงโดยทั่วไปต่อท้ายชื่อตัวเลือกและแยกออกจากมัน
โดยลำไส้ใหญ่ เช่น "-codec:a:1 ac3" มีตัวระบุสตรีม "a:1" ซึ่งตรงกับ
สตรีมเสียงที่สอง ดังนั้น มันจะเลือกตัวแปลงสัญญาณ ac3 สำหรับสตรีมเสียงที่สอง
ตัวระบุสตรีมสามารถจับคู่สตรีมหลาย ๆ ตัวได้ ดังนั้นตัวเลือกจะถูกนำไปใช้กับ .ทั้งหมด
พวกเขา. เช่น ตัวระบุสตรีมใน "-b:a 128k" ตรงกับสตรีมเสียงทั้งหมด
ตัวระบุสตรีมที่ว่างเปล่าตรงกับสตรีมทั้งหมด ตัวอย่างเช่น "-codec copy" หรือ "-codec:
copy" จะคัดลอกสตรีมทั้งหมดโดยไม่ต้องเข้ารหัสใหม่
รูปแบบที่เป็นไปได้ของตัวระบุสตรีมคือ:
stream_index
จับคู่สตรีมกับดัชนีนี้ เช่น "-threads:1 4" จะกำหนดจำนวนเธรดสำหรับ
สตรีมที่สองถึง 4
stream_type[:stream_index]
stream_type เป็นหนึ่งในต่อไปนี้: 'v' หรือ 'V' สำหรับวิดีโอ 'a' สำหรับเสียง 's' สำหรับ
คำบรรยาย 'd' สำหรับข้อมูลและ 't' สำหรับไฟล์แนบ 'v' ตรงกับวิดีโอสตรีมทั้งหมด 'V'
จับคู่เฉพาะสตรีมวิดีโอที่ไม่ได้แนบรูปภาพ ภาพขนาดย่อของวิดีโอ หรือหน้าปก
ศิลปะ ถ้า stream_index ให้แล้วตรงกับหมายเลขสตรีม stream_index ของสิ่งนี้
พิมพ์. มิฉะนั้นจะตรงกับสตรีมประเภทนี้ทั้งหมด
p:โปรแกรม_id[:stream_index]
If stream_index ให้แล้วจับคู่กระแสกับตัวเลข stream_index ใน
โปรแกรมที่มีรหัส โปรแกรม_id. มิฉะนั้นจะตรงกับสตรีมทั้งหมดในโปรแกรม
#stream_id or i:stream_id
จับคู่สตรีมตามรหัสสตรีม (เช่น PID ในคอนเทนเนอร์ MPEG-TS)
m:สำคัญ[:ความคุ้มค่า]
จับคู่สตรีมกับแท็กข้อมูลเมตา สำคัญ มีค่าที่กำหนด ถ้า ความคุ้มค่า ไม่ใช่
ให้จับคู่สตรีมที่มีแท็กที่กำหนดกับค่าใดๆ
u จับคู่สตรีมกับการกำหนดค่าที่ใช้งานได้ ต้องกำหนดตัวแปลงสัญญาณและจำเป็น
ต้องมีข้อมูลเช่นขนาดวิดีโอหรืออัตราตัวอย่างเสียง
สังเกตว่าใน ffmpegการจับคู่โดยข้อมูลเมตาจะทำงานอย่างถูกต้องสำหรับไฟล์อินพุตเท่านั้น
ทั่วไป ตัวเลือก
ตัวเลือกเหล่านี้ใช้ร่วมกันระหว่างเครื่องมือ ff*
-L แสดงใบอนุญาต
-ชม, - -ช่วย, --ช่วยด้วย [หาเรื่อง]
แสดงความช่วยเหลือ อาจมีการระบุพารามิเตอร์ทางเลือกเพื่อพิมพ์ความช่วยเหลือเกี่ยวกับรายการเฉพาะ
หากไม่มีการระบุอาร์กิวเมนต์ ระบบจะแสดงเฉพาะตัวเลือกเครื่องมือพื้นฐาน (ไม่ใช่ขั้นสูง)
ค่าที่เป็นไปได้ของ หาเรื่อง คือ:
ยาว
พิมพ์ตัวเลือกเครื่องมือขั้นสูงนอกเหนือจากตัวเลือกเครื่องมือพื้นฐาน
เต็ม
พิมพ์รายการตัวเลือกทั้งหมด รวมถึงตัวเลือกที่ใช้ร่วมกันและส่วนตัวสำหรับตัวเข้ารหัส
ตัวถอดรหัส, ดีลักซ์เซอร์, มูกเซอร์, ฟิลเตอร์ ฯลฯ
ตัวถอดรหัส=ตัวถอดรหัส_ชื่อ
พิมพ์ข้อมูลรายละเอียดเกี่ยวกับตัวถอดรหัสชื่อ ตัวถอดรหัส_ชื่อ. ใช้ -ตัวถอดรหัส
ตัวเลือกเพื่อรับรายการตัวถอดรหัสทั้งหมด
ตัวเข้ารหัส=ตัวเข้ารหัส_ชื่อ
พิมพ์ข้อมูลรายละเอียดเกี่ยวกับตัวเข้ารหัสที่ชื่อ ตัวเข้ารหัส_ชื่อ. ใช้ -ตัวเข้ารหัส
ตัวเลือกเพื่อรับรายการตัวเข้ารหัสทั้งหมด
ดีลักซ์เซอร์=demuxer_name
พิมพ์ข้อมูลโดยละเอียดเกี่ยวกับดีลักซ์เซอร์ที่ชื่อ demuxer_name. ใช้ - รูปแบบ
ตัวเลือกเพื่อรับรายการ demuxers และ muxers ทั้งหมด
มูเซอร์=muxer_name
พิมพ์ข้อมูลรายละเอียดเกี่ยวกับ muxer ชื่อ muxer_name. ใช้ - รูปแบบ
ตัวเลือกเพื่อรับรายการ muxers และ demuxers ทั้งหมด
ตัวกรอง=ตัวกรอง_ชื่อ
พิมพ์ข้อมูลรายละเอียดเกี่ยวกับชื่อตัวกรอง ตัวกรอง_ชื่อ. ใช้ - ฟิลเตอร์
ตัวเลือกเพื่อรับรายการตัวกรองทั้งหมด
-version
แสดงเวอร์ชัน.
- รูปแบบ
แสดงรูปแบบที่ใช้ได้ (รวมถึงอุปกรณ์)
-devices
แสดงอุปกรณ์ที่ใช้ได้
-ตัวแปลงสัญญาณ
แสดงตัวแปลงสัญญาณทั้งหมดที่รู้จักกับ libavcodec
โปรดทราบว่ามีการใช้คำว่า 'ตัวแปลงสัญญาณ' ตลอดทั้งเอกสารนี้เป็นทางลัดสำหรับ
สิ่งที่เรียกว่ารูปแบบบิตสตรีมสื่อถูกต้องกว่า
-ตัวถอดรหัส
แสดงตัวถอดรหัสที่มีอยู่
-ตัวเข้ารหัส
แสดงตัวเข้ารหัสที่มีอยู่ทั้งหมด
-bsfs
แสดงตัวกรองบิตสตรีมที่มีอยู่
-โปรโตคอล
แสดงโปรโตคอลที่ใช้ได้
- ฟิลเตอร์
แสดงตัวกรอง libavfilter ที่มีอยู่
-pix_fmts
แสดงรูปแบบพิกเซลที่ใช้ได้
-sample_fmts
แสดงรูปแบบตัวอย่างที่มี
-เลย์เอาต์
แสดงชื่อช่องและรูปแบบช่องมาตรฐาน
- สี
แสดงชื่อสีที่รู้จัก
- แหล่งที่มา เครื่อง[,ตัวเลือกที่ 1=val1[,ตัวเลือกที่ 2=val2-
แสดงแหล่งที่มาของอุปกรณ์อินพุตที่ตรวจพบโดยอัตโนมัติ อุปกรณ์บางอย่างอาจมีระบบ-
ชื่อแหล่งที่มาที่ขึ้นต่อกันซึ่งไม่สามารถตรวจจับอัตโนมัติได้ รายการที่ส่งคืนไม่สามารถ
ถือว่าสมบูรณ์อยู่เสมอ
ffmpeg - แหล่งที่มาของพัลส์, เซิร์ฟเวอร์ = 192.168.0.4
- ซิงค์ เครื่อง[,ตัวเลือกที่ 1=val1[,ตัวเลือกที่ 2=val2-
แสดง sinks ที่ตรวจพบอัตโนมัติของอุปกรณ์ส่งออก อุปกรณ์บางอย่างอาจมีระบบ-
ชื่อซิงก์ที่ขึ้นต่อกันซึ่งไม่สามารถตรวจจับอัตโนมัติได้ ไม่สามารถถือว่ารายการส่งคืนได้
ให้สมบูรณ์อยู่เสมอ
ffmpeg - จมชีพจรเซิร์ฟเวอร์ = 192.168.0.4
-ระดับล็อก [ซ้ำ+]ระดับการบันทึก | -v [ซ้ำ+]ระดับการบันทึก
ตั้งค่าระดับการบันทึกที่ใช้โดยไลบรารี เติม "repeat+" แสดงว่าซ้ำ
ไม่ควรบีบอัดเอาต์พุตบันทึกไปที่บรรทัดแรกและ "ข้อความสุดท้ายซ้ำ n
ครั้ง" บรรทัดจะละเว้น "ซ้ำ" ยังใช้คนเดียวได้ หากใช้ "ซ้ำ"
เพียงอย่างเดียว และไม่ได้ตั้งค่าระดับบันทึกไว้ล่วงหน้า ระบบจะใช้ระดับบันทึกเริ่มต้น ถ้าหลาย
มีการระบุพารามิเตอร์ระดับล็อก การใช้ 'ซ้ำ' จะไม่เปลี่ยนระดับบันทึก ระดับการบันทึก
เป็นสตริงหรือตัวเลขที่มีค่าใดค่าหนึ่งต่อไปนี้:
เงียบ, -8
ไม่แสดงอะไรเลย; เงียบ.
ความหวาดกลัว 0
แสดงเฉพาะข้อผิดพลาดร้ายแรงซึ่งอาจทำให้กระบวนการขัดข้อง เช่น และยืนยัน
ความล้มเหลว. ปัจจุบันนี้ไม่ได้ใช้เพื่ออะไร
ร้ายแรง, 8
แสดงเฉพาะข้อผิดพลาดร้ายแรง สิ่งเหล่านี้เป็นข้อผิดพลาดหลังจากที่กระบวนการไม่สามารถทำได้โดยเด็ดขาด
ดำเนินการต่อหลังจาก
ข้อผิดพลาด 16
แสดงข้อผิดพลาดทั้งหมด รวมถึงข้อผิดพลาดที่สามารถกู้คืนได้
คำเตือน, 24
แสดงคำเตือนและข้อผิดพลาดทั้งหมด ข้อความใด ๆ ที่เกี่ยวข้องกับอาจไม่ถูกต้องหรือ
เหตุการณ์ที่ไม่คาดคิดจะปรากฏขึ้น
ข้อมูล, 32
แสดงข้อความข้อมูลระหว่างการประมวลผล นี่เป็นนอกเหนือจากคำเตือนและ
ข้อผิดพลาด นี่คือค่าเริ่มต้น
ละเอียด, 40
เช่นเดียวกับ "ข้อมูล" ยกเว้น verbose
ดีบัก 48
แสดงทุกอย่าง รวมทั้งข้อมูลการดีบัก
ติดตาม, 56
โดยค่าเริ่มต้น โปรแกรมจะบันทึกไปที่ stderr หากเทอร์มินัลรองรับการระบายสี
ใช้สีเพื่อทำเครื่องหมายข้อผิดพลาดและคำเตือน บันทึกการระบายสีสามารถปิดการใช้งานการตั้งค่า
ตัวแปรสภาพแวดล้อม AV_LOG_FORCE_NOCOLOR or NO_COLORหรือสามารถบังคับตั้งค่า
ตัวแปรสภาพแวดล้อม AV_LOG_FORCE_COLOR. การใช้ตัวแปรสภาพแวดล้อม NO_COLOR
เลิกใช้แล้วและจะถูกลบในเวอร์ชัน FFmpeg ต่อไปนี้
-รายงาน
ดัมพ์บรรทัดคำสั่งแบบเต็มและเอาต์พุตคอนโซลไปยังไฟล์ชื่อ
"โปรแกรม-YYYYMMDD-HHMMSS.log" ในไดเร็กทอรีปัจจุบัน ไฟล์นี้มีประโยชน์สำหรับ
รายงานข้อผิดพลาด นอกจากนี้ยังหมายถึง "-loglevel verbose"
การตั้งค่าตัวแปรสภาพแวดล้อม FFรายงาน ค่าใด ๆ ก็มีผลเช่นเดียวกัน ถ้า
ค่าเป็น ':' - แยกคีย์=ค่าตามลำดับ ตัวเลือกเหล่านี้จะส่งผลต่อรายงาน
ต้องหลีกเลี่ยงค่าตัวเลือกหากมีอักขระพิเศษหรือตัวเลือก
ตัวคั่น ':' (ดูส่วน ``การอ้างอิงและการหลบหนี'' ในคู่มือ ffmpeg-utils)
รู้จักตัวเลือกต่อไปนี้:
ไฟล์
ตั้งชื่อไฟล์ที่จะใช้สำหรับรายงาน %p ถูกขยายเป็นชื่อของ
โปรแกรม %t ถูกขยายเป็นการประทับเวลา "%%" ถูกขยายเป็น "%" ธรรมดา
ระดับ
ตั้งค่าระดับการใช้คำฟุ่มเฟือยบันทึกโดยใช้ค่าตัวเลข (ดู "-loglevel")
ตัวอย่างเช่น หากต้องการส่งออกรายงานไปยังไฟล์ชื่อ ffreport.log โดยใช้ระดับบันทึกของ32
(นามแฝงสำหรับระดับบันทึก "ข้อมูล"):
FFREPORT=file=ffreport.log:level=32 ffmpeg -i อินพุตเอาต์พุต
ข้อผิดพลาดในการแยกวิเคราะห์ตัวแปรสภาพแวดล้อมไม่ร้ายแรง และจะไม่ปรากฏใน
แจ้ง
-hide_banner
ระงับการพิมพ์แบนเนอร์
โดยปกติเครื่องมือ FFmpeg จะแสดงประกาศเกี่ยวกับลิขสิทธิ์ ตัวเลือกบิลด์ และไลบรารี
รุ่น สามารถใช้ตัวเลือกนี้เพื่อระงับการพิมพ์ข้อมูลนี้
-cpuflags ธง (ทั่วโลก)
อนุญาตให้ตั้งค่าและล้างแฟล็กซีพียู ตัวเลือกนี้มีไว้สำหรับการทดสอบ ไม่ได้ใช้
เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่
ffmpeg -cpuflags -Sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...
ค่าสถานะที่เป็นไปได้สำหรับตัวเลือกนี้คือ:
x86
อืม
มม.xext
SSE
SSE2
sse2ช้า
SSE3
sse3ช้า
SSSE3
อะตอม
SSE4.1
SSE4.2
เอวีเอ็กซ์
avx2
XOP
เอฟเอ็มเอ3
เอฟเอ็มเอ4
3d
3dตอนนี้
บีเอ็มไอ1
บีเอ็มไอ2
ซีมอฟ
ARM
armv5te
อาร์มv6
armv6t2
วีเอฟพี
VFPV3
ธาตุนีอ็อน
กำหนด
AAArch64
อาร์มv8
วีเอฟพี
ธาตุนีอ็อน
PowerPC
อัลติเทค
โดยเฉพาะ โปรเซสเซอร์
เพนเทียม 2
เพนเทียม 3
เพนเทียม 4
k6
k62
Athlon
แอธลอนเอ็กซ์พี
k8
-opencl_bench
ตัวเลือกนี้ใช้เพื่อเปรียบเทียบอุปกรณ์ OpenCL ที่มีอยู่ทั้งหมดและพิมพ์ผลลัพธ์
ตัวเลือกนี้ใช้ได้เฉพาะเมื่อมีการคอมไพล์ FFmpeg ด้วย "--enable-opencl"
เมื่อกำหนดค่า FFmpeg ด้วย "--enable-opencl" ตัวเลือกสำหรับ OpenCL . ส่วนกลาง
บริบทถูกกำหนดผ่าน -opencl_options. ดูส่วน "ตัวเลือก OpenCL" ใน ffmpeg-
utils manual สำหรับรายการตัวเลือกที่รองรับทั้งหมด ท่ามกลางตัวเลือกอื่นๆ เหล่านี้
รวมถึงความสามารถในการเลือกแพลตฟอร์มและอุปกรณ์เฉพาะเพื่อเรียกใช้รหัส OpenCL
บน. โดยค่าเริ่มต้น FFmpeg จะทำงานบนอุปกรณ์แรกของแพลตฟอร์มแรก ในขณะที่
ตัวเลือกสำหรับบริบท OpenCL ทั่วโลกให้ความยืดหยุ่นแก่ผู้ใช้ในการเลือก
อุปกรณ์ OpenCL ที่พวกเขาเลือก ผู้ใช้ส่วนใหญ่อาจต้องการเลือกอุปกรณ์ที่เร็วที่สุด
อุปกรณ์ OpenCL สำหรับระบบของพวกเขา
ตัวเลือกนี้ช่วยในการเลือกการกำหนดค่าที่มีประสิทธิภาพสูงสุดโดยการระบุ
อุปกรณ์ที่เหมาะสมกับระบบของผู้ใช้ การวัดประสิทธิภาพในตัวทำงานบนทุก
อุปกรณ์ OpenCL และประสิทธิภาพจะถูกวัดสำหรับแต่ละอุปกรณ์ อุปกรณ์ใน
รายการผลลัพธ์จะถูกจัดเรียงตามประสิทธิภาพด้วยอุปกรณ์ที่เร็วที่สุดที่ระบุไว้
แรก. ผู้ใช้สามารถเรียกใช้ ffmpeg ใช้เครื่องถือว่ามากที่สุด
เหมาะสมผ่าน -opencl_options เพื่อให้ได้ประสิทธิภาพที่ดีที่สุดสำหรับ OpenCL
รหัสเร่ง
การใช้งานทั่วไปในการใช้อุปกรณ์ OpenCL ที่เร็วที่สุดมีขั้นตอนดังต่อไปนี้
เรียกใช้คำสั่ง:
ffmpeg -opencl_bench
จด ID แพลตฟอร์ม (ปิด) และรหัสอุปกรณ์ (ดิดซ์) ของเครื่องแรกคืออุปกรณ์ที่เร็วที่สุด
ในรายการ เลือกแพลตฟอร์มและอุปกรณ์โดยใช้คำสั่ง:
ffmpeg -opencl_options platform_idx= :device_idx= ...
-opencl_options ตัวเลือก (ทั่วโลก)
ตั้งค่าตัวเลือกสภาพแวดล้อม OpenCL ตัวเลือกนี้ใช้ได้เฉพาะเมื่อ FFmpeg ได้รับ
คอมไพล์ด้วย "--enable-opencl"
ตัวเลือก ต้องเป็นรายการของ สำคัญ=ความคุ้มค่า คู่ตัวเลือกคั่นด้วย ':' ดู ``OpenCL
ส่วนตัวเลือกในคู่มือ ffmpeg-utils สำหรับรายการตัวเลือกที่รองรับ
AVOตัวเลือก
ตัวเลือกเหล่านี้มีให้โดย libavformat, libavdevice และ libavcodec . โดยตรง
ห้องสมุด หากต้องการดูรายการ AVOptions ที่ใช้ได้ ให้ใช้ปุ่ม -ช่วยด้วย ตัวเลือก. พวกเขาคือ
แบ่งออกเป็นสองประเภท:
ทั่วไป
ตัวเลือกเหล่านี้สามารถตั้งค่าได้สำหรับคอนเทนเนอร์ ตัวแปลงสัญญาณ หรืออุปกรณ์ใดๆ ตัวเลือกทั่วไปคือ
อยู่ภายใต้ตัวเลือก AVFormatContext สำหรับคอนเทนเนอร์/อุปกรณ์ และภายใต้ AVCodecContext
ตัวเลือกสำหรับตัวแปลงสัญญาณ
ส่วนตัว
ตัวเลือกเหล่านี้เฉพาะสำหรับคอนเทนเนอร์ อุปกรณ์ หรือตัวแปลงสัญญาณที่กำหนด ตัวเลือกส่วนตัว
อยู่ภายใต้คอนเทนเนอร์/อุปกรณ์/ตัวแปลงสัญญาณที่เกี่ยวข้อง
ตัวอย่างเช่น หากต้องการเขียนส่วนหัว ID3v2.3 แทนค่าเริ่มต้น ID3v2.4 ลงในไฟล์ MP3 ให้ใช้
id3v2_version ตัวเลือกส่วนตัวของ MP3 muxer:
ffmpeg -i input.flac -id3v2_version 3 ออก.mp3
AVOptions ตัวแปลงสัญญาณทั้งหมดเป็นแบบต่อสตรีม ดังนั้นควรแนบตัวระบุสตรีมเข้ากับ
พวกเขา
หมายเหตุ: -nooption ไวยากรณ์ไม่สามารถใช้กับ AVOptions บูลีน, use ตัวเลือกที่ 0/ตัวเลือกที่ 1.
หมายเหตุ: วิธีการแบบเก่าที่ไม่มีเอกสารในการระบุ AVOptions ต่อสตรีมโดยการเติม v/a/s เป็น
ขณะนี้ชื่อตัวเลือกล้าสมัยและจะถูกลบออกในไม่ช้า
หลัก ตัวเลือก
-f เอฟเอ็มที (อินพุต / เอาต์พุต)
บังคับรูปแบบไฟล์อินพุตหรือเอาต์พุต โดยปกติรูปแบบจะตรวจพบโดยอัตโนมัติสำหรับอินพุต
ไฟล์และเดาจากนามสกุลไฟล์สำหรับไฟล์ที่ส่งออก ดังนั้นตัวเลือกนี้จึงไม่ใช่
จำเป็นในกรณีส่วนใหญ่
-i ชื่อไฟล์ (อินพุต)
ใส่ชื่อไฟล์
-y (ทั่วโลก)
เขียนทับไฟล์เอาต์พุตโดยไม่ต้องถาม
-n (ทั่วโลก)
อย่าเขียนทับไฟล์เอาต์พุต และออกทันทีหากไฟล์เอาต์พุตที่ระบุอยู่แล้ว
ที่มีอยู่
-ค[:stream_specifier] ตัวแปลงสัญญาณ (อินพุต/เอาต์พุตต่อสตรีม)
-โคเดก[:stream_specifier] ตัวแปลงสัญญาณ (อินพุต/เอาต์พุตต่อสตรีม)
เลือกตัวเข้ารหัส (เมื่อใช้ก่อนไฟล์เอาต์พุต) หรือตัวถอดรหัส (เมื่อใช้ก่อน an
ไฟล์อินพุต) สำหรับสตรีมหนึ่งรายการขึ้นไป ตัวแปลงสัญญาณ เป็นชื่อของตัวถอดรหัส/ตัวเข้ารหัสหรือ a
ค่าพิเศษ "คัดลอก" (เอาต์พุตเท่านั้น) เพื่อระบุว่าสตรีมจะไม่ถูกทำซ้ำ
เข้ารหัส
ตัวอย่างเช่น
ffmpeg -i INPUT -map 0 -c:v libx264 -c:a คัดลอก OUTPUT
เข้ารหัสสตรีมวิดีโอทั้งหมดด้วย libx264 และคัดลอกสตรีมเสียงทั้งหมด
สำหรับแต่ละสตรีม ตัวเลือก "c" ที่ตรงกันล่าสุดจะถูกนำไปใช้ ดังนั้น
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis เอาต์พุต
จะคัดลอกสตรีมทั้งหมดยกเว้นวิดีโอที่สองซึ่งจะถูกเข้ารหัสด้วย libx264
และเสียงที่ 138 ซึ่งจะถูกเข้ารหัสด้วย libvorbis
-t ระยะเวลา (อินพุต / เอาต์พุต)
เมื่อใช้เป็นตัวเลือกอินพุต (ก่อน "-i") ให้จำกัด ระยะเวลา ของข้อมูลที่อ่านได้จาก
ไฟล์อินพุต
เมื่อใช้เป็นตัวเลือกเอาต์พุต (ก่อนชื่อไฟล์เอาต์พุต) ให้หยุดเขียนเอาต์พุต
หลังจากระยะเวลาถึง ระยะเวลา.
ระยะเวลา ต้องเป็นข้อกำหนดระยะเวลาดู เวลา ระยะเวลา ส่วน in
ffmpeg-ยูทิลิตี้(1) คู่มือ.
-to และ -t ไม่เกิดร่วมกันและ -t มีลำดับความสำคัญ
-ถึง ตำแหน่ง (เอาท์พุต)
หยุดเขียนผลลัพธ์ที่ ตำแหน่ง. ตำแหน่ง ต้องเป็นข้อกำหนดระยะเวลา
เห็น เวลา ระยะเวลา ส่วน in ffmpeg-ยูทิลิตี้(1) คู่มือ.
-to และ -t ไม่เกิดร่วมกันและ -t มีลำดับความสำคัญ
-fs จำกัด_ขนาด (เอาท์พุต)
ตั้งค่าขีดจำกัดขนาดไฟล์ โดยแสดงเป็นไบต์
-NS ตำแหน่ง (อินพุต / เอาต์พุต)
เมื่อใช้เป็นตัวเลือกอินพุต (ก่อน "-i") ให้ค้นหาไฟล์อินพุตนี้ไปยัง ตำแหน่ง. บันทึก
ซึ่งในรูปแบบส่วนใหญ่ไม่สามารถค้นหาได้อย่างแน่นอน ดังนั้น ffmpeg จะแสวงหา
จุดค้นหาที่ใกล้ที่สุดก่อน ตำแหน่ง. เมื่อแปลงรหัสและ -แม่นยำ_แสวงหา เปิดใช้งาน
(ค่าเริ่มต้น) ส่วนพิเศษนี้ระหว่างจุดค้นหาและ ตำแหน่ง จะถูกถอดรหัส
และทิ้ง เมื่อทำการคัดลอกสตรีมหรือเมื่อ -noaccurate_seek ใช้จะเป็น
เก็บรักษาไว้
เมื่อใช้เป็นตัวเลือกเอาต์พุต (ก่อนชื่อไฟล์เอาต์พุต) จะถอดรหัสแต่ทิ้งอินพุต
จนกว่าจะถึงเวลา ตำแหน่ง.
ตำแหน่ง ต้องเป็นข้อกำหนดระยะเวลาดู เวลา ระยะเวลา ส่วน in
ffmpeg-ยูทิลิตี้(1) คู่มือ.
-sseof ตำแหน่ง (อินพุต / เอาต์พุต)
เช่นเดียวกับตัวเลือก "-ss" แต่สัมพันธ์กับ "จุดสิ้นสุดของไฟล์" นั่นคือค่าลบคือ
ก่อนหน้าในไฟล์ 0 อยู่ที่ EOF
-มันออฟเซ็ต ชดเชย (อินพุต)
ตั้งค่าการชดเชยเวลาอินพุต
ชดเชย ต้องเป็นข้อกำหนดระยะเวลาดู เวลา ระยะเวลา ส่วน in
ffmpeg-ยูทิลิตี้(1) คู่มือ.
ออฟเซ็ตถูกเพิ่มเข้ากับการประทับเวลาของไฟล์อินพุต การระบุออฟเซ็ตบวก
หมายความว่าสตรีมที่เกี่ยวข้องล่าช้าตามระยะเวลาที่ระบุใน
ชดเชย.
-ประทับเวลา ข้อมูล (เอาท์พุต)
ตั้งเวลาบันทึกในคอนเทนเนอร์
ข้อมูล ต้องเป็นการกำหนดวันที่ ดู วันที่ ส่วน in ffmpeg-ยูทิลิตี้(1) คู่มือ.
-ข้อมูลเมตา[:metadata_specifier] สำคัญ=ความคุ้มค่า (เอาต์พุตต่อเมตาดาต้า)
ตั้งค่าคู่คีย์/ค่าข้อมูลเมตา
ตัวเลือก metadata_specifier อาจกำหนดให้ตั้งค่าข้อมูลเมตาในสตรีมหรือบทต่างๆ
ดูเอกสารประกอบ "-map_metadata" สำหรับรายละเอียด
ตัวเลือกนี้จะแทนที่ชุดข้อมูลเมตาด้วย "-map_metadata" นอกจากนี้ยังสามารถลบ
ข้อมูลเมตาโดยใช้ค่าว่าง
ตัวอย่างเช่น สำหรับการตั้งชื่อในไฟล์เอาต์พุต:
ffmpeg -i in.avi -metadata title="ชื่อของฉัน" out.flv
ในการตั้งค่าภาษาของสตรีมเสียงแรก:
ffmpeg -i INPUT -metadata:s:a:0 ภาษา=eng OUTPUT
- เป้าหมาย ชนิด (เอาท์พุต)
ระบุประเภทไฟล์เป้าหมาย ("vcd", "svcd", "dvd", "dv", "dv50") ชนิด อาจมีคำนำหน้า
ด้วย "pal-", "ntsc-" หรือ "film-" เพื่อใช้มาตรฐานที่สอดคล้องกัน ทุกรูปแบบ
ตัวเลือก (บิตเรต ตัวแปลงสัญญาณ ขนาดบัฟเฟอร์) จะถูกตั้งค่าโดยอัตโนมัติ คุณเพียงแค่พิมพ์:
ffmpeg -i myfile.avi - เป้าหมาย vcd /tmp/vcd.mpg
อย่างไรก็ตาม คุณสามารถระบุตัวเลือกเพิ่มเติมได้ตราบใดที่คุณรู้ว่าตัวเลือกเหล่านั้นไม่ระบุ
ขัดแย้งกับมาตรฐาน เช่น
ffmpeg -i myfile.avi - เป้าหมาย vcd -bf 2 /tmp/vcd.mpg
-dframes จำนวน (เอาท์พุต)
กำหนดจำนวนเฟรมข้อมูลที่จะส่งออก นี่คือนามแฝงสำหรับ "-frames:d"
-เฟรม[:stream_specifier] จำนวนเฟรม (เอาต์พุตต่อสตรีม)
หยุดเขียนถึงสตรีมหลังจาก จำนวนเฟรม เฟรม
-NS[:stream_specifier] q (เอาต์พุตต่อสตรีม)
-qscale[:stream_specifier] q (เอาต์พุตต่อสตรีม)
ใช้มาตราส่วนคุณภาพคงที่ (VBR) ความหมายของ q/คิวสเกล ขึ้นอยู่กับตัวแปลงสัญญาณ ถ้า คิวสเกล
ใช้โดยไม่มี a stream_specifier จากนั้นจะใช้กับสตรีมวิดีโอเท่านั้น นี่คือ
เพื่อรักษาความเข้ากันได้กับพฤติกรรมก่อนหน้านี้และตามการระบุตัวแปลงสัญญาณเดียวกัน
ค่าเฉพาะของตัวแปลงสัญญาณ 2 ตัวที่แตกต่างกันซึ่งเป็นเสียงและวิดีโอโดยทั่วไปไม่ใช่สิ่งที่เป็น
ตั้งใจไว้เมื่อไม่มีการใช้ stream_specifier
-กรอง[:stream_specifier] ตัวกรองกราฟ (เอาต์พุตต่อสตรีม)
สร้างกราฟตัวกรองที่ระบุโดย ตัวกรองกราฟ และใช้เพื่อกรองกระแส
ตัวกรองกราฟ เป็นคำอธิบายของ filtergraph เพื่อนำไปใช้กับสตรีมและต้องมี
อินพุตเดียวและเอาต์พุตเดียวของสตรีมประเภทเดียวกัน ในกราฟตัวกรอง
อินพุตเชื่อมโยงกับป้ายกำกับ "ใน" และเอาต์พุตไปยังป้ายกำกับ "ออก" ดู
คู่มือ ffmpeg-filters สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ filtergraph
ดู -filter_complex ตัวเลือก หากคุณต้องการสร้าง filtergraphs ที่มีหลายอินพุต
และ/หรือเอาท์พุต
-filter_script[:stream_specifier] ชื่อไฟล์ (เอาต์พุตต่อสตรีม)
ตัวเลือกนี้คล้ายกับ -กรองความแตกต่างเพียงอย่างเดียวคืออาร์กิวเมนต์ของมันคือ
ชื่อของไฟล์ที่จะอ่านคำอธิบายตัวกรองกราฟ
-ก่อน[:stream_specifier] ที่ตั้งไว้ล่วงหน้า_ชื่อ (เอาต์พุตต่อสตรีม)
ระบุพรีเซ็ตสำหรับสตรีมที่ตรงกัน
-สถิติ (ทั่วโลก)
พิมพ์ความคืบหน้า/สถิติการเข้ารหัส มันเปิดอยู่โดยค่าเริ่มต้น เพื่อปิดการใช้งานอย่างชัดแจ้งคุณ
ต้องระบุ "-nostats"
-ความคืบหน้า URL (ทั่วโลก)
ส่งข้อมูลความคืบหน้าที่เป็นมิตรกับโปรแกรมไปที่ URL.
ข้อมูลความคืบหน้าจะถูกเขียนประมาณทุกวินาทีและในตอนท้ายของ
กระบวนการเข้ารหัส มันทำจาก "สำคัญ=ความคุ้มค่า" เส้น. สำคัญ ประกอบด้วยตัวอักษรและตัวเลขเท่านั้น
ตัวอักษร คีย์สุดท้ายของลำดับข้อมูลความคืบหน้าคือ "ความคืบหน้า" เสมอ
-stdin
เปิดใช้งานการโต้ตอบกับอินพุตมาตรฐาน เปิดโดยค่าเริ่มต้นเว้นแต่จะใช้อินพุตมาตรฐานเป็น
อินพุต หากต้องการปิดใช้งานการโต้ตอบอย่างชัดเจน คุณต้องระบุ "-nostdin"
การปิดใช้งานการโต้ตอบกับอินพุตมาตรฐานจะมีประโยชน์ ตัวอย่างเช่น หาก ffmpeg อยู่ใน
กลุ่มกระบวนการเบื้องหลัง ผลลัพธ์เดียวกันสามารถทำได้ด้วย "ffmpeg ...
/dev/null" แต่ต้องใช้เชลล์
-debug_ts (ทั่วโลก)
พิมพ์ข้อมูลการประทับเวลา มันถูกปิดโดยค่าเริ่มต้น ตัวเลือกนี้มีประโยชน์มากที่สุดสำหรับ
วัตถุประสงค์ในการทดสอบและแก้จุดบกพร่อง และรูปแบบผลลัพธ์อาจเปลี่ยนจากเวอร์ชันหนึ่งเป็น
อื่นดังนั้นจึงไม่ควรใช้สคริปต์พกพา
ดูเพิ่มเติมที่ตัวเลือก "-fdebug ts"
-แนบ ชื่อไฟล์ (เอาท์พุต)
เพิ่มสิ่งที่แนบมากับไฟล์ที่ส่งออก รองรับรูปแบบบางรูปแบบเช่น Matroska
สำหรับเช่นแบบอักษรที่ใช้ในการแสดงคำบรรยาย เอกสารแนบจะถูกนำไปใช้เป็นการเฉพาะ
ประเภทของสตรีม ดังนั้นตัวเลือกนี้จะเพิ่มสตรีมใหม่ให้กับไฟล์ มันเป็นไปได้
เพื่อใช้ตัวเลือกต่อสตรีมในสตรีมนี้ตามปกติ สร้างสตรีมไฟล์แนบแล้ว
ด้วยตัวเลือกนี้จะถูกสร้างขึ้นหลังจากสตรีมอื่น ๆ ทั้งหมด (เช่นที่สร้างด้วย
"-map" หรือการแมปอัตโนมัติ)
โปรดทราบว่าสำหรับ Matroska คุณต้องตั้งค่าแท็กข้อมูลเมตาของ mimetype ด้วย:
ffmpeg -i INPUT - แนบ DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
(สมมติว่าสตรีมไฟล์แนบจะเป็นไฟล์ที่สามในไฟล์เอาต์พุต)
-dump_attachment[:stream_specifier] ชื่อไฟล์ (อินพุตต่อสตรีม)
แยกสตรีมไฟล์แนบที่ตรงกันลงในไฟล์ชื่อ ชื่อไฟล์. ถ้า ชื่อไฟล์ is
ว่าง จากนั้นจะใช้ค่าของแท็กข้อมูลเมตา "ชื่อไฟล์"
เช่น การแยกไฟล์แนบแรกไปยังไฟล์ชื่อ 'out.ttf':
ffmpeg -dump_attachment:t:0 out.ttf -i อินพุต
วิธีแยกไฟล์แนบทั้งหมดไปยังไฟล์ที่กำหนดโดยแท็ก "ชื่อไฟล์":
ffmpeg -dump_attachment:t "" -i INPUT
หมายเหตุทางเทคนิค -- ไฟล์แนบจะถูกนำไปใช้เป็น codec extradata ดังนั้นตัวเลือกนี้สามารถ
ใช้เพื่อดึงข้อมูลพิเศษจากสตรีมใด ๆ ไม่ใช่แค่ไฟล์แนบ
-ไม่หมุนอัตโนมัติ
ปิดใช้งานการหมุนวิดีโอโดยอัตโนมัติตามข้อมูลเมตาของไฟล์
วีดีโอ Options
-vframes จำนวน (เอาท์พุต)
กำหนดจำนวนเฟรมวิดีโอที่จะส่งออก นี่คือนามแฝงสำหรับ "-frames:v"
-NS[:stream_specifier] เฟรมต่อวินาที (อินพุต/เอาต์พุตต่อสตรีม)
ตั้งค่าอัตราเฟรม (ค่า Hz เศษส่วนหรือตัวย่อ)
เป็นตัวเลือกอินพุต ละเว้นการประทับเวลาใดๆ ที่จัดเก็บไว้ในไฟล์ และสร้างแทน
การประทับเวลาโดยสมมติว่าอัตราเฟรมคงที่ เฟรมต่อวินาที. นี้ไม่เหมือนกับ -เฟรมเรท
ตัวเลือกที่ใช้สำหรับรูปแบบอินพุตบางรูปแบบเช่น image2 หรือ v4l2 (เคยเป็นใน
FFmpeg เวอร์ชันเก่า) หากมีข้อสงสัยให้ใช้ -เฟรมเรท แทนตัวเลือกอินพุต -r.
เป็นตัวเลือกเอาต์พุต ทำซ้ำหรือวางเฟรมอินพุตเพื่อให้ได้เฟรมเอาต์พุตคงที่
อัตรา เฟรมต่อวินาที.
-NS[:stream_specifier] ขนาด (อินพุต/เอาต์พุตต่อสตรีม)
กำหนดขนาดเฟรม
ตัวเลือกนี้เป็นทางลัดสำหรับ วิดีโอ_ขนาด ตัวเลือกส่วนตัวได้รับการยอมรับ
โดย demuxers บางตัวซึ่งขนาดเฟรมไม่ได้ถูกเก็บไว้ในไฟล์หรือ is
กำหนดค่าได้ - เช่น วิดีโอดิบหรือตัวจับวิดีโอ
ตัวเลือกนี้จะแทรกตัวกรองวิดีโอ "มาตราส่วน" ไปที่ ปลาย ของ
ตัวกรองที่สอดคล้องกัน โปรดใช้ตัวกรอง "มาตราส่วน" โดยตรงเพื่อแทรกที่
จุดเริ่มต้นหรือที่อื่น
รูปแบบคือ WxH (ค่าเริ่มต้น - เหมือนกับแหล่งที่มา)
-ด้าน[:stream_specifier] แง่มุม (เอาต์พุตต่อสตรีม)
ตั้งค่าอัตราส่วนการแสดงผลวิดีโอที่ระบุโดย แง่มุม.
แง่มุม อาจเป็นสตริงตัวเลขทศนิยมหรือสตริงของรูปแบบ NUM:วันที่นี่มี
NUM และ วัน เป็นตัวเศษและส่วนของอัตราส่วนกว้างยาว ตัวอย่างเช่น "4:3"
"16:9", "1.3333" และ "1.7777" เป็นค่าอาร์กิวเมนต์ที่ถูกต้อง
หากใช้ร่วมกับ -vcodec สำเนา, มันจะส่งผลต่ออัตราส่วนภาพที่เก็บไว้ที่
ระดับคอนเทนเนอร์ แต่ไม่ใช่อัตราส่วนภาพที่จัดเก็บไว้ในเฟรมที่เข้ารหัส หากมี
-vn (เอาท์พุต)
ปิดใช้งานการบันทึกวิดีโอ
-vcodec ตัวแปลงสัญญาณ (เอาท์พุต)
ตั้งค่าตัวแปลงสัญญาณวิดีโอ นี่คือนามแฝงสำหรับ "-codec:v"
-ผ่าน[:stream_specifier] n (เอาต์พุตต่อสตรีม)
เลือกหมายเลขรหัสผ่าน (1 หรือ 2) ใช้สำหรับเข้ารหัสวิดีโอสองรอบ NS
สถิติของวิดีโอจะถูกบันทึกในรอบแรกลงในไฟล์บันทึก (ดูเพิ่มเติมที่
ตัวเลือก -passlogfile) และในรอบที่สองนั้นไฟล์บันทึกที่ใช้เพื่อสร้าง
วิดีโอที่บิตเรตที่ร้องขอที่แน่นอน เมื่อผ่าน 1 คุณอาจปิดการใช้งานเสียงและ
ตั้งค่าเอาต์พุตเป็น null ตัวอย่างสำหรับ Windows และ Unix:
ffmpeg -i foo.mov -c:v libxvid -ผ่าน 1 -an -f rawvideo -y NUL
ffmpeg -i foo.mov -c:v libxvid -ผ่าน 1 -an -f rawvideo -y /dev/null
-passlogfile[:stream_specifier] อุปสรรค (เอาต์พุตต่อสตรีม)
ตั้งค่าคำนำหน้าชื่อไฟล์บันทึกสองรอบเป็น อุปสรรค, คำนำหน้าชื่อไฟล์เริ่มต้นคือ
``ffmpeg2pass'' ชื่อไฟล์ที่สมบูรณ์จะเป็น คำนำหน้า-N.logโดยที่ N คือตัวเลข
เฉพาะสำหรับกระแสเอาต์พุต
-vf ตัวกรองกราฟ (เอาท์พุต)
สร้างกราฟตัวกรองที่ระบุโดย ตัวกรองกราฟ และใช้เพื่อกรองกระแส
นี่คือนามแฝงสำหรับ "-filter:v" โปรดดูที่ -กรอง ตัวเลือก.
ค้นหาระดับสูง วีดีโอ ตัวเลือก
-pix_fmt[:stream_specifier] รูป (อินพุต/เอาต์พุตต่อสตรีม)
กำหนดรูปแบบพิกเซล ใช้ "-pix_fmts" เพื่อแสดงรูปแบบพิกเซลที่รองรับทั้งหมด ถ้า
ไม่สามารถเลือกรูปแบบพิกเซลที่เลือกได้ ffmpeg จะพิมพ์คำเตือนและเลือก
รูปแบบพิกเซลที่ดีที่สุดที่รองรับโดยตัวเข้ารหัส ถ้า pix_fmt นำหน้าด้วย "+", ffmpeg
จะออกโดยมีข้อผิดพลาดหากไม่สามารถเลือกรูปแบบพิกเซลที่ร้องขอได้และ
การแปลงอัตโนมัติภายในตัวกรองกราฟถูกปิดใช้งาน ถ้า pix_fmt เป็น "+" ตัวเดียว
ffmpeg เลือกรูปแบบพิกเซลเดียวกันกับอินพุต (หรือเอาต์พุตกราฟ) และอัตโนมัติ
การแปลงถูกปิดใช้งาน
-sws_flags ธง (อินพุต / เอาต์พุต)
ตั้งค่าสถานะ SwScaler
-vdt n
ยกเลิกเกณฑ์
-rc_override[:stream_specifier] แทนที่ (เอาต์พุตต่อสตรีม)
แทนที่การควบคุมอัตราสำหรับช่วงเวลาเฉพาะ จัดรูปแบบเป็นรายการ "int,int,int"
คั่นด้วยเครื่องหมายทับ ค่าแรกสองค่าคือหมายเลขเฟรมเริ่มต้นและสิ้นสุด ค่าสุดท้าย
หนึ่งคือ quantizer ที่จะใช้ถ้าเป็นบวกหรือปัจจัยคุณภาพถ้าเป็นลบ
-อิลเม่
บังคับให้รองรับการสอดประสานในตัวเข้ารหัส (เฉพาะ MPEG-2 และ MPEG-4 เท่านั้น) ใช้ตัวเลือกนี้ if
ไฟล์อินพุตของคุณเป็นแบบอินเทอร์เลซและคุณต้องการคงรูปแบบอินเทอร์เลซไว้ขั้นต่ำ
ความสูญเสีย ทางเลือกคือ deinterlace อินพุตสตรีมด้วย -ดีอินเทอร์เลซแต่
การดีอินเทอร์เลซทำให้เกิดการสูญเสีย
-psnr
คำนวณ PSNR ของเฟรมที่บีบอัด
-vstats
ถ่ายโอนข้อมูลสถิติการเข้ารหัสวิดีโอไปที่ vsstats_HHMMSS.log.
-vstats_file ไฟล์
ถ่ายโอนข้อมูลสถิติการเข้ารหัสวิดีโอไปที่ ไฟล์.
-สูงสุด[:stream_specifier] n (เอาต์พุตต่อสตรีม)
top=1/bottom=0/auto=-1 ช่องแรก
-กระแสตรง ความแม่นยำ
Intra_dc_precision
-vtag สี่cc/tag (เอาท์พุต)
บังคับแท็กวิดีโอ/fourcc. นี่คือนามแฝงสำหรับ "-tag:v"
-qphist (ทั่วโลก)
แสดงฮิสโตแกรมของ QP
-vbsf bitstream_filter
เลิกใช้ see -bsf
-บังคับ_key_frames[:stream_specifier] เวลา[,เวลา... ] (เอาต์พุตต่อสตรีม)
-บังคับ_key_frames[:stream_specifier] ประสบการณ์:ด่วน (เอาต์พุตต่อสตรีม)
บังคับคีย์เฟรมตามการประทับเวลาที่ระบุ แม่นยำยิ่งขึ้นที่เฟรมแรกหลัง
แต่ละครั้งตามเวลาที่กำหนด
หากอาร์กิวเมนต์นำหน้าด้วย "expr:" สตริง ด่วน ถูกตีความเหมือน an
นิพจน์และถูกประเมินสำหรับแต่ละเฟรม คีย์เฟรมถูกบังคับในกรณีที่
การประเมินไม่เป็นศูนย์
ถ้าครั้งหนึ่งคือ ""บท"[รูปสามเหลี่ยม]" ได้ขยายไปสู่ยุคของ
จุดเริ่มต้นของทุกบทในไฟล์ เลื่อนโดย รูปสามเหลี่ยมแสดงเป็นเวลาใน
วินาที ตัวเลือกนี้จะมีประโยชน์เพื่อให้แน่ใจว่ามีจุดค้นหาอยู่ที่a
เครื่องหมายบทหรือตำแหน่งอื่นใดที่กำหนดไว้ในไฟล์ที่ส่งออก
ตัวอย่างเช่น หากต้องการแทรกคีย์เฟรมที่ 5 นาที บวกคีย์เฟรม 0.1 วินาทีก่อน
จุดเริ่มต้นของทุกบท:
-force_key_frames 0:05:00,ตอน-0.1
นิพจน์ใน ด่วน สามารถมีค่าคงที่ต่อไปนี้:
n จำนวนเฟรมที่ประมวลผลปัจจุบัน เริ่มต้นจาก 0
n_บังคับ
จำนวนเฟรมบังคับ
ก่อนหน้า_บังคับ_n
จำนวนของเฟรมที่บังคับก่อนหน้า มันคือ "NAN" เมื่อไม่มีการบังคับเฟรมหลัก
ยัง
ก่อนหน้า_บังคับ_t
เวลาของเฟรมที่บังคับก่อนหน้า มันคือ "NAN" เมื่อยังไม่มีการบังคับเฟรมหลัก
t เวลาของเฟรมที่ประมวลผลในปัจจุบัน
ตัวอย่างเช่น หากต้องการบังคับคีย์เฟรมทุกๆ 5 วินาที คุณสามารถระบุ:
-force_key_frames expr:gte(t,n_forced*5)
ในการบังคับคีย์เฟรม 5 วินาทีหลังจากเวลาของการบังคับครั้งสุดท้ายโดยเริ่มจาก
วินาทีที่ 13:
-force_key_frames expr:if(ไม่ใช่(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
โปรดทราบว่าการบังคับคีย์เฟรมมากเกินไปจะเป็นอันตรายต่ออัลกอริทึม Lookahead ของ
ตัวเข้ารหัสบางตัว: การใช้ตัวเลือก fixed-GOP หรือคล้ายกันจะมีประสิทธิภาพมากกว่า
-copyinkf[:stream_specifier] (เอาต์พุตต่อสตรีม)
เมื่อทำการคัดลอกสตรีม ให้คัดลอกเฟรมที่ไม่ใช่คีย์ซึ่งพบที่จุดเริ่มต้นด้วย
-hwacel[:stream_specifier] ฮวาเซล (อินพุตต่อสตรีม)
ใช้การเร่งด้วยฮาร์ดแวร์เพื่อถอดรหัสสตรีมที่ตรงกัน ค่าที่อนุญาตของ
ฮวาเซล คือ:
ไม่มี
อย่าใช้การเร่งด้วยฮาร์ดแวร์ใดๆ (ค่าเริ่มต้น)
รถยนต์
เลือกวิธีการเร่งฮาร์ดแวร์โดยอัตโนมัติ
ชีวิต ใช้การเร่งด้วยฮาร์ดแวร์ Apple VDA
วดีโป
ใช้ VDPAU (Video Decode and Presentation API สำหรับ Unix) การเร่งฮาร์ดแวร์
dxva2
ใช้การเร่งด้วยฮาร์ดแวร์ DXVA2 (DirectX Video Acceleration)
ตัวเลือกนี้ไม่มีผลหาก hwacel ที่เลือกไม่พร้อมใช้งานหรือไม่รองรับโดย
ตัวถอดรหัสที่เลือก
โปรดทราบว่าวิธีการเร่งความเร็วส่วนใหญ่มีไว้สำหรับการเล่นและจะไม่เร็วขึ้น
มากกว่าการถอดรหัสซอฟต์แวร์บนซีพียูสมัยใหม่ นอกจากนี้ ffmpeg มักจะต้องคัดลอก
เฟรมถอดรหัสจากหน่วยความจำ GPU เข้าสู่หน่วยความจำระบบ ส่งผลให้
การสูญเสียประสิทธิภาพ ตัวเลือกนี้จึงมีประโยชน์สำหรับการทดสอบเป็นหลัก
-hwacel_device[:stream_specifier] hwacel_device (อินพุตต่อสตรีม)
เลือกอุปกรณ์ที่จะใช้สำหรับการเร่งฮาร์ดแวร์
ตัวเลือกนี้เหมาะสมเมื่อ -hwacel ระบุตัวเลือกด้วย มันแน่นอน
ความหมายขึ้นอยู่กับวิธีการเร่งฮาร์ดแวร์เฉพาะที่เลือก
วดีโป
สำหรับ VDPAU ตัวเลือกนี้จะระบุจอแสดงผล/หน้าจอ X11 ที่จะใช้ หากตัวเลือกนี้คือ
ไม่ได้ระบุมูลค่าของ การแสดงผล ใช้ตัวแปรสภาพแวดล้อม
dxva2
สำหรับ DXVA2 ตัวเลือกนี้ควรมีหมายเลขของการ์ดแสดงผลที่จะใช้
หากไม่ได้ระบุตัวเลือกนี้ อะแดปเตอร์เริ่มต้นจะถูกใช้
-hwacels
แสดงรายการวิธีการเร่งด้วยฮาร์ดแวร์ทั้งหมดที่รองรับใน ffmpeg บิวด์นี้
เสียง Options
-เฟรม จำนวน (เอาท์พุต)
กำหนดจำนวนเฟรมเสียงที่จะส่งออก นี่คือนามแฝงสำหรับ "-frames:a"
-ar[:stream_specifier] ความถี่ (อินพุต/เอาต์พุตต่อสตรีม)
ตั้งค่าความถี่สุ่มตัวอย่างเสียง สำหรับเอาต์พุตสตรีม จะถูกตั้งค่าเริ่มต้นเป็น
ความถี่ของกระแสอินพุตที่สอดคล้องกัน สำหรับอินพุตสตรีม ตัวเลือกนี้ทำให้
ความรู้สึกสำหรับอุปกรณ์จับเสียงและตัวลดเสียงแบบดิบและถูกแมปกับที่สอดคล้องกัน
ตัวเลือกดีลักซ์เซอร์
-aq q (เอาท์พุต)
ตั้งค่าคุณภาพเสียง (เฉพาะตัวแปลงสัญญาณ VBR) นี่คือนามแฝงสำหรับ -q:a
-ac[:stream_specifier] ช่อง (อินพุต/เอาต์พุตต่อสตรีม)
กำหนดจำนวนช่องสัญญาณเสียง สำหรับเอาต์พุตสตรีม จะถูกตั้งค่าเริ่มต้นเป็น
จำนวนช่องสัญญาณเสียงเข้า สำหรับอินพุตสตรีม ตัวเลือกนี้เหมาะสมสำหรับ
อุปกรณ์ดักจับเสียงและตัวแก้ไขข้อมูลดิบ และถูกแมปกับโปรแกรมแก้ไขเสียงที่เกี่ยวข้อง
ตัวเลือก
โครงสร้าง (เอาท์พุต)
ปิดใช้งานการบันทึกเสียง
-codec ตัวแปลงสัญญาณ (อินพุต / เอาต์พุต)
ตั้งค่าตัวแปลงสัญญาณเสียง นี่คือนามแฝงสำหรับ "-codec:a"
-sample_fmt[:stream_specifier] ตัวอย่าง_fmt (เอาต์พุตต่อสตรีม)
ตั้งค่ารูปแบบตัวอย่างเสียง ใช้ "-sample_fmts" เพื่อรับรายการตัวอย่างที่รองรับ
รูปแบบ
-อัฟ ตัวกรองกราฟ (เอาท์พุต)
สร้างกราฟตัวกรองที่ระบุโดย ตัวกรองกราฟ และใช้เพื่อกรองกระแส
นี่คือนามแฝงสำหรับ "-filter:a" โปรดดูที่ -กรอง ตัวเลือก.
ค้นหาระดับสูง เสียง ตัวเลือก
-แท็ก สี่cc/tag (เอาท์พุต)
บังคับแท็กเสียง/fourcc. นี่คือนามแฝงสำหรับ "-tag:a"
-absf bitstream_filter
เลิกใช้แล้ว ดู -bsf
-guess_layout_max ช่อง (อินพุตต่อสตรีม)
หากไม่ทราบรูปแบบช่องสัญญาณอินพุตบางช่องให้ลองเดาก็ต่อเมื่อตรงกับ at
มากที่สุดตามจำนวนช่องที่กำหนด ตัวอย่างเช่น 2 บอกถึง ffmpeg เพื่อรับรู้ 1
แชนเนลเป็นโมโนและ 2 แชนเนลเป็นสเตอริโอ แต่ไม่ใช่ 6 แชนเนลเป็น 5.1 ค่าเริ่มต้นคือto
พยายามเดาเสมอ ใช้ 0 เพื่อปิดการเดาทั้งหมด
หัวเรื่องย่อย ตัวเลือก
-scodec ตัวแปลงสัญญาณ (อินพุต / เอาต์พุต)
ตั้งค่าตัวแปลงสัญญาณคำบรรยาย นี่คือนามแฝงสำหรับ "-codec:s"
-ส (เอาท์พุต)
ปิดใช้งานการบันทึกคำบรรยาย
-sbsf bitstream_filter
เลิกใช้แล้ว ดู -bsf
ค้นหาระดับสูง หัวเรื่องย่อย ตัวเลือก
-fix_sub_duration
แก้ไขระยะเวลาคำบรรยาย สำหรับแต่ละซับไตเติ้ล ให้รอแพ็กเก็ตถัดไปในแพ็กเก็ตเดียวกัน
สตรีมและปรับระยะเวลาของครั้งแรกเพื่อหลีกเลี่ยงการทับซ้อนกัน นี่เป็นสิ่งจำเป็นกับ
ตัวแปลงสัญญาณคำบรรยายบางตัวโดยเฉพาะคำบรรยาย DVB เพราะระยะเวลาในต้นฉบับ
แพ็กเก็ตเป็นเพียงการประมาณคร่าวๆ และส่วนท้ายจะถูกทำเครื่องหมายด้วยคำบรรยายเปล่า
กรอบ. การไม่ใช้ตัวเลือกนี้เมื่อจำเป็นอาจส่งผลให้เกิดระยะเวลาที่เกินจริงได้
หรือความล้มเหลวของ muxing เนื่องจากการประทับเวลาที่ไม่ซ้ำซากจำเจ
โปรดทราบว่าตัวเลือกนี้จะทำให้การส่งออกข้อมูลทั้งหมดล่าช้าไปจนถึงแพ็กเก็ตคำบรรยายถัดไป
ถูกถอดรหัส: อาจเพิ่มการใช้หน่วยความจำและเวลาแฝงอย่างมาก
-canvas_size ขนาด
กำหนดขนาดของผืนผ้าใบที่ใช้แสดงคำบรรยาย
ค้นหาระดับสูง ตัวเลือก
-แผนที่ [-]input_file_id[:stream_specifier-sync_file_id[:stream_specifier]] | [ป้ายกำกับลิงก์]
(เอาท์พุต)
กำหนดสตรีมอินพุตอย่างน้อยหนึ่งรายการเป็นแหล่งสำหรับไฟล์เอาต์พุต แต่ละอินพุตสตรีม
ถูกระบุโดยดัชนีไฟล์อินพุต input_file_id และดัชนีสตรีมอินพุต
input_stream_id ภายในไฟล์อินพุต ดัชนีทั้งสองเริ่มต้นที่ 0 หากระบุไว้
sync_file_id:stream_specifier ตั้งค่าว่าสตรีมอินพุตใดที่ใช้เป็นการซิงค์การนำเสนอ
การอ้างอิง
ตัวเลือก "-map" แรกบนบรรทัดคำสั่งระบุแหล่งที่มาสำหรับเอาต์พุตสตรีม 0
ตัวเลือก "-map" ที่สองระบุแหล่งที่มาสำหรับเอาต์พุตสตรีม 1 เป็นต้น
อักขระ "-" ก่อนตัวระบุสตรีมจะสร้างการแมป "เชิงลบ" มัน
ปิดใช้งานสตรีมที่ตรงกันจากการแมปที่สร้างไว้แล้ว
ทางเลือก [ป้ายกำกับลิงก์] แบบฟอร์มจะจับคู่ผลลัพธ์จากกราฟตัวกรองที่ซับซ้อน (ดู
-filter_complex ตัวเลือก) ไปยังไฟล์ที่ส่งออก ป้ายลิงค์ ต้องสอดคล้องกับที่กำหนดไว้
ป้ายลิงก์เอาต์พุตในกราฟ
ตัวอย่างเช่น ในการแมปสตรีมทั้งหมดจากไฟล์อินพุตแรกไปยังเอาต์พุต
ffmpeg -i INPUT -map 0 เอาต์พุต
ตัวอย่างเช่น หากคุณมีสตรีมเสียงสองสตรีมในไฟล์อินพุตแรก สตรีมเหล่านี้คือ
ระบุด้วย "0:0" และ "0:1" คุณสามารถใช้ "-map" เพื่อเลือกสตรีมที่จะวางใน
ไฟล์ที่ส่งออก ตัวอย่างเช่น:
ffmpeg -i INPUT - แผนที่ 0:1 out.wav
จะแมปกระแสอินพุตใน INPUT ระบุโดย "0:1" ไปยังสตรีมเอาต์พุต (เดี่ยว)
in ออก.wav.
ตัวอย่างเช่น การเลือกสตรีมที่มีดัชนี 2 จากไฟล์อินพุต .mov (กำหนดโดย
ตัวระบุ "0:2") และสตรีมด้วยดัชนี 6 จากอินพุต บี.มอฟ (กำหนดโดย
ตัวระบุ "1:6") และคัดลอกไปยังไฟล์เอาต์พุต ออก.mov:
ffmpeg -i a.mov -i b.mov -c สำเนา -แผนที่ 0:2 -แผนที่ 1:6 out.mov
ในการเลือกวิดีโอทั้งหมดและสตรีมเสียงที่สามจากไฟล์อินพุต:
ffmpeg -i อินพุต - แผนที่ 0:v - แผนที่ 0:a:2 เอาต์พุต
ในการแมปสตรีมทั้งหมดยกเว้นเสียงที่สอง ให้ใช้การแมปเชิงลบ
ffmpeg -i อินพุต - แผนที่ 0 - แผนที่ -0:a:1 เอาต์พุต
วิธีเลือกสตรีมเสียงภาษาอังกฤษ:
ffmpeg -i INPUT - แผนที่ 0:m:language:eng OUTPUT
โปรดทราบว่าการใช้ตัวเลือกนี้จะปิดใช้งานการแมปเริ่มต้นสำหรับไฟล์เอาต์พุตนี้
-ignore_unknown
ละเว้นอินพุตสตรีมด้วยประเภทที่ไม่รู้จักแทนที่จะล้มเหลวหากคัดลอกสตรีมดังกล่าว
พยายาม
-copy_unknown
อนุญาตให้คัดลอกสตรีมอินพุตที่มีประเภทที่ไม่รู้จักแทนที่จะล้มเหลวหากคัดลอกเช่น
กำลังพยายามสตรีม
-map_channel
[input_file_id.stream_specifier.ช่อง_id|-1][:output_file_id.stream_specifier]
แมปช่องสัญญาณเสียงจากอินพุตที่กำหนดไปยังเอาต์พุต ถ้า
output_file_id.stream_specifier ไม่ได้ตั้งค่าช่องสัญญาณเสียงจะถูกแมปทั้งหมด
สตรีมเสียง
ใช้ "-1" แทน input_file_id.stream_specifier.ช่อง_id จะแมปปิดเสียง
ช่อง
ตัวอย่างเช่น สมมติว่า INPUT เป็นไฟล์เสียงสเตอริโอ คุณสามารถสลับสองเสียง
ช่องสัญญาณด้วยคำสั่งต่อไปนี้:
ffmpeg -i อินพุต -map_channel 0.0.1 -map_channel 0.0.0 เอาต์พุต
หากคุณต้องการปิดเสียงช่องแรกและเก็บช่องที่สองไว้:
ffmpeg -i อินพุต -map_channel -1 -map_channel 0.0.1 เอาต์พุต
ลำดับของตัวเลือก "-map_channel" ระบุลำดับของช่องใน
กระแสเอาต์พุต เค้าโครงช่องสัญญาณออกจะเดาจากจำนวนช่องที่แมป
(โมโนถ้าหนึ่ง "-map_channel", สเตอริโอถ้าสอง ฯลฯ ) การใช้ "-ac" ร่วมกับ
"-map_channel" ทำให้ระดับการรับช่องได้รับการอัปเดตหากช่องสัญญาณเข้าและออก
เลย์เอาต์ไม่ตรงกัน (เช่น "-map_channel" สองตัวเลือกและ "-ac 6")
คุณยังสามารถแยกแต่ละช่องสัญญาณเข้าไปยังเอาท์พุตเฉพาะได้ ต่อไปนี้
คำสั่งแยกสองช่องทางของ INPUT สตรีมเสียง (ไฟล์ 0, สตรีม 0) ไปยัง
ว่า เอาท์พุต_CH0 และ เอาท์พุต_CH1 เอาท์พุท:
ffmpeg -i อินพุต -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
ตัวอย่างต่อไปนี้แบ่งช่องสัญญาณของอินพุตสเตอริโอออกเป็นสองสตรีมแยกกัน
ซึ่งถูกใส่ลงในไฟล์เอาต์พุตเดียวกัน:
ffmpeg -i stereo.wav -แผนที่ 0:0 -แผนที่ 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
โปรดทราบว่าปัจจุบันแต่ละเอาต์พุตสตรีมมีได้เฉพาะช่องจากอินพุตเดียว
ลำธาร; คุณไม่สามารถใช้ "-map_channel" เพื่อเลือกช่องสัญญาณเสียงอินพุตหลายช่อง
อยู่ในสตรีมต่างๆ (จากไฟล์เดียวกันหรือต่างกัน) และรวมเข้าเป็น
สตรีมเอาต์พุตเดียว ดังนั้นจึงไม่สามารถทำได้ในปัจจุบัน เช่น หมุน
สตรีมโมโนแยกกันสองสตรีมเป็นสตรีมสเตอริโอเดียว อย่างไรก็ตามการแยกสเตอริโอ
สตรีมเป็นสตรีมโมโนสองช่องสัญญาณเดียวได้
หากคุณต้องการคุณสมบัตินี้ วิธีแก้ปัญหาที่เป็นไปได้คือใช้ รวมกัน กรอง. สำหรับ
ตัวอย่าง หากคุณต้องการรวมสื่อ (ที่นี่ input.mkv) พร้อมสตรีมเสียงโมโน 2 ช่องเข้า
สตรีมเสียงช่องสัญญาณสเตอริโอช่องเดียว (และเก็บสตรีมวิดีโอไว้) คุณสามารถใช้
คำสั่งต่อไปนี้:
ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v คัดลอก output.mkv
-map_metadata[:ข้อมูลเมตา_spec_out] แฟ้ม[:ข้อมูลเมตา_spec_in] (เอาต์พุตต่อเมตาดาต้า)
ตั้งค่าข้อมูลเมตาดาต้าของไฟล์เอาต์พุตถัดไปจาก แฟ้ม. โปรดทราบว่าไฟล์เหล่านี้เป็นไฟล์
ดัชนี (แบบศูนย์) ไม่ใช่ชื่อไฟล์ ไม่จำเป็น เมตาดาต้า_spec_in/out พารามิเตอร์
ระบุข้อมูลเมตาที่จะคัดลอก ตัวระบุข้อมูลเมตาสามารถมีรูปแบบต่อไปนี้:
g ข้อมูลเมตาส่วนกลาง เช่น ข้อมูลเมตาที่ใช้กับทั้งไฟล์
s[:stream_spec]
ข้อมูลเมตาต่อสตรีม stream_spec เป็นตัวระบุสตรีมตามที่อธิบายไว้ใน กระแส
specifiers บท. ในตัวระบุข้อมูลเมตาอินพุต สตรีมที่ตรงกันรายการแรกคือ
คัดลอกมาจาก ในตัวระบุข้อมูลเมตาของเอาต์พุต สตรีมที่ตรงกันทั้งหมดจะถูกคัดลอกไป
c:Chapter_index
ข้อมูลเมตาต่อบท Chapter_index เป็นดัชนีบทตามศูนย์
p:โปรแกรม_ดัชนี
ข้อมูลเมตาต่อโปรแกรม โปรแกรม_ดัชนี คือดัชนีโปรแกรมแบบอิงศูนย์
หากละเว้นตัวระบุข้อมูลเมตา ค่าเริ่มต้นจะเป็นส่วนกลาง
ตามค่าเริ่มต้น ข้อมูลเมตาส่วนกลางจะถูกคัดลอกจากไฟล์อินพุตแรก ต่อสตรีม และต่อ
ข้อมูลเมตาของบทจะถูกคัดลอกไปพร้อมกับสตรีม/บท การแมปเริ่มต้นเหล่านี้คือ
ปิดใช้งานโดยการสร้างการแมปประเภทที่เกี่ยวข้อง ดัชนีไฟล์เชิงลบสามารถเป็น
ใช้เพื่อสร้างการแมปจำลองที่ปิดใช้งานการคัดลอกอัตโนมัติ
ตัวอย่างเช่น การคัดลอกข้อมูลเมตาจากสตรีมแรกของไฟล์อินพุตไปยัง global
ข้อมูลเมตาของไฟล์เอาต์พุต:
ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
หากต้องการย้อนกลับ เช่น คัดลอกข้อมูลเมตาส่วนกลางไปยังสตรีมเสียงทั้งหมด:
ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
โปรดทราบว่า 0 แบบธรรมดาจะทำงานได้ดีในตัวอย่างนี้ เนื่องจากข้อมูลเมตาส่วนกลางคือ
ถือว่าโดยปริยาย
-map_chapters input_file_index (เอาท์พุต)
คัดลอกบทจากไฟล์อินพุตด้วย index input_file_index ไปยังไฟล์เอาต์พุตถัดไป ถ้า
ไม่ได้ระบุการแมปบท ดังนั้นบทจะถูกคัดลอกจากไฟล์อินพุตแรก
อย่างน้อยหนึ่งบท ใช้ดัชนีไฟล์เชิงลบเพื่อปิดใช้งานการคัดลอกบทใดๆ
- เบนช์มาร์ก (ทั่วโลก)
แสดงข้อมูลการเปรียบเทียบที่ส่วนท้ายของการเข้ารหัส แสดงเวลา CPU ที่ใช้และ
การใช้หน่วยความจำสูงสุด ไม่รองรับการใช้หน่วยความจำสูงสุดทั้งหมด
ระบบมักจะแสดงเป็น 0 หากไม่รองรับ
-benchmark_all (ทั่วโลก)
แสดงข้อมูลการเปรียบเทียบระหว่างการเข้ารหัส แสดงเวลา CPU ที่ใช้ในขั้นตอนต่างๆ
(เสียง/วิดีโอเข้ารหัส/ถอดรหัส)
-เวลาที่ จำกัด ระยะเวลา (ทั่วโลก)
ออกหลังจาก ffmpeg ทำงานเพื่อ ระยะเวลา วินาที
- ถังขยะ (ทั่วโลก)
ดัมพ์แต่ละแพ็กเก็ตอินพุตไปที่ stderr
-ฐานสิบหก (ทั่วโลก)
เมื่อดัมพ์แพ็กเก็ต ให้ดัมพ์เพย์โหลดด้วย
-re (อินพุต)
อ่านอินพุตที่อัตราเฟรมดั้งเดิม ส่วนใหญ่ใช้เพื่อจำลองอุปกรณ์คว้า หรืออินพุตสด
สตรีม (เช่น เมื่ออ่านจากไฟล์) ไม่ควรใช้กับอุปกรณ์จับยึดจริงหรือ
สตรีมอินพุตสด (ซึ่งอาจทำให้แพ็กเก็ตสูญหาย) โดยค่าเริ่มต้น ffmpeg พยายามที่จะ
อ่านอินพุตให้เร็วที่สุด ตัวเลือกนี้จะทำให้การอ่านค่า .ช้าลง
อินพุตไปยังอัตราเฟรมดั้งเดิมของอินพุต มีประโยชน์สำหรับเอาต์พุตแบบเรียลไทม์
(เช่น ถ่ายทอดสด)
-loop_input
วนรอบกระแสอินพุต ขณะนี้ใช้งานได้กับสตรีมรูปภาพเท่านั้น ตัวเลือกนี้คือ
ใช้สำหรับการทดสอบ FFserver อัตโนมัติ ตัวเลือกนี้เลิกใช้แล้ว ใช้ -loop 1
-loop_output จำนวนครั้ง
ลูปเอาท์พุตซ้ำๆ สำหรับรูปแบบที่รองรับการวนซ้ำ เช่น GIF แบบเคลื่อนไหว (0 will
วนซ้ำเอาต์พุตอย่างไม่สิ้นสุด) ตัวเลือกนี้เลิกใช้แล้ว ใช้ -loop
-vsync พารามิเตอร์
วิธีการซิงค์วิดีโอ ค่าเก่าสามารถระบุเป็นตัวเลขได้ด้วยเหตุผลด้านความเข้ากันได้
ค่าที่เพิ่มใหม่จะต้องระบุเป็นสตริงเสมอ
0, ทะลุผ่าน
แต่ละเฟรมจะถูกส่งผ่านพร้อมการประทับเวลาจากตัวถอดรหัสไปยัง muxer
1, CFR
เฟรมจะถูกทำซ้ำและวางเพื่อให้ได้ค่าคงที่ที่ร้องขออย่างแน่นอน
อัตราเฟรม
2, VFR
เฟรมถูกส่งผ่านด้วยการประทับเวลาหรือทิ้งเพื่อป้องกัน2
เฟรมจากการมีเวลาประทับเดียวกัน
หล่น
เมื่อผ่านแต่ทำลายการประทับเวลาทั้งหมด ทำให้ muxer สร้างใหม่
เวลาประทับตามอัตราเฟรม
-1, รถยนต์
เลือกระหว่าง 1 ถึง 2 ขึ้นอยู่กับความสามารถของ muxer นี่คือค่าเริ่มต้น
วิธี
โปรดทราบว่า muxer อาจแก้ไขการประทับเวลาเพิ่มเติมหลังจากนี้ สำหรับ
ตัวอย่าง ในกรณีที่รูปแบบ option หลีกเลี่ยง_negative_ts เปิดใช้งาน.
ด้วย -map คุณสามารถเลือกได้ว่าจะให้สตรีมการประทับเวลาใด คุณสามารถ
ปล่อยให้วิดีโอหรือเสียงไม่เปลี่ยนแปลงและซิงค์สตรีมที่เหลือไปที่
ไม่เปลี่ยนแปลง
-frame_drop_threshold พารามิเตอร์
เกณฑ์การดร็อปเฟรม ซึ่งระบุว่าเฟรมวิดีโอสามารถอยู่หลังเฟรมได้มากเพียงใด
จะลดลง ในหน่วยอัตราเฟรม ดังนั้น 1.0 เป็นหนึ่งเฟรม ค่าเริ่มต้นคือ -1.1 หนึ่ง
การใช้งานที่เป็นไปได้คือการหลีกเลี่ยง framedrops ในกรณีที่มีการประทับเวลาที่มีเสียงดังหรือเพิ่มขึ้น
ความแม่นยำของเฟรมลดลงในกรณีที่มีการประทับเวลาที่แน่นอน
-อะซิงก์ ตัวอย่าง_per_second
วิธีการซิงค์เสียง "ยืด/บีบ" สตรีมเสียงให้ตรงกับการประทับเวลา
พารามิเตอร์คือตัวอย่างสูงสุดต่อวินาทีโดยที่เสียงจะเปลี่ยนไป -async 1
เป็นกรณีพิเศษที่แก้ไขเฉพาะช่วงเริ่มต้นของสตรีมเสียงโดยไม่มีการแก้ไขใดๆ
ภายหลังการแก้ไข
โปรดทราบว่า muxer อาจแก้ไขการประทับเวลาเพิ่มเติมหลังจากนี้ สำหรับ
ตัวอย่าง ในกรณีที่รูปแบบ option หลีกเลี่ยง_negative_ts เปิดใช้งาน.
ตัวเลือกนี้เลิกใช้แล้ว ใช้ตัวกรองเสียง "ตัวอย่าง" แทน
-สำเนา
อย่าประมวลผลการประทับเวลาของอินพุต แต่ให้เก็บค่าไว้โดยไม่พยายามฆ่าเชื้อ
พวกเขา. โดยเฉพาะอย่างยิ่ง อย่าลบค่าชดเชยเวลาเริ่มต้นเริ่มต้น
โปรดทราบว่าขึ้นอยู่กับ vSync ตัวเลือกหรือการประมวลผล muxer เฉพาะ (เช่นในกรณี
ตัวเลือกรูปแบบ หลีกเลี่ยง_negative_ts เปิดใช้งาน) การประทับเวลาของเอาต์พุตอาจไม่ตรงกัน
ด้วยการประทับเวลาของอินพุตแม้ว่าจะเลือกตัวเลือกนี้ไว้ก็ตาม
-start_at_zero
เมื่อใช้กับ สำเนาให้เปลี่ยนการประทับเวลาของอินพุตเพื่อให้เริ่มต้นที่ศูนย์
ซึ่งหมายความว่าการใช้เช่น "-ss 50" จะทำให้การประทับเวลาของเอาต์พุตเริ่มต้นที่ 50 วินาที
ไม่ว่าไฟล์อินพุตจะเริ่มต้นที่ประทับเวลาใด
-copytb โหมด
ระบุวิธีตั้งค่าฐานเวลาของตัวเข้ารหัสเมื่อสตรีมคัดลอก โหมด เป็นจำนวนเต็ม
ค่าตัวเลข และสามารถถือว่าค่าใดค่าหนึ่งต่อไปนี้:
1 ใช้ฐานเวลาดีลักซ์เซอร์
ฐานเวลาถูกคัดลอกไปยังตัวเข้ารหัสเอาต์พุตจากอินพุตที่เกี่ยวข้อง
ดีลักซ์เซอร์ บางครั้งจำเป็นต้องหลีกเลี่ยงการเพิ่มขึ้นที่ไม่ซ้ำซากจำเจ
เวลาประทับเมื่อคัดลอกสตรีมวิดีโอด้วยอัตราเฟรมที่เปลี่ยนแปลงได้
0 ใช้ฐานเวลาตัวถอดรหัส
ฐานเวลาถูกคัดลอกไปยังตัวเข้ารหัสเอาต์พุตจากอินพุตที่เกี่ยวข้อง
ตัวถอดรหัส
-1 พยายามทำการเลือกโดยอัตโนมัติเพื่อสร้างผลลัพธ์ที่สมเหตุสมผล
ค่าเริ่มต้นคือ -1
-สั้นที่สุด (เอาท์พุต)
เข้ารหัสให้เสร็จเมื่อสตรีมอินพุตที่สั้นที่สุดสิ้นสุด
-dts_delta_threshold
เกณฑ์เดลต้าความไม่ต่อเนื่องของการประทับเวลา
-muxdelay วินาที (อินพุต)
ตั้งค่าการหน่วงเวลา demux-decode สูงสุด
-muxpreload วินาที (อินพุต)
ตั้งค่าการหน่วงเวลา demux-decode เริ่มต้น
-Streamid เอาท์พุตสตรีมดัชนี:ใหม่มูลค่า (เอาท์พุต)
กำหนดค่า stream-id ใหม่ให้กับเอาต์พุตสตรีม ควรระบุตัวเลือกนี้
ก่อนชื่อไฟล์เอาต์พุตที่ใช้ สำหรับสถานการณ์ที่หลาย ๆ
มีไฟล์เอาต์พุต streamid อาจถูกกำหนดใหม่เป็นค่าอื่น
ตัวอย่างเช่น ในการตั้งค่าสตรีม 0 PID เป็น 33 และสตรีม 1 PID เป็น 36 สำหรับเอาต์พุต
ไฟล์ mpegts:
ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
-bsf [:stream_specifier] bitstream_filters (เอาต์พุตต่อสตรีม)
ตั้งค่าตัวกรองบิตสตรีมสำหรับสตรีมที่ตรงกัน bitstream_filters เป็นเครื่องหมายจุลภาคคั่น
รายการตัวกรองบิตสตรีม ใช้ตัวเลือก "-bsfs" เพื่อรับรายการ bitstream
ฟิลเตอร์
ffmpeg -i h264.mp4 -c:v คัดลอก -bsf:v h264_mp4toannexb -an out.h264
ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s คัดลอก -f rawvideo sub.txt
-แท็ก[:stream_specifier] ตัวแปลงสัญญาณ_แท็ก (อินพุต/เอาต์พุตต่อสตรีม)
บังคับ tag/fourcc สำหรับสตรีมที่ตรงกัน
-รหัสเวลา hh:mm:ssกันยายนff
ระบุ Timecode สำหรับเขียน กันยายน คือ ':' สำหรับไทม์โค้ดแบบไม่ดร็อปและ ';' (หรือ '.') สำหรับ
หล่น
ffmpeg -i input.mpg - รหัสเวลา 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
-filter_complex ตัวกรองกราฟ (ทั่วโลก)
กำหนดตัวกรองที่ซับซ้อน กล่าวคือ กราฟที่มีจำนวนอินพุตและ/หรือเอาต์พุตตามอำเภอใจ
สำหรับกราฟอย่างง่าย - กราฟที่มีอินพุตเดียวและเอาต์พุตประเภทเดียวกัน - ดูที่
-กรอง ตัวเลือก ตัวกรองกราฟ เป็นคำอธิบายของตัวกรองตามที่อธิบายไว้ใน
``ไวยากรณ์ตัวกรอง'' ของคู่มือตัวกรอง ffmpeg
ป้ายกำกับลิงก์อินพุตต้องอ้างถึงสตรีมอินพุตโดยใช้
"[file_index:stream_specifier]" ไวยากรณ์ (เช่น -แผนที่ การใช้งาน) ถ้า
stream_specifier ตรงกับหลายสตรีม อันแรกจะถูกใช้ ที่ไม่มีป้ายกำกับ
อินพุตจะเชื่อมต่อกับสตรีมอินพุตแรกที่ไม่ได้ใช้ของประเภทการจับคู่
ป้ายกำกับลิงก์เอาต์พุตถูกอ้างถึงด้วย -แผนที่. เอาต์พุตที่ไม่มีป้ายกำกับจะถูกเพิ่มลงในรายการแรก
ไฟล์ที่ส่งออก
โปรดทราบว่าด้วยตัวเลือกนี้ คุณสามารถใช้เฉพาะแหล่ง lavfi โดยไม่ปกติ
ไฟล์อินพุต
เช่น การซ้อนภาพทับวิดีโอ
ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]โอเวอร์เลย์[ออก]' -map
'[ออก]' out.mkv
ที่นี่ "[0:v]" หมายถึงสตรีมวิดีโอแรกในไฟล์อินพุตแรกซึ่งเชื่อมโยง
ไปยังอินพุตแรก (หลัก) ของตัวกรองโอเวอร์เลย์ ในทำนองเดียวกันการสตรีมวิดีโอครั้งแรกใน
อินพุตที่สองเชื่อมโยงกับอินพุตที่สอง (โอเวอร์เลย์) ของโอเวอร์เลย์
สมมติว่ามีสตรีมวิดีโอเพียงรายการเดียวในแต่ละไฟล์อินพุต เราสามารถละเว้นป้ายกำกับอินพุต
ดังนั้นข้างต้นจึงเท่ากับ
ffmpeg -i video.mkv -i image.png -filter_complex 'โอเวอร์เลย์[ออก]' -map
'[ออก]' out.mkv
นอกจากนี้ เราสามารถละเว้นป้ายกำกับเอาต์พุตและเอาต์พุตเดี่ยวจากกราฟตัวกรอง
จะถูกเพิ่มไปยังไฟล์เอาท์พุตโดยอัตโนมัติ ดังนั้นเราจึงสามารถเขียน
ffmpeg -i video.mkv -i image.png -filter_complex 'โอเวอร์เลย์' out.mkv
ในการสร้างวิดีโอสีแดงบริสุทธิ์ 5 วินาทีโดยใช้แหล่ง "สี" ของ lavfi:
ffmpeg -filter_complex 'สี=c=สีแดง' -t 5 out.mkv
-ลาฟฟี ตัวกรองกราฟ (ทั่วโลก)
กำหนดตัวกรองที่ซับซ้อน กล่าวคือ กราฟที่มีจำนวนอินพุตและ/หรือเอาต์พุตตามอำเภอใจ
เทียบเท่ากับ -filter_complex.
-filter_complex_script ชื่อไฟล์ (ทั่วโลก)
ตัวเลือกนี้คล้ายกับ -filter_complexความแตกต่างเพียงอย่างเดียวคือข้อโต้แย้งของมันคือ
ชื่อของไฟล์ที่จะอ่านคำอธิบายตัวกรองกราฟที่ซับซ้อน
-แม่นยำ_แสวงหา (อินพุต)
ตัวเลือกนี้เปิดหรือปิดการค้นหาไฟล์อินพุตที่แม่นยำด้วยปุ่ม -NS ตัวเลือก
มันถูกเปิดใช้งานโดยค่าเริ่มต้น ดังนั้นการค้นหาจึงแม่นยำเมื่อแปลงรหัส ใช้
-noaccurate_seek เพื่อปิดการใช้งานซึ่งอาจเป็นประโยชน์เช่นเมื่อคัดลอกบางสตรีมและ
การแปลงรหัสอื่น ๆ
-seek_timestamp (อินพุต)
ตัวเลือกนี้เปิดหรือปิดการค้นหาด้วยการประทับเวลาในไฟล์อินพุตด้วย -NS
ตัวเลือก. มันถูกปิดใช้งานโดยค่าเริ่มต้น หากเปิดใช้งาน อาร์กิวเมนต์ของ -NS ตัวเลือกที่
ถือเป็นการประทับเวลาจริง และไม่ถูกชดเชยด้วยเวลาเริ่มต้นของไฟล์ นี้
สำคัญสำหรับไฟล์ที่ไม่ได้เริ่มต้นจากการประทับเวลา 0 เช่นการขนส่งสตรีมเท่านั้น
-thread_queue_size ขนาด (อินพุต)
ตัวเลือกนี้กำหนดจำนวนสูงสุดของแพ็กเก็ตที่อยู่ในคิวเมื่ออ่านจากไฟล์หรือ
อุปกรณ์. ด้วยสตรีมสดที่มีเวลาแฝงต่ำ/อัตราสูง แพ็กเก็ตอาจถูกละทิ้งหาก
ไม่ได้อ่านอย่างทันท่วงที การเพิ่มค่านี้สามารถหลีกเลี่ยงได้
-override_ffserver (ทั่วโลก)
แทนที่ข้อกำหนดอินพุตจาก เซิร์ฟเวอร์. การใช้ตัวเลือกนี้คุณสามารถแมปใด ๆ
อินพุตสตรีมไปยัง เซิร์ฟเวอร์ และควบคุมการเข้ารหัสหลายด้านจาก ffmpeg. ไม่มี
ตัวเลือกนี้ ffmpeg จะส่งไปยัง เซิร์ฟเวอร์ สิ่งที่ร้องขอโดย เซิร์ฟเวอร์.
ตัวเลือกนี้มีไว้สำหรับกรณีที่ต้องการคุณสมบัติที่ไม่สามารถระบุได้
เซิร์ฟเวอร์ แต่ก็สามารถ ffmpeg.
-sdp_file ไฟล์ (ทั่วโลก)
พิมพ์ข้อมูล sdp สำหรับเอาต์พุตสตรีมไปที่ ไฟล์. อนุญาตให้ดัมพ์ sdp
ข้อมูลเมื่อเอาต์พุตอย่างน้อยหนึ่งรายการไม่ใช่สตรีม rtp (ต้องมีอย่างน้อยหนึ่ง
รูปแบบเอาต์พุตเป็น rtp)
-ทิ้ง (อินพุต)
อนุญาตให้ละทิ้งสตรีมหรือเฟรมเฉพาะของสตรีมที่ demuxer ไม่ทั้งหมด
demuxers สนับสนุนสิ่งนี้
ไม่มี
ทิ้งไม่มีกรอบ
ผิดนัด
ค่าเริ่มต้นซึ่งไม่ทิ้งเฟรม
โนเรฟ
ทิ้งเฟรมที่ไม่อ้างอิงทั้งหมด
ประมูล
ทิ้งเฟรมแบบสองทิศทางทั้งหมด
ไม่เป็นไร
ทิ้งเฟรมทั้งหมดยกเว้นคีย์เฟรม
ทั้งหมด ทิ้งเฟรมทั้งหมด
-xerror (ทั่วโลก)
หยุดและออกเมื่อผิดพลาด
เป็นข้อยกเว้นพิเศษ คุณสามารถใช้สตรีมคำบรรยายบิตแมปเป็นอินพุตได้: มันจะเป็น
แปลงเป็นวิดีโอที่มีขนาดเท่ากับวิดีโอที่ใหญ่ที่สุดในไฟล์ หรือ 720x576 if
ไม่มีวิดีโออยู่ โปรดทราบว่านี่เป็นวิธีแก้ปัญหาแบบทดลองและชั่วคราว มันจะเป็น
ลบออกเมื่อ libavfilter รองรับคำบรรยายอย่างเหมาะสม
ตัวอย่างเช่น หากต้องการฮาร์ดโค้ดคำบรรยายที่ด้านบนของการบันทึก DVB-T ที่จัดเก็บไว้ในรูปแบบ MPEG-TS
หน่วงเวลาคำบรรยาย 1 วินาที:
ffmpeg -i input.ts -filter_complex \
'[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] โอเวอร์เลย์' \
-sn -map '#0x2dc' output.mkv
(0x2d0, 0x2dc และ 0x2ef เป็น MPEG-TS PID ของวิดีโอ เสียง และ
สตรีมคำบรรยาย; 0:0, 0:3 และ 0:7 ก็ใช้ได้เหมือนกัน)
ตั้งล่วงหน้า ไฟล์
ไฟล์ที่ตั้งไว้ล่วงหน้าประกอบด้วยลำดับของ ตัวเลือก=ความคุ้มค่า คู่ละหนึ่งบรรทัด โดยระบุ a
ลำดับของตัวเลือกที่อาจไม่สะดวกที่จะระบุในบรรทัดคำสั่ง เส้นเริ่มต้น
ด้วยอักขระแฮช ('#') จะถูกละเว้นและใช้เพื่อแสดงความคิดเห็น ตรวจสอบ
ที่ตั้งไว้ล่วงหน้า ไดเร็กทอรีในแผนผังซอร์ส FFmpeg สำหรับตัวอย่าง
ไฟล์พรีเซ็ตมีสองประเภท: ไฟล์ ffpreset และ avpreset
ffpreset ไฟล์
ไฟล์ ffpreset ระบุด้วยตัวเลือก "vpre", "apre", "spre" และ "fpre" NS
ตัวเลือก "fpre" ใช้ชื่อไฟล์ของพรีเซ็ตแทนชื่อที่ตั้งไว้ล่วงหน้าเป็นอินพุตและ can
ใช้สำหรับตัวแปลงสัญญาณชนิดใดก็ได้ สำหรับตัวเลือก "vpre", "apre" และ "spre" ตัวเลือก
ที่ระบุในไฟล์ที่ตั้งไว้ล่วงหน้าจะถูกนำไปใช้กับตัวแปลงสัญญาณที่เลือกในปัจจุบันประเภทเดียวกับ
ตัวเลือกที่ตั้งไว้ล่วงหน้า
อาร์กิวเมนต์ที่ส่งผ่านไปยังตัวเลือกที่ตั้งไว้ล่วงหน้า "vpre", "apre" และ "spre" ระบุค่าที่ตั้งไว้ล่วงหน้า
ไฟล์ที่จะใช้ตามกฎต่อไปนี้:
ffmpeg แรกค้นหาไฟล์ชื่อ หาเรื่อง.ffpreset ในไดเร็กทอรี $FFMPEG_DATADIR (ถ้า
ชุด) และ $HOME/.ffmpegและใน datadir ที่กำหนดไว้ในเวลากำหนดค่า (โดยปกติ
คำนำหน้า/แชร์/ffmpeg) หรือใน a ffpresets โฟลเดอร์พร้อมไฟล์เรียกทำงานบน win32 ในนั้น
คำสั่ง. ตัวอย่างเช่น หากอาร์กิวเมนต์คือ "libvpx-1080p" อาร์กิวเมนต์จะค้นหาไฟล์
libvpx-1080p.ffpreset.
หากไม่พบไฟล์ดังกล่าว ffmpeg จะค้นหาไฟล์ชื่อ ตัวแปลงสัญญาณ_ชื่อ-หาเรื่อง.ffpreset
ในไดเร็กทอรีที่กล่าวถึงข้างต้น โดยที่ ตัวแปลงสัญญาณ_ชื่อ เป็นชื่อของตัวแปลงสัญญาณที่
ระบบจะใช้ตัวเลือกไฟล์ที่ตั้งไว้ล่วงหน้า ตัวอย่างเช่น หากคุณเลือกตัวแปลงสัญญาณวิดีโอด้วย
"-vcodec libvpx" และใช้ "-vpre 1080p" จากนั้นระบบจะค้นหาไฟล์
libvpx-1080p.ffpreset.
ตั้งค่าล่วงหน้า ไฟล์
ไฟล์ avpreset ถูกระบุด้วยตัวเลือก "pre" พวกมันทำงานคล้ายกับไฟล์ ffpreset
แต่อนุญาตให้ใช้ตัวเลือกเฉพาะตัวเข้ารหัสเท่านั้น ดังนั้น an ตัวเลือก=ความคุ้มค่า คู่ระบุ
ไม่สามารถใช้ตัวเข้ารหัสได้
เมื่อระบุตัวเลือก "ก่อน" ffmpeg จะค้นหาไฟล์ที่มีส่วนต่อท้าย .avpreset
ในไดเร็กทอรี $AVCONV_DATADIR (ถ้ากำหนดไว้) และ $HOME/.avconvและใน datadir ที่กำหนดไว้
ในเวลาการกำหนดค่า (โดยปกติ คำนำหน้า/แชร์/ffmpeg), เพื่อให้.
ffmpeg แรกค้นหาไฟล์ชื่อ ตัวแปลงสัญญาณ_ชื่อ-หาเรื่อง.avpreset ดังกล่าวข้างต้น
ไดเร็กทอรี โดยที่ ตัวแปลงสัญญาณ_ชื่อ เป็นชื่อของตัวแปลงสัญญาณที่ไฟล์ตัวเลือกที่ตั้งไว้ล่วงหน้า
จะถูกนำไปใช้ ตัวอย่างเช่น หากคุณเลือกตัวแปลงสัญญาณวิดีโอด้วย "-vcodec libvpx" และใช้
"-pre 1080p" จากนั้นจะค้นหาไฟล์ libvpx-1080p.avpreset.
หากไม่พบไฟล์ดังกล่าว ffmpeg จะค้นหาไฟล์ชื่อ หาเรื่อง.avpreset ใน
ไดเรกทอรีเดียวกัน
ตัวอย่าง
วีดีโอ และ เสียง โลภ
หากคุณระบุรูปแบบอินพุตและอุปกรณ์ ffmpeg สามารถดึงวิดีโอและเสียงได้โดยตรง
ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
หรือด้วยแหล่งกำเนิดเสียง ALSA (อินพุตโมโน, รหัสการ์ด 1) แทน OSS:
ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
โปรดทราบว่าคุณต้องเปิดใช้งานแหล่งวิดีโอและช่องที่ถูกต้องก่อนเปิดตัว ffmpeg
กับผู้ดูทีวีเช่นhttp://linux.bytesex.org/xawtv/> โดย เกิร์ด คนอร์ คุณยังมี
เพื่อกำหนดระดับการบันทึกเสียงให้ถูกต้องด้วยมิกเซอร์มาตรฐาน
X11 โลภ
หยิบจอแสดงผล X11 ด้วย ffmpeg via
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
0.0 คือหมายเลข display.screen ของเซิร์ฟเวอร์ X11 ของคุณ เช่นเดียวกับตัวแปรสภาพแวดล้อม DISPLAY
ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
0.0 คือหมายเลข display.screen ของเซิร์ฟเวอร์ X11 ของคุณ เช่นเดียวกับตัวแปรสภาพแวดล้อม DISPLAY
10 คือ x-offset และ 20 ค่า y-offset สำหรับการโลภ
วีดีโอ และ เสียง ไฟล์ รูป การแปลง
รูปแบบไฟล์และโปรโตคอลที่รองรับใดๆ สามารถทำหน้าที่เป็นอินพุตไปยัง ffmpeg:
ตัวอย่าง:
· คุณสามารถใช้ไฟล์ YUV เป็นอินพุตได้:
ffmpeg -i /tmp/test%dY /tmp/out.mpg
จะใช้ไฟล์:
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V ฯลฯ...
ไฟล์ Y ใช้ความละเอียดเป็นสองเท่าของไฟล์ U และ V เป็นไฟล์ดิบโดยไม่ต้อง
หัวข้อ. สามารถสร้างได้โดยตัวถอดรหัสวิดีโอที่ดีทั้งหมด คุณต้องระบุขนาด
ของภาพด้วย -s ตัวเลือกหาก ffmpeg ไม่สามารถเดาได้
· คุณสามารถป้อนข้อมูลจากไฟล์ YUV420P ดิบ:
ffmpeg -i /tmp/test.yuv /tmp/out.avi
test.yuv เป็นไฟล์ที่มีข้อมูลระนาบ YUV ดิบ แต่ละเฟรมประกอบด้วย Y
ระนาบตามด้วยเครื่องบิน U และ V ที่ความละเอียดครึ่งหนึ่งในแนวตั้งและแนวนอน
· คุณสามารถส่งออกไปยังไฟล์ YUV420P ดิบ:
ffmpeg -i mydivx.avi hugefile.yuv
· คุณสามารถตั้งค่าไฟล์อินพุตและไฟล์เอาต์พุตได้หลายไฟล์:
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
แปลงไฟล์เสียง a.wav และไฟล์วิดีโอ YUV แบบดิบ a.yuv เป็นไฟล์ MPEG a.mpg
· คุณยังสามารถแปลงเสียงและวิดีโอได้พร้อมกัน:
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
แปลงไฟล์เสียง a.wav เป็น MPEG ที่อัตราการสุ่มตัวอย่าง 22050 Hz
· คุณสามารถเข้ารหัสได้หลายรูปแบบพร้อมกันและกำหนดการจับคู่จากอินพุต
สตรีมไปยังสตรีมเอาต์พุต:
ffmpeg -i /tmp/a.wav -แผนที่ 0:a -b:a 64k /tmp/a.mp2 -แผนที่ 0:a -b:a 128k /tmp/b.mp2
แปลง a.wav เป็น a.mp2 ที่ 64 kbits และเป็น b.mp2 ที่ 128 kbits '-ไฟล์แผนที่:ดัชนี'
ระบุว่าอินพุตสตรีมใดใช้สำหรับสตรีมเอาต์พุตแต่ละรายการ ตามลำดับ
คำจำกัดความของกระแสเอาต์พุต
· คุณสามารถแปลงรหัส VOB ที่ถอดรหัสแล้วได้:
ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
นี่เป็นตัวอย่างการริปดีวีดีทั่วไป อินพุตเป็นไฟล์ VOB เอาต์พุตเป็นไฟล์ AVI
ด้วยวิดีโอ MPEG-4 และเสียง MP3 โปรดทราบว่าในคำสั่งนี้เราใช้ B-frames ดังนั้น
สตรีม MPEG-4 เข้ากันได้กับ DivX5 และขนาด GOP คือ 300 ซึ่งหมายถึงหนึ่งเฟรมภายใน
ทุกๆ 10 วินาทีสำหรับวิดีโออินพุต 29.97fps นอกจากนี้ สตรีมเสียงคือ
เข้ารหัส MP3 ดังนั้นคุณต้องเปิดใช้งานการรองรับ LAME โดยส่ง "--enable-libmp3lame" ไปที่
กำหนดค่า การทำแผนที่มีประโยชน์อย่างยิ่งสำหรับการแปลงรหัส DVD เพื่อให้ได้ผลลัพธ์ที่ต้องการ
ภาษาเสียง
หมายเหตุ: หากต้องการดูรูปแบบอินพุตที่รองรับ ให้ใช้ "ffmpeg -formats"
· คุณสามารถดึงรูปภาพจากวิดีโอ หรือสร้างวิดีโอจากรูปภาพจำนวนมาก:
สำหรับการดึงภาพจากวิดีโอ:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
สิ่งนี้จะแยกเฟรมวิดีโอหนึ่งเฟรมต่อวินาทีจากวิดีโอและจะส่งออกใน
ไฟล์ชื่อ foo-001.jpeg, foo-002.jpegฯลฯ รูปภาพจะถูกปรับขนาดให้พอดีกับใหม่
ค่า WxH
หากคุณต้องการแยกเฟรมจำนวนจำกัด คุณสามารถใช้คำสั่งด้านบน
ร่วมกับตัวเลือก -vframes หรือ -t หรือร่วมกับ -ss เพื่อเริ่ม
สกัดจากจุดใดจุดหนึ่งในเวลา
สำหรับการสร้างวิดีโอจากหลายภาพ:
ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi
ไวยากรณ์ "foo-%03d.jpeg" ระบุให้ใช้เลขฐานสิบที่ประกอบด้วยตัวเลขสามหลัก
เสริมด้วยศูนย์เพื่อแสดงหมายเลขลำดับ มันเป็นไวยากรณ์เดียวกันที่สนับสนุนโดย
ฟังก์ชัน C printf แต่เฉพาะรูปแบบที่ยอมรับจำนวนเต็มปกติเท่านั้นที่เหมาะสม
เมื่อนำเข้าลำดับภาพ -i ยังรองรับการขยายสัญลักษณ์ตัวแทนเหมือนเชลล์
รูปแบบ (globbing) ภายในโดยเลือก "-pattern_type glob" เฉพาะของรูปภาพ
ตัวเลือก
ตัวอย่างเช่น สำหรับการสร้างวิดีโอจากชื่อไฟล์ที่ตรงกับรูปแบบลูกโลก
"foo-*.jpeg":
ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi
· คุณสามารถใส่สตรีมประเภทเดียวกันจำนวนมากในเอาต์พุต:
ffmpeg -i test1.avi -i test2.avi -แผนที่ 1:1 -แผนที่ 1:0 -แผนที่ 0:1 -แผนที่ 0:0 -c สำเนา -y test12.nut
ไฟล์ผลลัพธ์ที่ได้ test12.nut จะมีสี่สายแรกจาก
ไฟล์อินพุตในลำดับที่กลับกัน
· ในการบังคับเอาท์พุตวิดีโอ CBR:
ffmpeg -i myfile.avi -b 4000k - อัตราขั้นต่ำ 4000k - อัตราสูงสุด 4000k -bufsize 1835k out.m2v
· สี่ตัวเลือก lmin, lmax, mblmin และ mblmax ใช้หน่วย 'แลมบ์ดา' แต่คุณอาจใช้
ค่าคงที่ QP2LAMBDA เพื่อแปลงจากหน่วย 'q' อย่างง่ายดาย:
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
ใช้ ffmpeg ออนไลน์โดยใช้บริการ onworks.net