รูปแบบ ffmpeg
นี่คือคำสั่งรูปแบบ ffmpeg ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
รูปแบบ ffmpeg - รูปแบบ FFmpeg
DESCRIPTION
เอกสารนี้อธิบายรูปแบบที่รองรับ (muxers และ demuxers) ที่จัดทำโดย
ไลบรารี libavformat
FORMAT OPTIONS
ไลบรารี libavformat มีตัวเลือกส่วนกลางทั่วไปบางอย่าง ซึ่งสามารถตั้งค่าได้ทั้งหมด
muxers และ demuxers นอกจากนี้ muxer หรือ demuxer แต่ละตัวอาจรองรับสิ่งที่เรียกว่าส่วนตัว
ตัวเลือกซึ่งเฉพาะสำหรับองค์ประกอบนั้น
สามารถกำหนดตัวเลือกได้โดยระบุ -ตัวเลือก ความคุ้มค่า ในเครื่องมือ FFmpeg หรือโดยการตั้งค่า
ค่าอย่างชัดเจนในตัวเลือก "AVFormatContext" หรือใช้ libavutil/opt.h API สำหรับ
การใช้งานแบบเป็นโปรแกรม
รายการตัวเลือกที่รองรับดังต่อไปนี้:
เอวิโอแฟล็ก ธง (อินพุต / เอาต์พุต)
ค่าที่เป็นไปได้:
โดยตรง
ลดการบัฟเฟอร์
โพรบไซส์ จำนวนเต็ม (อินพุต)
ตั้งค่าขนาดโพรบเป็นไบต์ เช่น ขนาดของข้อมูลที่จะวิเคราะห์เพื่อรับสตรีม
ข้อมูล. ค่าที่สูงกว่าจะช่วยให้สามารถตรวจจับข้อมูลเพิ่มเติมได้ในกรณีที่เป็น
กระจายไปในกระแส แต่จะเพิ่มเวลาแฝง ต้องเป็นจำนวนเต็มไม่น้อย
มากกว่า 32 เป็น 5000000 โดยค่าเริ่มต้น
ขนาดแพ็คเก็ต จำนวนเต็ม (เอาท์พุต)
กำหนดขนาดแพ็กเก็ต
แฟลกส์ ธง (อินพุต / เอาต์พุต)
ตั้งค่าแฟล็กรูปแบบ
ค่าที่เป็นไปได้:
igidx
ละเว้นดัชนี
ค้นหาอย่างรวดเร็ว
เปิดใช้งานอย่างรวดเร็ว แต่การค้นหาบางรูปแบบไม่ถูกต้อง
สุภาพบุรุษ
สร้าง PTS
ไม่กรอก
อย่ากรอกค่าที่ขาดหายไปที่สามารถคำนวณได้อย่างแม่นยำ
โนพาร์ส
ปิดการใช้งาน AVParsers สิ่งนี้ต้องการ "+nofillin" ด้วย
จุดประกาย
ละเว้น DTS
ละทิ้งทุจริต
ทิ้งเฟรมที่เสียหาย
จัดเรียง
ลองสลับแพ็กเก็ตเอาต์พุตโดย DTS
คนเฝ้าประตู
อย่ารวมข้อมูลด้านข้าง
แลตม์
เปิดใช้งานเพย์โหลด RTP MP4A-LATM
ไม่มีบัฟเฟอร์
ลดเวลาแฝงที่เกิดจากบัฟเฟอร์เสริม
ไบเทค
เขียนเฉพาะข้อมูลที่ไม่ขึ้นกับแพลตฟอร์ม บิลด์ และเวลา สิ่งนี้ทำให้มั่นใจได้ว่าไฟล์
และเช็คซัมข้อมูลสามารถทำซ้ำได้และจับคู่ระหว่างแพลตฟอร์ม การใช้งานหลัก
ใช้สำหรับการทดสอบการถดถอย
Seek2any จำนวนเต็ม (อินพุต)
อนุญาตให้ค้นหาที่ไม่ใช่คีย์เฟรมในระดับ demuxer เมื่อได้รับการสนับสนุนหากตั้งค่าเป็น 1 Default
คือ 0
การวิเคราะห์ระยะเวลา จำนวนเต็ม (อินพุต)
ระบุจำนวนไมโครวินาทีที่จะวิเคราะห์เพื่อตรวจสอบอินพุต มูลค่าที่สูงขึ้นจะ
เปิดใช้งานการตรวจจับข้อมูลที่แม่นยำยิ่งขึ้น แต่จะเพิ่มเวลาในการตอบสนอง มีค่าเริ่มต้นเป็น
5,000,000 ไมโครวินาที = 5 วินาที
การเข้ารหัสลับ เลขฐานสิบหก เชือก (อินพุต)
ตั้งค่าคีย์ถอดรหัส
ดัชนี จำนวนเต็ม (อินพุต)
ตั้งค่าหน่วยความจำสูงสุดที่ใช้สำหรับดัชนีการประทับเวลา (ต่อสตรีม)
rtbufsize จำนวนเต็ม (อินพุต)
ตั้งค่าหน่วยความจำสูงสุดที่ใช้สำหรับการบัฟเฟอร์เฟรมแบบเรียลไทม์
fdebug ธง (อินพุต / เอาต์พุต)
พิมพ์ข้อมูลการดีบักเฉพาะ
ค่าที่เป็นไปได้:
ts
max_delay จำนวนเต็ม (อินพุต / เอาต์พุต)
ตั้งค่าการหน่วงเวลา muxing หรือ demuxing สูงสุดเป็นไมโครวินาที
fpsprobesize จำนวนเต็ม (อินพุต)
กำหนดจำนวนเฟรมที่ใช้ตรวจสอบ fps
เสียง_พรีโหลด จำนวนเต็ม (เอาท์พุต)
ตั้งค่าไมโครวินาทีโดยที่แพ็กเก็ตเสียงควรถูกแทรกไว้ก่อนหน้านี้
chunk_duration จำนวนเต็ม (เอาท์พุต)
ตั้งค่าไมโครวินาทีสำหรับแต่ละอัน
ก้อน_ขนาด จำนวนเต็ม (เอาท์พุต)
กำหนดขนาดเป็นไบต์สำหรับแต่ละอัน
ผิดพลาด_detect, f_err_detect ธง (อินพุต)
ตั้งค่าสถานะการตรวจจับข้อผิดพลาด "f_err_detect" เลิกใช้แล้วและควรใช้ผ่าน .เท่านั้น
ffmpeg เครื่องมือ
ค่าที่เป็นไปได้:
ซีอาร์เช็ค
ตรวจสอบ CRC ที่ฝังตัว
บิตสตรีม
ตรวจจับความเบี่ยงเบนข้อกำหนดบิตสตรีม
กันชน
ตรวจจับความยาวบิตสตรีมที่ไม่เหมาะสม
ระเบิด
ยกเลิกการถอดรหัสเมื่อตรวจพบข้อผิดพลาดเล็กน้อย
ระมัดระวัง
พิจารณาของที่ฝ่าฝืนสเปกและไม่เคยเห็นในป่าเป็น
ข้อผิดพลาด
ไม่ขัดขืน
พิจารณาการไม่ปฏิบัติตามข้อกำหนดทั้งหมดว่าเป็นข้อผิดพลาด
ก้าวร้าว
พิจารณาสิ่งที่ตัวเข้ารหัสปกติไม่ควรทำเป็นข้อผิดพลาด
max_interleave_delta จำนวนเต็ม (เอาท์พุต)
ตั้งค่าระยะเวลาบัฟเฟอร์สูงสุดสำหรับการแทรกระหว่างกัน ระยะเวลาแสดงเป็น
ไมโครวินาที และค่าเริ่มต้นคือ 1000000 (1 วินาที)
เพื่อให้แน่ใจว่าสตรีมทั้งหมดถูกสอดแทรกอย่างถูกต้อง libavformat จะรอจนกว่าจะถึง
มีอย่างน้อยหนึ่งแพ็กเก็ตสำหรับแต่ละสตรีมก่อนที่จะเขียนแพ็กเก็ตใด ๆ ไปยัง
ไฟล์ที่ส่งออก เมื่อลำธารบางสาย "เบาบาง" (กล่าวคือ มีช่องว่างขนาดใหญ่ระหว่าง
แพ็กเก็ตที่ต่อเนื่องกัน) ซึ่งอาจส่งผลให้มีการบัฟเฟอร์มากเกินไป
ฟิลด์นี้ระบุความแตกต่างสูงสุดระหว่างการประทับเวลาของครั้งแรกและ
แพ็กเก็ตสุดท้ายในคิว muxing ด้านบนซึ่ง libavformat จะส่งออกแพ็กเก็ต
ไม่ว่าจะจัดคิวแพ็คเก็ตสำหรับสตรีมทั้งหมดหรือไม่
หากตั้งค่าเป็น 0 libavformat จะดำเนินการบัฟเฟอร์แพ็กเก็ตต่อไปจนกว่าจะมีแพ็กเก็ตสำหรับ
แต่ละสตรีมโดยไม่คำนึงถึงความแตกต่างของการประทับเวลาสูงสุดระหว่างบัฟเฟอร์
แพ็คเก็ต
use_wallclock_as_timestamps จำนวนเต็ม (อินพุต)
ใช้นาฬิกาแขวนเป็นการประทับเวลา
หลีกเลี่ยง_negative_ts จำนวนเต็ม (เอาท์พุต)
ค่าที่เป็นไปได้:
make_non_negative
เปลี่ยนการประทับเวลาเพื่อให้ไม่เป็นค่าลบ โปรดทราบว่าสิ่งนี้มีผลเท่านั้น
การประทับเวลาเชิงลบชั้นนำและไม่ใช่การประทับเวลาเชิงลบที่ไม่ซ้ำซากจำเจ
make_zero
Shift timestamps เพื่อให้การประทับเวลาแรกเป็น 0
รถยนต์ (เริ่มต้น)
เปิดใช้งานการขยับเมื่อจำเป็นตามรูปแบบเป้าหมาย
พิการ
ปิดใช้งานการเปลี่ยนการประทับเวลา
เมื่อเปิดใช้งานการเปลี่ยน การประทับเวลาของเอาต์พุตทั้งหมดจะเลื่อนไปตามจำนวนที่เท่ากัน เครื่องเสียง,
วิดีโอและคำบรรยาย desynching และความแตกต่างของการประทับเวลาสัมพัทธ์จะถูกรักษาไว้
เมื่อเทียบกับวิธีที่พวกเขาจะได้รับโดยไม่ต้องขยับ
ข้าม_initial_bytes จำนวนเต็ม (อินพุต)
ตั้งค่าจำนวนไบต์ที่จะข้ามก่อนที่จะอ่านส่วนหัวและเฟรมหากตั้งค่าเป็น 1 ค่าเริ่มต้นคือ
0.
แก้ไข_ts_overflow จำนวนเต็ม (อินพุต)
แก้ไขการประทับเวลาครั้งเดียวมากเกินไปหากตั้งค่าเป็น 1 ค่าเริ่มต้นคือ 1
flush_packets จำนวนเต็ม (เอาท์พุต)
ล้างสตรีม I/O พื้นฐานหลังจากแต่ละแพ็กเก็ต ค่าเริ่มต้น 1 เปิดใช้งานและมี
ผลของการลดเวลาแฝง 0 ปิดการใช้งานและอาจเพิ่มประสิทธิภาพเล็กน้อยใน
บางกรณี.
output_ts_offset ชดเชย (เอาท์พุต)
ตั้งค่าชดเชยเวลาส่งออก
ชดเชย ต้องเป็นข้อกำหนดระยะเวลาดู เวลา ระยะเวลา ส่วน in
ffmpeg-ยูทิลิตี้(1) คู่มือ.
ออฟเซ็ตถูกเพิ่มโดย muxer ในการประทับเวลาของเอาต์พุต
การระบุออฟเซ็ตที่เป็นบวกหมายความว่ากระแสที่เกี่ยวข้องนั้นล่าช้า bt the
ระยะเวลาที่ระบุใน ชดเชย. ค่าเริ่มต้นคือ 0 (หมายความว่าไม่มีออฟเซ็ต is
สมัครแล้ว).
format_whitelist รายการ (อินพุต)
"," แยกรายการ demuxers ที่อนุญาต โดยค่าเริ่มต้นทั้งหมดจะได้รับอนุญาต
dump_separator เชือก (อินพุต)
Separator ใช้เพื่อแยกฟิลด์ที่พิมพ์บนบรรทัดคำสั่งเกี่ยวกับ Stream
พารามิเตอร์ ตัวอย่างเช่น การแยกฟิลด์ด้วยการขึ้นบรรทัดใหม่และการเยื้อง:
ffprobe -dump_separator "
" -ผม ~/videos/matrixbench_mpeg2.mpg
รูปแบบ กระแส specifiers
ตัวระบุสตรีมรูปแบบอนุญาตให้เลือกสตรีมหนึ่งรายการขึ้นไปที่ตรงกับข้อมูลเฉพาะ
สรรพคุณ
รูปแบบที่เป็นไปได้ของตัวระบุสตรีมคือ:
stream_index
จับคู่สตรีมกับดัชนีนี้
stream_type[:stream_index]
stream_type เป็นหนึ่งในต่อไปนี้: 'v' สำหรับวิดีโอ 'a' สำหรับเสียง 's' สำหรับคำบรรยาย 'd'
สำหรับข้อมูล และ 't' สำหรับไฟล์แนบ ถ้า stream_index ให้แล้วตรงกับ
หมายเลขสตรีม stream_index ประเภทนี้ ไม่งั้นก็เข้าข่ายสายนี้ทั้งหมด
ชนิด
p:โปรแกรม_id[:stream_index]
If stream_index ให้แล้วจับคู่กระแสกับตัวเลข stream_index ที่
โปรแกรมที่มีรหัส โปรแกรม_id. มิฉะนั้นจะตรงกับสตรีมทั้งหมดในโปรแกรม
#stream_id
จับคู่สตรีมด้วยรหัสเฉพาะรูปแบบ
ความหมายที่แน่นอนของตัวระบุสตรีมถูกกำหนดโดย
ฟังก์ชัน "avformat_match_stream_specifier()" ที่ประกาศใน libavformat/avformat.h
ส่วนหัว
เดมเซอร์
Demuxers เป็นองค์ประกอบที่กำหนดค่าใน FFmpeg ที่สามารถอ่านสตรีมมัลติมีเดียจาก
ไฟล์บางประเภท
เมื่อคุณกำหนดค่าบิลด์ FFmpeg ดีม็อกซ์ที่รองรับทั้งหมดจะถูกเปิดใช้งานตามค่าเริ่มต้น
คุณสามารถแสดงรายการที่มีอยู่ทั้งหมดโดยใช้ตัวเลือกการกำหนดค่า "--list-demuxers"
คุณสามารถปิดการใช้งาน demuxers ทั้งหมดโดยใช้ตัวเลือกการกำหนดค่า "--disable-demuxers" และ
เลือกเปิดใช้งาน demuxer ตัวเดียวพร้อมตัวเลือก "--enable-demuxer=เดมักเซอร์"หรือปิดการใช้งาน
ด้วยตัวเลือก "--disable-demuxer=เดมักเซอร์".
ตัวเลือก "-formats" ของเครื่องมือ ff* จะแสดงรายการตัวดีลักซ์ที่เปิดใช้งาน
คำอธิบายของ demuxers ที่มีอยู่ในปัจจุบันบางตัวมีดังต่อไปนี้
aa
รูปแบบเสียง 2, 3 และ 4 demuxer
demuxer นี้ใช้เพื่อ demux ไฟล์ Audible Format 2, 3 และ 4 (.aa)
แอปเปิ้ลhttp
โปรแกรมดีม็อกซ์ HTTP Live Streaming ของ Apple
demuxer นี้นำเสนอ AVStreams ทั้งหมดจากสตรีมแบบต่างๆ ฟิลด์ ID ถูกตั้งค่าเป็น
หมายเลขดัชนีตัวแปรบิตเรต โดยการตั้งค่าสถานะละทิ้งบน AVStreams (โดยการกด 'a'
หรือ 'v' ใน ffplay) ผู้โทรสามารถเลือกได้ว่าต้องการรับกระแสข้อมูลแบบใด NS
อัตราบิตรวมของตัวแปรที่สตรีมอยู่ในคีย์ข้อมูลเมตา
ชื่อ "variant_bitrate"
apng
ตัวล้างกราฟิกเครือข่ายแบบพกพาแบบเคลื่อนไหว
demuxer นี้ใช้เพื่อ demux ไฟล์ APNG ส่วนหัวทั้งหมด ยกเว้นลายเซ็น PNG สูงสุด (แต่
ไม่รวม) ส่วน fcTL แรกจะถูกส่งเป็นข้อมูลพิเศษ เฟรมจะถูกแยกออก
เนื่องจากเป็นส่วนทั้งหมดระหว่าง fcTL สองตัวหรือระหว่าง fcTL และ IEND อันสุดท้าย
-ignore_loop บูล
ละเว้นตัวแปรลูปในไฟล์หากตั้งค่าไว้
-max_fps int
อัตราเฟรมสูงสุดเป็นเฟรมต่อวินาที (0 ไม่จำกัด)
-default_fps int
อัตราเฟรมเริ่มต้นเป็นเฟรมต่อวินาทีเมื่อไม่มีการระบุในไฟล์ (0 ความหมาย
โดยเร็วที่สุด)
ASF
ตัวลบรูปแบบระบบขั้นสูง
demuxer นี้ใช้เพื่อ demux ไฟล์ ASF และสตรีมเครือข่าย MMS
-no_resync_search บูล
อย่าพยายามซิงโครไนซ์ใหม่โดยมองหารหัสเริ่มต้นที่เป็นทางเลือก
เชื่อม
ดีม็อกซ์สคริปต์การเชื่อมต่อเสมือน
โปรแกรมดีม็อกซ์นี้อ่านรายการไฟล์และคำสั่งอื่นๆ จากไฟล์ข้อความและลบไฟล์เหล่านั้น
ทีละกล่องราวกับว่าห่อทั้งหมดของพวกเขาถูกมัดเข้าด้วยกัน
เวลาประทับในไฟล์จะถูกปรับเพื่อให้ไฟล์แรกเริ่มต้นที่ 0 และแต่ละไฟล์ถัดไป
ไฟล์เริ่มต้นเมื่อไฟล์ก่อนหน้าเสร็จสิ้น โปรดทราบว่าจะทำทั่วโลกและอาจทำให้เกิด
ช่องว่างหากสตรีมทั้งหมดมีความยาวไม่เท่ากัน
ไฟล์ทั้งหมดต้องมีสตรีมเดียวกัน (ตัวแปลงสัญญาณเดียวกัน ฐานเวลาเดียวกัน ฯลฯ)
ระยะเวลาของแต่ละไฟล์ใช้เพื่อปรับการประทับเวลาของไฟล์ถัดไป: ถ้า
ระยะเวลาไม่ถูกต้อง (เพราะคำนวณโดยใช้อัตราบิตหรือเนื่องจากไฟล์เป็น
ตัดทอน เป็นต้น) ก็สามารถทำให้เกิดสิ่งประดิษฐ์ได้ คำสั่ง "duration" สามารถใช้เพื่อ
แทนที่ระยะเวลาที่เก็บไว้ในแต่ละไฟล์
วากยสัมพันธ์
สคริปต์เป็นไฟล์ข้อความใน Extended-ASCII โดยมีคำสั่งเดียวต่อบรรทัด เส้นเปล่า
ช่องว่างนำหน้าและบรรทัดที่ขึ้นต้นด้วย '#' จะถูกละเว้น คำสั่งต่อไปนี้คือ
ได้รับการยอมรับ:
"ไฟล์ เส้นทาง"
เส้นทางไปยังไฟล์ที่จะอ่าน; อักขระพิเศษและช่องว่างต้องหนีด้วยแบ็กสแลช
หรือคำพูดเดียว
คำสั่งที่เกี่ยวข้องกับไฟล์ที่ตามมาทั้งหมดใช้กับไฟล์นั้น
"ffconcat รุ่น 1.0 "
ระบุประเภทและเวอร์ชันของสคริปต์ นอกจากนี้ยังตั้งค่า ปลอดภัย ตัวเลือกที่ 1 ถ้าเป็นไป
ค่าเริ่มต้นคือ -1
เพื่อให้ FFmpeg รู้จักรูปแบบโดยอัตโนมัติ คำสั่งนี้ต้องปรากฏทุกประการ
ตามที่เป็นอยู่ (ไม่มีช่องว่างเพิ่มเติมหรือ byte-order-mark) ในบรรทัดแรกของสคริปต์
"ระยะเวลา หยาบ"
ระยะเวลาของไฟล์ ข้อมูลนี้สามารถระบุได้จากไฟล์ ระบุมัน
ที่นี่อาจมีประสิทธิภาพมากขึ้นหรือช่วยได้หากไม่มีข้อมูลจากไฟล์
หรือแม่น.
หากกำหนดระยะเวลาสำหรับไฟล์ทั้งหมดก็เป็นไปได้ที่จะค้นหาทั้งหมด
วิดีโอที่ต่อกัน
"อินพอยท์ การประทับเวลา"
ในส่วนของไฟล์. เมื่อ demuxer เปิดไฟล์ มันจะค้นหาไฟล์ . ทันที
เวลาประทับที่ระบุ การค้นหาเสร็จสิ้นเพื่อให้สามารถนำเสนอสตรีมทั้งหมดได้สำเร็จ
ที่จุด.
คำสั่งนี้ทำงานได้ดีที่สุดกับตัวแปลงสัญญาณภายในเฟรม เพราะสำหรับตัวที่ไม่ใช่เฟรมภายใน
โดยปกติคุณจะได้รับแพ็กเก็ตพิเศษก่อนจุด In point จริงและเนื้อหาที่ถอดรหัส
ส่วนใหญ่จะมีเฟรมก่อน In point ด้วย
สำหรับแต่ละไฟล์ แพ็กเก็ตก่อนไฟล์ In point จะมี timestamps น้อยกว่า the
เวลาเริ่มต้นที่คำนวณของไฟล์ (ลบในกรณีของไฟล์แรก) และ
ระยะเวลาของไฟล์ (หากไม่ได้ระบุโดยคำสั่ง "duration") จะลดลง
ตามจุด In ที่ระบุ
เนื่องจากแพ็กเก็ตที่อาจเกิดขึ้นก่อนจุด In ที่ระบุ การประทับเวลาของแพ็กเก็ตอาจ
ทับซ้อนกันระหว่างสองไฟล์ที่ต่อกัน
"จุดยืน การประทับเวลา"
จุดออกของไฟล์. เมื่อ demuxer ถึงเวลาถอดรหัสที่ระบุใน
สตรีมใด ๆ จะจัดการเป็นจุดสิ้นสุดของเงื่อนไขไฟล์และข้ามกระแส
และแพ็กเก็ตที่เหลือทั้งหมดจากสตรีมทั้งหมด
Out point เป็นเอกสิทธิ์ ซึ่งหมายความว่า demuxer จะไม่ส่งออกแพ็กเก็ตด้วย a
การถอดรหัสการประทับเวลามากกว่าหรือเท่ากับจุดออก
คำสั่งนี้ทำงานได้ดีที่สุดกับตัวแปลงสัญญาณภายในเฟรมและรูปแบบที่สตรีมทั้งหมดอยู่
สอดแทรกอย่างแน่นหนา สำหรับตัวแปลงสัญญาณที่ไม่ใช่เฟรมภายใน คุณมักจะได้รับเพิ่มเติม
แพ็กเก็ตที่มีการประทับเวลาการนำเสนอหลังจากจุด Out ดังนั้นเนื้อหาที่ถอดรหัสจะ
น่าจะมีเฟรมหลัง Out point ด้วย ถ้าสตรีมของคุณไม่แน่น
interleaved คุณอาจไม่ได้รับแพ็กเก็ตทั้งหมดจากสตรีมทั้งหมดก่อน Out point และคุณ
จะสามารถถอดรหัสสตรีมแรกสุดได้จนถึงจุดออกเท่านั้น
ระยะเวลาของไฟล์ (หากไม่ได้ระบุโดยคำสั่ง "duration") จะเป็น
ลดลงตามจุดออกที่ระบุ
"file_packet_metadata คีย์=ค่า"
ข้อมูลเมตาของแพ็กเก็ตของไฟล์ ข้อมูลเมตาที่ระบุจะถูกตั้งค่าสำหรับแต่ละไฟล์
แพ็คเก็ต คุณสามารถระบุคำสั่งนี้ได้หลายครั้งเพื่อเพิ่มข้อมูลเมตาหลายรายการ
รายการ.
"ลำธาร"
แนะนำสตรีมในไฟล์เสมือน คำสั่งที่เกี่ยวข้องกับสตรีมที่ตามมาทั้งหมด
นำไปใช้กับสตรีมที่แนะนำล่าสุด ต้องตั้งค่าคุณสมบัติสตรีมบางรายการเพื่อ
อนุญาตให้ระบุสตรีมที่ตรงกันในไฟล์ย่อย หากไม่มีการกำหนดสตรีมใน
สคริปต์ สตรีมจากไฟล์แรกจะถูกคัดลอก
"แน่นอน_สตรีม_id id"
ตั้งค่า ID ของสตรีม หากได้รับคำสั่งนี้ สตริงที่มี
id ที่เกี่ยวข้องในไฟล์ย่อยจะถูกใช้ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับ MPEG-PS
(VOB) ไฟล์ที่ลำดับของสตรีมไม่น่าเชื่อถือ
Options
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
ปลอดภัย
หากตั้งค่าเป็น 1 ให้ปฏิเสธเส้นทางไฟล์ที่ไม่ปลอดภัย เส้นทางของไฟล์จะถือว่าปลอดภัยถ้าไม่
มีข้อกำหนดของโปรโตคอลและสัมพันธ์กันและส่วนประกอบทั้งหมดมีเฉพาะ
อักขระจากชุดอักขระแบบพกพา (ตัวอักษร ตัวเลข จุด ขีดล่าง และ
ยัติภังค์) และไม่มีจุดที่จุดเริ่มต้นขององค์ประกอบ
หากตั้งค่าเป็น 0 ยอมรับชื่อไฟล์ใดๆ
ค่าดีฟอลต์คือ -1 ซึ่งเทียบเท่ากับ 1 หากรูปแบบถูกโพรบโดยอัตโนมัติและ 0
มิฉะนั้น.
อัตโนมัติ_แปลง
หากตั้งค่าเป็น 1 ให้ลองแปลงข้อมูลแพ็กเก็ตโดยอัตโนมัติเพื่อสร้างสตรีม
ต่อกันได้ ค่าเริ่มต้นคือ 1
ปัจจุบัน การแปลงเพียงอย่างเดียวคือการเพิ่มตัวกรองบิตสตรีม h264_mp4toannexb เป็น
สตรีม H.264 ในรูปแบบ MP4 นี่เป็นสิ่งจำเป็นอย่างยิ่งหากมีความละเอียด
การเปลี่ยนแปลง
FLV
โปรแกรมดีม็อกซ์รูปแบบวิดีโอ Adobe Flash
demuxer นี้ใช้เพื่อ demux ไฟล์ FLV และสตรีมเครือข่าย RTMP
-flv_metadata บูล
จัดสรรสตรีมตามเนื้อหาอาร์เรย์ onMetaData
ลิบเม่
ไลบรารี Game Music Emu คือชุดของโปรแกรมจำลองไฟล์เพลงในวิดีโอเกม
ดูhttp://code.google.com/p/game-music-emu/> สำหรับข้อมูลเพิ่มเติม
ไฟล์บางไฟล์มีหลายแทร็ก โปรแกรมดีม็อกซ์จะเลือกแทร็กแรกโดยค่าเริ่มต้น NS
track_index สามารถใช้ตัวเลือกเพื่อเลือกแทร็กอื่นได้ ดัชนีติดตามเริ่มต้นที่ 0 The
demuxer ส่งออกจำนวนแทร็กเป็น แทร็ค การป้อนข้อมูลเมตา
สำหรับไฟล์ขนาดใหญ่มาก ไฟล์ สูงสุด_ขนาด อาจต้องปรับตัวเลือก
ลิบคูวี่
เล่นสื่อจากบริการอินเทอร์เน็ตโดยใช้โปรเจ็กต์ quvi
demuxer ยอมรับ a รูป ตัวเลือกเพื่อขอคุณภาพเฉพาะ โดยค่าเริ่มต้นจะตั้งเป็น
ดีที่สุด.
ดูhttp://quvi.sourceforge.net/> สำหรับข้อมูลเพิ่มเติม
FFmpeg ต้องสร้างด้วย "--enable-libquvi" เพื่อให้ดีลักซ์เซอร์นี้เปิดใช้งานได้
GIF
ตัวล้างไฟล์ GIF แบบเคลื่อนไหว
ยอมรับตัวเลือกต่อไปนี้:
นาที_ล่าช้า
ตั้งค่าการหน่วงเวลาที่ถูกต้องขั้นต่ำระหว่างเฟรมเป็นร้อยวินาที ช่วงคือ 0 ถึง
6000 ค่าเริ่มต้นคือ 2
max_gif_delay
ตั้งค่าการหน่วงเวลาที่ถูกต้องสูงสุดระหว่างเฟรมเป็นร้อยวินาที ช่วงคือ 0 ถึง
65535 ค่าเริ่มต้นคือ 65535 (เกือบสิบเอ็ดนาที) ค่าสูงสุดที่อนุญาตโดย
ข้อกำหนด
default_delay
ตั้งค่าการหน่วงเวลาเริ่มต้นระหว่างเฟรมเป็นร้อยวินาที ช่วง 0 ถึง 6000
ค่าเริ่มต้นคือ 10
ละเว้น_ลูป
ไฟล์ GIF สามารถมีข้อมูลเพื่อวนซ้ำเป็นจำนวนครั้ง (หรือไม่จำกัด)
If ละเว้น_ลูป ถูกตั้งค่าเป็น 1 จากนั้นการตั้งค่าลูปจากอินพุตจะถูกละเว้นและ
การวนซ้ำจะไม่เกิดขึ้น หากตั้งค่าเป็น 0 การวนซ้ำจะเกิดขึ้นและจะวนเป็นตัวเลข
ครั้งตาม GIF ค่าเริ่มต้นคือ 1
ตัวอย่างเช่น ด้วยตัวกรองโอเวอร์เลย์ ให้วาง GIF แบบวนซ้ำแบบไม่จำกัดบนวิดีโออื่น:
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex โอเวอร์เลย์=สั้นที่สุด=1 out.mkv
โปรดทราบว่าในตัวอย่างข้างต้น ตัวเลือกที่สั้นที่สุดสำหรับตัวกรองซ้อนทับใช้เพื่อสิ้นสุด
เอาต์พุตวิดีโอที่ความยาวของไฟล์อินพุตที่สั้นที่สุด ซึ่งในกรณีนี้คือ อินพุต.mp4 as
GIF ในตัวอย่างนี้วนซ้ำไม่รู้จบ
image2
โปรแกรมลบไฟล์รูปภาพ
demuxer นี้อ่านจากรายการไฟล์รูปภาพที่ระบุโดยรูปแบบ ไวยากรณ์และ
ความหมายของรูปแบบถูกระบุโดยตัวเลือก รูปแบบ_ประเภท.
รูปแบบอาจมีคำต่อท้ายที่ใช้กำหนดรูปแบบของ .โดยอัตโนมัติ
ภาพที่มีอยู่ในไฟล์.
ขนาด รูปแบบพิกเซล และรูปแบบของภาพแต่ละภาพจะต้องเท่ากันสำหรับ
ไฟล์ตามลำดับ
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
เฟรม
กำหนดอัตราเฟรมสำหรับสตรีมวิดีโอ ค่าเริ่มต้นคือ 25
ห่วง
หากตั้งค่าเป็น 1 ให้วนซ้ำอินพุต ค่าเริ่มต้นคือ 0
รูปแบบ_ประเภท
เลือกประเภทรูปแบบที่ใช้ในการตีความชื่อไฟล์ที่ให้มา
รูปแบบ_ประเภท ยอมรับค่าใดค่าหนึ่งต่อไปนี้
ไม่มี
ปิดใช้งานการจับคู่รูปแบบ ดังนั้นวิดีโอจะมีเฉพาะรายการที่ระบุ
ภาพ. คุณควรใช้ตัวเลือกนี้หากคุณไม่ต้องการสร้างลำดับจาก
หลายภาพและชื่อไฟล์ของคุณอาจมีอักขระรูปแบบพิเศษ
ลำดับ
เลือกประเภทรูปแบบลำดับ ใช้เพื่อระบุลำดับของไฟล์ที่จัดทำดัชนีโดย
ตัวเลขตามลำดับ
รูปแบบลำดับอาจมีสตริง "%d" หรือ "%0Nd" ซึ่งระบุ
ตำแหน่งของตัวอักษรแทนเลขลำดับในแต่ละชื่อไฟล์
ตรงตามแบบ. หากอยู่ในรูปแบบ "%d0Nd" ใช้สตริงแทน
หมายเลขในแต่ละชื่อไฟล์เป็น 0-padded และ N คือจำนวนรวมของตัวเลขเสริม 0 หลัก
เป็นตัวแทนของตัวเลข อักขระตามตัวอักษร '%' สามารถระบุได้ในรูปแบบ
ด้วยสตริง "%%"
หากรูปแบบลำดับมี "%d" หรือ "%0Nd" ชื่อไฟล์แรกของไฟล์
รายการที่ระบุโดยรูปแบบจะต้องมีตัวเลขรวมอยู่ระหว่าง
start_number และ start_number+start_number_range-1 และตัวเลขต่อไปนี้ทั้งหมด
จะต้องเป็นไปตามลำดับ
ตัวอย่างเช่น รูปแบบ "img-%03d.bmp" จะตรงกับลำดับของชื่อไฟล์ของ
ฟอร์ม img-001.bmp, img-002.bmp, ... , img-010.bmp, ฯลฯ . ; รูปแบบ
"i%%m%%g-%d.jpg" loading="lazy" จะจับคู่ลำดับของชื่อไฟล์ของแบบฟอร์ม ฉัน%m%g-1.jpg,
ฉัน%m%g-2.jpg, ... , ฉัน%m%g-10.jpgฯลฯ
โปรดทราบว่ารูปแบบไม่จำเป็นต้องมี "%d" หรือ "%0Nd" เช่น to
แปลงไฟล์ภาพเดียว img.jpeg คุณสามารถใช้คำสั่ง:
ffmpeg -i img.jpeg img.png
glob
เลือกประเภทรูปแบบสัญลักษณ์ตัวแทน glob
รูปแบบถูกตีความเหมือนรูปแบบ "glob()" เลือกได้ก็ต่อเมื่อ
libavformat ถูกคอมไพล์ด้วยการสนับสนุน globbing
glob_sequence (เลิกใช้, จะ be ลบออก)
เลือกรูปแบบสัญลักษณ์แทน/ลำดับ glob แบบผสม
หากเวอร์ชันของ libavformat ของคุณถูกคอมไพล์ด้วยการสนับสนุน globbing และ
รูปแบบที่ระบุมีอักขระเมตาโกลบอลอย่างน้อยหนึ่งตัวในหมู่ "%*?[]{}" นั่นคือ
นำหน้าด้วย "%" ที่ไม่ใช้ Escape รูปแบบจะถูกตีความเหมือนรูปแบบ "glob()"
มิฉะนั้นจะถูกตีความเหมือนรูปแบบลำดับ
อักขระพิเศษ glob ทั้งหมด "%*?[]{}" ต้องขึ้นต้นด้วย "%" ที่จะหลบหนี a
ตัวอักษร "%" คุณจะต้องใช้ "%%"
ตัวอย่างเช่น รูปแบบ "foo-%*.jpeg" จะตรงกับชื่อไฟล์ทั้งหมดที่นำหน้าด้วย
"foo-" และลงท้ายด้วย ".jpeg" และ "foo-%?%?%?.jpeg" จะจับคู่ทั้งหมด
ชื่อไฟล์ที่นำหน้าด้วย "foo-" ตามด้วยอักขระสามตัว และ
ลงท้ายด้วย ".jpeg"
รูปแบบนี้เลิกใช้แล้วเพื่อสนับสนุน glob และ ลำดับ.
ค่าเริ่มต้นคือ glob_sequence.
pixel_format
กำหนดรูปแบบพิกเซลของรูปภาพที่จะอ่าน หากไม่ระบุรูปแบบพิกเซลคือ
เดาจากไฟล์ภาพแรกในลำดับ
start_number
ตั้งค่าดัชนีของไฟล์ที่ตรงกับรูปแบบไฟล์รูปภาพเพื่อเริ่มอ่าน
ค่าเริ่มต้นคือ 0
start_number_range
ตั้งค่าช่วงช่วงดัชนีเพื่อตรวจสอบเมื่อค้นหาไฟล์ภาพแรกในไฟล์
ลำดับ เริ่มจาก start_number. ค่าเริ่มต้นคือ 5
ts_from_file
หากตั้งค่าเป็น 1 จะตั้งค่าการประทับเวลาของเฟรมเป็นเวลาแก้ไขไฟล์รูปภาพ สังเกตว่า
ไม่ได้ระบุความซ้ำซากจำเจของการประทับเวลา: รูปภาพไปในลำดับเดียวกับที่ไม่มีสิ่งนี้
ตัวเลือก. ค่าเริ่มต้นคือ 0 หากตั้งค่าเป็น 2 จะตั้งค่าการประทับเวลาของเฟรมเป็นการแก้ไข
เวลาของไฟล์ภาพที่มีความแม่นยำระดับนาโนวินาที
วิดีโอ_ขนาด
กำหนดขนาดวิดีโอของภาพที่จะอ่าน หากไม่ได้ระบุขนาดวิดีโอให้เดา
จากไฟล์ภาพแรกในลำดับ
ตัวอย่าง
· ใช้ ffmpeg สำหรับสร้างวิดีโอจากภาพในลำดับไฟล์ img-001.jpeg,
img-002.jpeg, ... สมมติว่าอัตราเฟรมอินพุต 10 เฟรมต่อวินาที:
ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
· ดังที่กล่าวข้างต้น แต่ให้เริ่มต้นด้วยการอ่านจากไฟล์ที่มีดัชนี 100 ตามลำดับ:
ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
· อ่านรูปภาพที่ตรงกับรูปแบบ "*.png" loading="lazy" glob ซึ่งเป็นไฟล์ทั้งหมดที่ลงท้ายด้วย
คำต่อท้าย ".png" กำลังโหลด = "ขี้เกียจ":
ffmpeg -framerate 10 -pattern_type glob -i "*.png" กำลังโหลด = "ขี้เกียจ" out.mkv
mov/mp4/3gp/Quicktme
โปรแกรมลดเวลา Quicktime / MP4
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
Enable_drefs
เปิดใช้งานการโหลดแทร็กภายนอก ปิดใช้งานโดยค่าเริ่มต้น การเปิดใช้งาน can . นี้
ข้อมูลทางทฤษฎีรั่วไหลในบางกรณีการใช้งาน
use_absolute_path
อนุญาตให้โหลดแทร็กภายนอกผ่านเส้นทางที่แน่นอน ปิดใช้งานโดยค่าเริ่มต้น กำลังเปิดใช้งาน
สิ่งนี้ทำให้เกิดความเสี่ยงด้านความปลอดภัย ควรเปิดใช้งานก็ต่อเมื่อทราบว่าแหล่งที่มาไม่ใช่
เป็นอันตราย
mpegts
ตัวถอดรหัสสตรีมการขนส่ง MPEG-2
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
ซิงค์_ขนาด
ตั้งค่าขีดจำกัดขนาดเพื่อค้นหาการซิงโครไนซ์ใหม่ ค่าเริ่มต้นคือ 65536
fix_teletext_pts
แทนที่ค่า PTS และ DTS ของแพ็กเก็ตเทเลเท็กซ์ด้วยการประทับเวลาที่คำนวณจาก
PCR ของโปรแกรมแรกที่สตรีมเทเลเท็กซ์เป็นส่วนหนึ่งของและไม่ละทิ้ง
ค่าเริ่มต้นคือ 1 ตั้งค่าตัวเลือกนี้เป็น 0 หากคุณต้องการแพ็กเก็ตเทเลเท็กซ์ PTS และ DTS
คุณค่าที่ไม่ถูกแตะต้อง
ts_packetsize
ตัวเลือกเอาต์พุตที่มีขนาดแพ็กเก็ตดิบเป็นไบต์ แสดงแพ็คเก็ตดิบที่ตรวจพบ
ขนาดที่ผู้ใช้กำหนดไม่ได้
scan_all_pmts
สแกนและรวม PMT ทั้งหมด ค่าเป็นจำนวนเต็มที่มีค่าตั้งแต่ -1 ถึง 1 (-1 หมายถึง
การตั้งค่าอัตโนมัติ 1 หมายถึงเปิดใช้งาน 0 หมายถึงปิดใช้งาน) ค่าเริ่มต้นคือ -1
วิดีโอดิบ
ตัวถอดรหัสวิดีโอดิบ
demuxer นี้อนุญาตให้อ่านข้อมูลวิดีโอดิบ เนื่องจากไม่มีส่วนหัวระบุ
สมมติพารามิเตอร์วิดีโอ ผู้ใช้ต้องระบุเพื่อให้สามารถถอดรหัส
ข้อมูลได้อย่างถูกต้อง
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
เฟรม
ตั้งค่าอัตราเฟรมวิดีโออินพุต ค่าเริ่มต้นคือ 25
pixel_format
ตั้งค่ารูปแบบพิกเซลของวิดีโออินพุต ค่าเริ่มต้นคือ "yuv420p"
วิดีโอ_ขนาด
ตั้งค่าขนาดวิดีโออินพุต ต้องระบุค่านี้อย่างชัดเจน
เช่น การอ่านไฟล์ rawvideo อินพุต.ดิบ กับ ffplay, สมมติว่ารูปแบบพิกเซลของ
"rgb24" ขนาดวิดีโอ "320x240" และอัตราเฟรม 10 ภาพต่อวินาที ใช้
คำสั่ง:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 อินพุตดิบ
เอสบีจี
ตัวกำจัดสคริปต์ SBaGen
demuxer นี้อ่านภาษาสคริปต์ที่ใช้โดยSBaGenhttp://uazu.net/sbagen/> ถึง
สร้างเซสชัน binaural beats สคริปต์ SBG มีลักษณะดังนี้:
-ถ้า
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
ปิด: -
ตอนนี้ == a
+0:07:00 == ข
+0:14:00 == ก
+0:21:00 == ข
+0:30:00 ปิด
สคริปต์ SBG สามารถผสมการประทับเวลาแบบสัมบูรณ์และแบบสัมพัทธ์ได้ หากสคริปต์ใช้อย่างใดอย่างหนึ่งเท่านั้น
การประทับเวลาแบบสัมบูรณ์ (รวมถึงเวลาเริ่มต้นของสคริปต์) หรือเวลาที่เกี่ยวข้องเท่านั้น ตามด้วย
เลย์เอาต์ได้รับการแก้ไขและการแปลงนั้นตรงไปตรงมา ในทางกลับกัน ถ้าสคริปต์
ผสมการประทับเวลาทั้งสองแบบ แล้ว NOW การอ้างอิงสำหรับการประทับเวลาสัมพัทธ์จะเป็น
นำมาจากเวลาปัจจุบันของวันที่อ่านสคริปต์และเค้าโครงสคริปต์
จะถูกแช่แข็งตามข้อมูลอ้างอิงนั้น นั่นก็หมายความว่าถ้าเป็นสคริปต์โดยตรง
ที่เล่น เวลาจริงจะตรงกับการประทับเวลาที่แน่นอนถึงตัวควบคุมเสียงของ
ความแม่นยำของนาฬิกา แต่ถ้าผู้ใช้หยุดเล่นชั่วคราวหรือค้นหาอย่างใด เวลาทั้งหมดจะเป็น
เลื่อนไปตามนั้น
คำบรรยายภาพ
คำบรรยาย JSON ใช้สำหรับhttp://www.ted.com/>.
TED ไม่มีลิงก์ไปยังคำอธิบายภาพ แต่สามารถเดาได้จากหน้า NS
ไฟล์ tools/bookmarklets.html จากแผนผังซอร์ส FFmpeg มี bookmarklet เพื่อเปิดเผย
พวกเขา
demuxer นี้ยอมรับตัวเลือกต่อไปนี้:
เวลาเริ่มต้น
ตั้งเวลาเริ่มต้นของการพูดคุย TED เป็นมิลลิวินาที ค่าเริ่มต้นคือ 15000 (15 วินาที) มันคือ
ใช้เพื่อซิงค์คำบรรยายกับวิดีโอที่ดาวน์โหลดได้ เพราะมี 15s
บทนำ
ตัวอย่าง: แปลงคำบรรยายเป็นรูปแบบที่ผู้เล่นส่วนใหญ่เข้าใจ:
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-th.srt
มิวเซอร์
Muxers เป็นองค์ประกอบที่กำหนดค่าใน FFmpeg ซึ่งอนุญาตให้เขียนสตรีมมัลติมีเดียไปยังa
ไฟล์บางประเภท
เมื่อคุณกำหนดค่าบิลด์ FFmpeg ของคุณ muxers ที่รองรับทั้งหมดจะถูกเปิดใช้งานตามค่าเริ่มต้น คุณ
สามารถแสดงรายการ muxers ที่มีอยู่ทั้งหมดโดยใช้ตัวเลือกการกำหนดค่า "--list-muxers"
คุณสามารถปิดการใช้งาน muxers ทั้งหมดด้วยตัวเลือกการกำหนดค่า "--disable-muxers" และ
เลือกเปิด / ปิดการใช้งาน muxers เดี่ยวด้วยตัวเลือก "--enable-muxer=มิกซ์เซอร์" /
"--disable-muxer=มิกซ์เซอร์".
ตัวเลือก "-formats" ของเครื่องมือ ff* จะแสดงรายการของ muxers ที่เปิดใช้งาน
คำอธิบายของ muxers ที่มีอยู่ในปัจจุบันมีดังนี้
แอฟ
รูปแบบไฟล์เสียง Interchange muxer
Options
ยอมรับตัวเลือกต่อไปนี้:
write_id3v2
เปิดใช้งานการเขียนแท็ก ID3v2 เมื่อตั้งค่าเป็น 1 ค่าเริ่มต้นคือ 0 (ปิดใช้งาน)
id3v2_version
เลือกเวอร์ชัน ID3v2 ที่จะเขียน ปัจจุบันมีเพียงรุ่น 3 และ 4 (aka. ID3v2.3 และ
รองรับ ID3v2.4) ค่าเริ่มต้นคือเวอร์ชัน 4
ซีอาร์ซี
รูปแบบการทดสอบ CRC (Cyclic Redundancy Check)
muxer นี้คำนวณและพิมพ์ Adler-32 CRC ของเฟรมเสียงและวิดีโออินพุตทั้งหมด
โดยค่าเริ่มต้น เฟรมเสียงจะถูกแปลงเป็นเฟรมเสียงดิบ 16 บิตและเฟรมวิดีโอที่ลงนามเป็น raw
วิดีโอก่อนคำนวณ CRC
ผลลัพธ์ของ muxer ประกอบด้วยบรรทัดเดียวของรูปแบบ: CRC=0xซีอาร์ซีที่นี่มี ซีอาร์ซี คือ
เลขฐานสิบหก 0-padded ถึง 8 หลักที่มี CRC สำหรับอินพุตถอดรหัสทั้งหมด
เฟรม
ดูเพิ่มเติมที่ เฟรมซีอาร์ซี มิกซ์เซอร์
ตัวอย่าง
ตัวอย่างเช่นการคำนวณ CRC ของอินพุตและเก็บไว้ในไฟล์ ออก.crc:
ffmpeg -i อินพุต -f crc out.crc
คุณสามารถพิมพ์ CRC ไปยัง stdout ด้วยคำสั่ง:
ffmpeg -i อินพุต -f crc -
คุณสามารถเลือกรูปแบบเอาต์พุตของแต่ละเฟรมด้วย ffmpeg โดยระบุเสียงและ
ตัวแปลงสัญญาณวิดีโอและรูปแบบ ตัวอย่างเช่นการคำนวณ CRC ของเสียงอินพุตที่แปลงเป็น PCM
8 บิตที่ไม่ได้ลงนามและวิดีโออินพุตที่แปลงเป็นวิดีโอ MPEG-2 ใช้คำสั่ง:
ffmpeg -i อินพุต -c:a pcm_u8 -c:v mpeg2video -f crc -
เฟรมซีอาร์ซี
รูปแบบการทดสอบ CRC ต่อแพ็คเก็ต (Cyclic Redundancy Check)
muxer นี้คำนวณและพิมพ์ Adler-32 CRC สำหรับแต่ละแพ็กเก็ตเสียงและวิดีโอ โดย
เฟรมเสียงเริ่มต้นจะถูกแปลงเป็นเฟรมเสียงดิบ 16 บิตที่ลงนามและเฟรมวิดีโอเป็น raw
วิดีโอก่อนคำนวณ CRC
เอาต์พุตของ muxer ประกอบด้วยบรรทัดสำหรับแต่ละแพ็กเก็ตเสียงและวิดีโอของแบบฟอร์ม:
, , , , , 0x
ซีอาร์ซี เป็นเลขฐานสิบหก 0-padded ถึง 8 หลักที่มี CRC ของแพ็กเก็ต
ตัวอย่าง
ตัวอย่างเช่นการคำนวณ CRC ของเฟรมเสียงและวิดีโอใน INPUT, แปลงเป็น raw
แพ็กเก็ตเสียงและวิดีโอ และจัดเก็บไว้ในไฟล์ ออก.crc:
ffmpeg -i อินพุต -f framecrc out.crc
ในการพิมพ์ข้อมูลไปยัง stdout ให้ใช้คำสั่ง:
ffmpeg -i อินพุต -f framecrc -
ด้วยระบบเส้นทาง ffmpegคุณสามารถเลือกรูปแบบเอาต์พุตที่เป็นเฟรมเสียงและวิดีโอได้
เข้ารหัสก่อนคำนวณ CRC สำหรับแต่ละแพ็กเก็ตโดยระบุตัวแปลงสัญญาณเสียงและวิดีโอ
ตัวอย่างเช่น ในการคำนวณ CRC ของเฟรมเสียงอินพุตที่ถอดรหัสแต่ละเฟรมที่แปลงเป็น PCM
8 บิตที่ไม่ได้ลงนามและเฟรมวิดีโออินพุตที่ถอดรหัสแต่ละเฟรมที่แปลงเป็นวิดีโอ MPEG-2 ให้ใช้
คำสั่ง:
ffmpeg -i อินพุต -c:a pcm_u8 -c:v mpeg2video -f framecrc -
ดูเพิ่มเติมที่ ซีอาร์ซี มิกซ์เซอร์
เฟรมเอ็มดี5
รูปแบบการทดสอบ MD5 ต่อแพ็คเก็ต
muxer นี้คำนวณและพิมพ์แฮช MD5 สำหรับแต่ละแพ็กเก็ตเสียงและวิดีโอ โดยค่าเริ่มต้น
เฟรมเสียงจะถูกแปลงเป็นเสียงดิบ 16 บิตที่ลงนามและเฟรมวิดีโอเป็นวิดีโอดิบก่อน
การคำนวณแฮช
เอาต์พุตของ muxer ประกอบด้วยบรรทัดสำหรับแต่ละแพ็กเก็ตเสียงและวิดีโอของแบบฟอร์ม:
, , , , ,
MD5 เป็นเลขฐานสิบหกที่แสดงถึงแฮช MD5 ที่คำนวณสำหรับแพ็กเก็ต
ตัวอย่าง
ตัวอย่างเช่นการคำนวณ MD5 ของเฟรมเสียงและวิดีโอใน INPUT, แปลงเป็น raw
แพ็กเก็ตเสียงและวิดีโอ และจัดเก็บไว้ในไฟล์ ออก.md5:
ffmpeg -i อินพุต -f framemd5 out.md5
ในการพิมพ์ข้อมูลไปยัง stdout ให้ใช้คำสั่ง:
ffmpeg -i อินพุต -f framemd5 -
ดูเพิ่มเติมที่ md5 มิกซ์เซอร์
GIF
ภาพเคลื่อนไหว GIF muxer
ยอมรับตัวเลือกต่อไปนี้:
ห่วง
กำหนดจำนวนครั้งในการวนรอบเอาต์พุต ใช้ "-1" สำหรับไม่มีการวนซ้ำ 0 สำหรับการวนซ้ำ
อย่างไม่มีกำหนด (ค่าเริ่มต้น)
Final_delay
บังคับการหน่วงเวลา (แสดงเป็นเซนติเมตร) หลังจากเฟรมสุดท้าย แต่ละเฟรมลงท้ายด้วย
ล่าช้าจนถึงเฟรมถัดไป ค่าเริ่มต้นคือ "-1" ซึ่งเป็นค่าพิเศษที่จะบอก
muxer เพื่อนำการหน่วงเวลาก่อนหน้ากลับมาใช้ใหม่ ในกรณีที่วนซ้ำคุณอาจต้องการปรับแต่ง
ค่านี้เพื่อทำเครื่องหมายหยุดชั่วคราวเช่น
ตัวอย่างเช่น ในการเข้ารหัส gif ที่วนซ้ำ 10 ครั้ง โดยมีการหน่วงเวลา 5 วินาทีระหว่างลูป:
ffmpeg -i อินพุต -loop 10 -final_delay 500 out.gif
หมายเหตุ 1: หากคุณต้องการแยกเฟรมในไฟล์ GIF แยกต่างหาก คุณต้องบังคับ
image2 มิกซ์เซอร์:
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
หมายเหตุ 2: รูปแบบ GIF มีฐานเวลาที่เล็กมาก: ไม่สามารถหน่วงเวลาระหว่างสองเฟรมได้
น้อยกว่าหนึ่งเซ็นติวินาที
สวัสดี
muxer ของ Apple HTTP Live Streaming ที่แบ่งกลุ่ม MPEG-TS ตาม HTTP Live Streaming
(HLS) ข้อกำหนด
มันสร้างไฟล์เพลย์ลิสต์และไฟล์เซ็กเมนต์ตั้งแต่หนึ่งไฟล์ขึ้นไป ชื่อไฟล์เอาต์พุตระบุ
ชื่อไฟล์เพลย์ลิสต์
ตามค่าเริ่มต้น muxer จะสร้างไฟล์สำหรับแต่ละส่วนที่สร้างขึ้น ไฟล์เหล่านี้มีเหมือนกัน
ตั้งชื่อเป็นเพลย์ลิสต์ ตามด้วยหมายเลขตามลำดับและนามสกุล .ts
ตัวอย่างเช่น การแปลงไฟล์อินพุตด้วย ffmpeg:
ffmpeg -i เข้า.อ่อนนุช out.m3u8
ตัวอย่างนี้จะสร้างเพลย์ลิสต์ ออก.m3u8และไฟล์เซ็กเมนต์: ออก0.ts, ออก1.ts,
ออก2.tsฯลฯ
ดูเพิ่มเติมที่ ส่วน muxer ซึ่งให้การใช้งานa .ทั่วไปและยืดหยุ่นมากขึ้น
เซ็กเมนต์ และสามารถใช้เพื่อดำเนินการแบ่งส่วน HLS
Options
muxer นี้รองรับตัวเลือกต่อไปนี้:
hls_time วินาที
กำหนดความยาวของเซ็กเมนต์เป็นวินาที ค่าเริ่มต้นคือ 2
hls_list_size ขนาด
กำหนดจำนวนรายการเพลย์ลิสต์สูงสุด หากตั้งค่าเป็น 0 ไฟล์รายการจะมีทั้งหมด
เซ็กเมนต์ ค่าเริ่มต้นคือ 5
hls_ts_options ตัวเลือก_รายการ
ตั้งค่าตัวเลือกรูปแบบเอาต์พุตโดยใช้รายการ :-separated ของพารามิเตอร์คีย์=ค่า ค่านิยม
ที่มี ":" ต้องหลีกเลี่ยงอักขระพิเศษ
hls_wrap ห่อ
ตั้งค่าหมายเลขหลังจากนั้นหมายเลขชื่อไฟล์เซกเมนต์ (หมายเลขที่ระบุในแต่ละ
ไฟล์เซกเมนต์) ห่อ หากตั้งค่าเป็น 0 ตัวเลขจะไม่ถูกห่อ ค่าเริ่มต้นคือ 0
ตัวเลือกนี้มีประโยชน์ในการหลีกเลี่ยงการเติมไฟล์เซกเมนต์จำนวนมากและขีดจำกัด
จำนวนไฟล์เซ็กเมนต์สูงสุดที่เขียนลงดิสก์ไปยัง ห่อ.
start_number จำนวน
เริ่มหมายเลขลำดับรายการเล่นจาก จำนวน. ค่าเริ่มต้นคือ 0
hls_allow_cache อนุญาตแคช
กำหนดอย่างชัดเจนว่าไคลเอนต์ MAY \ฟิส0(1) หรือต้องไม่ \ฟิส0(0) สื่อแคช
กลุ่ม
hls_base_url เบส
ผนวก เบส ทุกรายการในเพลย์ลิสต์ มีประโยชน์ในการสร้างเพลย์ลิสต์ด้วย
เส้นทางที่แน่นอน
โปรดทราบว่าหมายเลขลำดับเพลย์ลิสต์ต้องไม่ซ้ำกันสำหรับแต่ละส่วนและไม่ใช่
ให้สับสนกับหมายเลขลำดับของชื่อไฟล์เซกเมนต์ซึ่งสามารถวนซ้ำได้สำหรับ
ตัวอย่าง ถ้า ห่อ มีการระบุตัวเลือก
hls_segment_ชื่อไฟล์ ชื่อไฟล์
ตั้งชื่อไฟล์เซกเมนต์ เว้นแต่ตั้งค่า hls_flags single_file ไว้ ชื่อไฟล์ ใช้เป็น
รูปแบบสตริงที่มีหมายเลขเซ็กเมนต์:
ffmpeg in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
ตัวอย่างนี้จะสร้างเพลย์ลิสต์ ออก.m3u8และไฟล์เซ็กเมนต์: ไฟล์000.ts,
ไฟล์001.ts, ไฟล์002.tsฯลฯ
hls_key_info_file key_info_file
ใช้ข้อมูลใน key_info_file สำหรับการเข้ารหัสเซ็กเมนต์ บรรทัดแรกของ
key_info_file ระบุ URI คีย์ที่เขียนไปยังเพลย์ลิสต์ URL คีย์ใช้เพื่อ
เข้าถึงคีย์การเข้ารหัสระหว่างการเล่น บรรทัดที่สองระบุเส้นทางไปยัง
ไฟล์คีย์ที่ใช้เพื่อรับคีย์ระหว่างกระบวนการเข้ารหัส ไฟล์คีย์ถูกอ่านเป็น
อาร์เรย์เดียวที่บรรจุ 16 ออคเต็ตในรูปแบบไบนารี บรรทัดที่สามที่เป็นตัวเลือกระบุ
initialization vector (IV) เป็นสตริงฐานสิบหกที่จะใช้แทน
หมายเลขลำดับเซ็กเมนต์ (ค่าเริ่มต้น) สำหรับการเข้ารหัส เปลี่ยนเป็น key_info_file จะส่งผล
ในการเข้ารหัสเซ็กเมนต์ด้วยคีย์ใหม่/IV และรายการในเพลย์ลิสต์สำหรับคีย์ใหม่
URI/IV
รูปแบบไฟล์ข้อมูลสำคัญ:
(ไม่จำเป็น)
ตัวอย่าง URI ที่สำคัญ:
http://server/file.key
/path/to/file.key
ไฟล์.คีย์
ตัวอย่างเส้นทางไฟล์หลัก:
ไฟล์.คีย์
/path/to/file.key
ตัวอย่าง IV:
0123456789ABCDEF0123456789ABCDEF
ตัวอย่างไฟล์ข้อมูลสำคัญ:
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF
ตัวอย่างเชลล์สคริปต์:
#!bin / sh /
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i ทดสอบ -c:v h264 -hls_flags delete_segments \
-hls_key_info_file file.keyinfo out.m3u8
hls_flags ไฟล์เดียว
หากตั้งค่าสถานะนี้ muxer จะจัดเก็บทุกส่วนในไฟล์ MPEG-TS ไฟล์เดียวและ
จะใช้ช่วงไบต์ในเพลย์ลิสต์ เพลย์ลิสต์ HLS ที่สร้างด้วยวิธีนี้จะมี
รุ่นหมายเลข 4 ตัวอย่างเช่น:
ffmpeg -i in.nut -hls_flags single_file out.m3u8
จะทำรายการเล่น ออก.m3u8และไฟล์เซ็กเมนต์เดียว ออกทีเอส.
hls_flags ลบ_เซ็กเมนต์
ไฟล์เซ็กเมนต์ที่ลบออกจากเพลย์ลิสต์จะถูกลบออกหลังจากช่วงเวลาหนึ่งเท่ากับ
ระยะเวลาของเซ็กเมนต์บวกกับระยะเวลาของเพลย์ลิสต์
ICO
ไฟล์ ICO muxer
รูปแบบไฟล์ไอคอนของ Microsoft (ICO) มีข้อ จำกัด บางประการที่ควรสังเกต:
· ขนาดต้องไม่เกิน 256 พิกเซลในทุกมิติ
·สามารถจัดเก็บได้เฉพาะภาพ BMP และ PNG เท่านั้น
· หากใช้ภาพ BMP จะต้องเป็นรูปแบบพิกเซลแบบใดแบบหนึ่งต่อไปนี้:
BMP Bit Depth FFmpeg รูปแบบพิกเซล
1 บิต pal8
4 บิต pal8
8 บิต pal8
16บิตrgb555le
24 บิต bgr24
32บิต bgra
· หากใช้อิมเมจ BMP ก็ต้องใช้ส่วนหัว BITMAPINFOHEADER DIB
· หากใช้ภาพ PNG จะต้องใช้รูปแบบพิกเซล rgba
image2
ไฟล์รูปภาพ muxer
ไฟล์รูปภาพ muxer เขียนเฟรมวิดีโอลงในไฟล์รูปภาพ
ชื่อไฟล์เอาต์พุตถูกระบุโดยรูปแบบ ซึ่งสามารถนำไปใช้สร้างตามลำดับได้
ชุดหมายเลขของไฟล์ รูปแบบอาจมีสตริง "%d" หรือ "%0Nd", สตริงนี้
ระบุตำแหน่งของอักขระที่แสดงหมายเลขในชื่อไฟล์ ถ้า
แบบฟอร์ม "%0Nd" ถูกใช้ สตริงที่แสดงตัวเลขในแต่ละชื่อไฟล์คือ 0-padded to N
ตัวเลข อักขระตามตัวอักษร '%' สามารถระบุได้ในรูปแบบโดยใช้สตริง "%%"
หากรูปแบบมี "%d" หรือ "%0Nd" ชื่อไฟล์แรกของรายการไฟล์ที่ระบุ will
มีหมายเลข 1 ตัวเลขต่อไปนี้ทั้งหมดจะเรียงตามลำดับ
รูปแบบอาจมีคำต่อท้ายที่ใช้กำหนดรูปแบบของ .โดยอัตโนมัติ
ไฟล์รูปภาพที่จะเขียน
ตัวอย่างเช่น รูปแบบ "img-%03d.bmp" จะระบุลำดับของชื่อไฟล์ของ form
img-001.bmp, img-002.bmp, ... , img-010.bmpฯลฯ รูปแบบ "img%%-%d.jpg" loading="lazy" จะระบุ
ลำดับของชื่อไฟล์ของแบบฟอร์ม img%-1.jpg, img%-2.jpg, ... , img%-10.jpgฯลฯ
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีการใช้งาน ffmpeg สำหรับสร้างลำดับของไฟล์
img-001.jpeg, img-002.jpeg, ..., ถ่ายหนึ่งภาพทุกวินาทีจากวิดีโออินพุต:
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
โปรดทราบว่าด้วย ffmpegหากไม่ได้ระบุรูปแบบด้วยตัวเลือก "-f" และเอาต์พุต
filename ระบุรูปแบบไฟล์รูปภาพ muxer image2 จะถูกเลือกโดยอัตโนมัติ ดังนั้น
คำสั่งก่อนหน้าสามารถเขียนได้ดังนี้:
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
โปรดทราบว่ารูปแบบไม่จำเป็นต้องมี "%d" หรือ "%0Nd" เช่น to
สร้างไฟล์ภาพเดียว img.jpeg จากวิดีโออินพุตคุณสามารถใช้คำสั่ง:
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
เค้ก สตริฟไทม์ ตัวเลือกช่วยให้คุณขยายชื่อไฟล์ด้วยข้อมูลวันที่และเวลา
ตรวจสอบเอกสารของฟังก์ชัน "strftime()" สำหรับไวยากรณ์
ตัวอย่างเช่น การสร้างไฟล์รูปภาพจากรูปแบบ "strftime()" "%Y-%m-%d_%H-%M-%S"
ดังต่อไปนี้ ffmpeg สามารถใช้คำสั่ง:
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
Options
start_number
เริ่มลำดับจากหมายเลขที่ระบุ ค่าเริ่มต้นคือ 0
ปรับปรุง
หากตั้งค่าเป็น 1 ชื่อไฟล์จะถูกตีความว่าเป็นชื่อไฟล์เท่านั้น ไม่ใช่ a
รูปแบบ และไฟล์ที่เกี่ยวข้องจะถูกเขียนทับด้วยภาพใหม่อย่างต่อเนื่อง
ค่าเริ่มต้นคือ 0
สตริฟไทม์
หากตั้งค่าเป็น 1 ให้ขยายชื่อไฟล์ด้วยข้อมูลวันที่และเวลาจาก "strftime()"
ค่าเริ่มต้นคือ 0
muxer รูปภาพรองรับรูปแบบไฟล์ภาพ .YUV รูปแบบนี้มีความพิเศษตรงที่ว่า
เฟรมภาพแต่ละเฟรมประกอบด้วยไฟล์สามไฟล์ สำหรับแต่ละคอมโพเนนต์ YUV420P อ่านหรือ
เขียนรูปแบบไฟล์รูปภาพนี้ ระบุชื่อไฟล์ '.Y' เดอะ muxer จะ
เปิดไฟล์ '.U' และ '.V' โดยอัตโนมัติตามต้องการ
Matroska
Matroska คอนเทนเนอร์ muxer
muxer นี้ใช้ข้อกำหนดของคอนเทนเนอร์ matroska และ webm
เมตาดาต้า
การตั้งค่าข้อมูลเมตาที่รู้จักใน muxer นี้คือ:
ชื่อเรื่อง
ตั้งชื่อเรื่องให้กับแทร็กเดียว
language
ระบุภาษาของแทร็กในรูปแบบภาษา Matroska
ภาษาสามารถเป็นได้ทั้ง 3 ตัวอักษรบรรณานุกรม ISO-639-2 (ISO 639-2/B) form
(เช่น "ฟรี" สำหรับภาษาฝรั่งเศส) หรือรหัสภาษาผสมกับรหัสประเทศสำหรับความชำนาญพิเศษ
ในภาษาต่างๆ (เช่น "fre-ca" สำหรับภาษาฝรั่งเศสแบบแคนาดา)
สเตอริโอ_โหมด
ตั้งค่าเลย์เอาต์วิดีโอสเตอริโอ 3 มิติของสองมุมมองในแทร็กวิดีโอเดียว
ค่าต่อไปนี้เป็นที่รู้จัก:
โมโน
วิดีโอไม่เป็นสเตอริโอ
ซ้ายขวา
มุมมองทั้งสองถูกจัดวางเคียงข้างกัน มุมมองตาซ้ายอยู่ทางซ้าย
ด้านล่าง_ด้านบน
มุมมองทั้งสองถูกจัดเรียงในการวางแนวบน-ล่าง มุมมองตาซ้ายอยู่ที่ด้านล่าง
บน_ล่าง
มุมมองทั้งสองถูกจัดเรียงในการวางแนวบน-ล่าง มุมมองตาซ้ายอยู่ด้านบน
กระดานหมากรุก_rl
แต่ละมุมมองถูกจัดเรียงในรูปแบบกระดานหมากรุก ตาซ้ายเป็นมุมมอง
เป็นครั้งแรก
กระดานหมากรุก_lr
แต่ละมุมมองถูกจัดเรียงในรูปแบบกระดานหมากรุก ตาขวาเป็น
เป็นครั้งแรก
row_interleaved_rl
แต่ละมุมมองประกอบด้วยการสลับแถวตาม มุมมองตาขวาคือแถวแรก
row_interleaved_lr
แต่ละมุมมองประกอบด้วยการสลับแถวตาม มุมมองตาซ้ายคือแถวแรก
col_interleaved_rl
มุมมองทั้งสองถูกจัดเรียงในลักษณะการสลับระหว่างคอลัมน์ มุมมองตาขวาคือ
คอลัมน์แรก
col_interleaved_lr
มุมมองทั้งสองถูกจัดเรียงในลักษณะการสลับระหว่างคอลัมน์ มุมมองตาซ้ายคือ
คอลัมน์แรก
anaglyph_cyan_red
เฟรมทั้งหมดอยู่ในรูปแบบ anaglyph ที่สามารถดูได้ผ่านตัวกรองสีแดงฟ้า
ขวาซ้าย
มุมมองทั้งสองถูกจัดเรียงเคียงข้างกัน มุมมองตาขวาอยู่ทางซ้าย
anaglyph_green_magenta
เฟรมทั้งหมดอยู่ในรูปแบบ anaglyph ที่สามารถดูได้ผ่านตัวกรองสีเขียว-ม่วงแดง
block_lr
ตาทั้งสองเจือในบล็อกเดียว มุมมองตาซ้ายเป็นที่หนึ่ง
block_rl
ตาทั้งสองเจือในบล็อกเดียว มุมมองตาขวาเป็นอันดับแรก
ตัวอย่างเช่น สามารถสร้างคลิป 3D WebM โดยใช้บรรทัดคำสั่งต่อไปนี้:
ffmpeg -i ตัวอย่าง_ซ้าย_ขวา_clip.mpg -an -c:v libvpx -ข้อมูลเมตา stereo_mode=left_right -y stereo_clip.webm
Options
muxer นี้รองรับตัวเลือกต่อไปนี้:
สำรอง_index_space
โดยค่าเริ่มต้น muxer นี้เขียนดัชนีเพื่อค้นหา (เรียกว่าตัวชี้นำในเงื่อนไข Matroska) ที่
ท้ายไฟล์เพราะไม่รู้ล่วงหน้าว่าเหลือพื้นที่เท่าไหร่ให้
ดัชนีที่จุดเริ่มต้นของไฟล์ อย่างไรก็ตาม สำหรับการใช้งานบางกรณี เช่น การสตรีม
การค้นหาเป็นไปได้แต่ช้า -- การวางดัชนีไว้ที่จุดเริ่มต้นจะเป็นประโยชน์
ของไฟล์
หากตัวเลือกนี้ถูกตั้งค่าเป็นค่าที่ไม่ใช่ศูนย์ muxer จะสงวนจำนวนเงินที่กำหนด
ช่องว่างในส่วนหัวของไฟล์แล้วลองเขียนตัวชี้นำที่นั่นเมื่อ muxing
เสร็จสิ้น หากพื้นที่ว่างไม่เพียงพอ muxing จะล้มเหลว ขนาดที่ปลอดภัยสำหรับ
กรณีการใช้งานส่วนใหญ่ควรอยู่ที่ประมาณ 50kB ต่อชั่วโมงของวิดีโอ
โปรดทราบว่าตัวชี้นำจะถูกเขียนก็ต่อเมื่อค้นหาผลลัพธ์ได้และตัวเลือกนี้จะไม่มี
มีผลถ้าไม่ใช่
md5
รูปแบบการทดสอบ MD5
muxer นี้คำนวณและพิมพ์แฮช MD5 ของเฟรมเสียงและวิดีโออินพุตทั้งหมด โดย
เฟรมเสียงเริ่มต้นจะถูกแปลงเป็นเฟรมเสียงดิบ 16 บิตที่ลงนามและเฟรมวิดีโอเป็น raw
วิดีโอก่อนคำนวณแฮช
ผลลัพธ์ของ muxer ประกอบด้วยบรรทัดเดียวของรูปแบบ: MD5=MD5ที่นี่มี MD5 คือ
เลขฐานสิบหกแทนแฮช MD5 ที่คำนวณ
ตัวอย่างเช่น การคำนวณแฮช MD5 ของอินพุตที่แปลงเป็นเสียงและวิดีโอดิบ และ
เก็บไว้ในไฟล์ ออก.md5:
ffmpeg -i อินพุต -f md5 out.md5
คุณสามารถพิมพ์ MD5 ไปยัง stdout ด้วยคำสั่ง:
ffmpeg -i อินพุต -f md5 -
ดูเพิ่มเติมที่ เฟรมเอ็มดี5 มิกซ์เซอร์
ย้าย, mp4, ไอเอ็มวี
MOV/MP4/ISMV (สตรีมมิ่งที่ราบรื่น) muxer
mov/mp4/ismv muxer รองรับการกระจายตัว โดยปกติ ไฟล์ MOV/MP4 จะมี
ข้อมูลเมตาเกี่ยวกับแพ็กเก็ตทั้งหมดที่จัดเก็บไว้ในที่เดียว (เขียนไว้ท้ายไฟล์ มันสามารถ
ถูกย้ายไปที่จุดเริ่มต้นเพื่อการเล่นที่ดีขึ้นโดยการเพิ่ม สตาร์ทเร็ว ไป movflagsหรือใช้
qt-เริ่มต้นอย่างรวดเร็ว เครื่องมือ). ไฟล์ที่แยกส่วนประกอบด้วยส่วนต่าง ๆ โดยที่ packets
และข้อมูลเมตาเกี่ยวกับแพ็กเก็ตเหล่านี้จะถูกจัดเก็บไว้ด้วยกัน การเขียนไฟล์ที่กระจัดกระจายมี
ข้อดีที่ไฟล์สามารถถอดรหัสได้แม้ว่าการเขียนจะถูกขัดจังหวะ (ในขณะที่ไฟล์ปกติ
MOV/MP4 จะถอดรหัสไม่ได้หากยังไม่เสร็จสิ้นอย่างถูกต้อง) และต้องใช้หน่วยความจำน้อยลงเมื่อ
การเขียนไฟล์ที่ยาวมาก (ตั้งแต่เขียนไฟล์ MOV/MP4 ปกติจะเก็บข้อมูลเกี่ยวกับทุกๆ ไฟล์
แพ็กเก็ตในหน่วยความจำจนกว่าไฟล์จะถูกปิด) ข้อเสียคือเข้ากันได้น้อยกว่า
กับแอปพลิเคชันอื่น ๆ
Options
การแบ่งส่วนถูกเปิดใช้งานโดยการตั้งค่า AVOptions ตัวใดตัวหนึ่งที่กำหนดวิธีการตัดไฟล์
เป็นชิ้นเล็กชิ้นน้อย:
-moov_size ไบต์
สงวนพื้นที่สำหรับ moov atom ที่จุดเริ่มต้นของไฟล์แทนการวาง
moov อะตอมในตอนท้าย หากพื้นที่ที่สงวนไว้ไม่เพียงพอ muxing จะล้มเหลว
-movflags Frag_keyframe
เริ่มส่วนย่อยใหม่ที่แต่ละคีย์เฟรมของวิดีโอ
-frag_duration ระยะเวลา
สร้างชิ้นส่วนที่ ระยะเวลา ไมโครวินาทียาว
-frag_size ขนาด
สร้างชิ้นส่วนที่มีมากถึง ขนาด ไบต์ของข้อมูลเพย์โหลด
-movflags Frag_custom
ให้ผู้โทรเลือกด้วยตนเองว่าจะตัดชิ้นส่วนเมื่อใด โดยการโทร
"av_write_frame(ctx, NULL)" เพื่อเขียนแฟรกเมนต์ด้วยแพ็กเก็ตที่เขียนจนถึงตอนนี้ (นี้
มีประโยชน์เฉพาะกับแอปพลิเคชั่นอื่นที่รวม libavformat ไม่ใช่จาก ffmpeg.)
-min_frag_duration ระยะเวลา
อย่าสร้างเศษที่สั้นกว่า ระยะเวลา ไมโครวินาทียาว
หากระบุมากกว่าหนึ่งเงื่อนไข ชิ้นส่วนจะถูกตัดเมื่อเงื่อนไขใดเงื่อนไขหนึ่งที่ระบุ
เป็นไปตามเงื่อนไข ข้อยกเว้นคือ "-min_frag_duration" ซึ่งต้องเป็น
เป็นไปตามเงื่อนไขอื่นใดที่จะนำไปใช้
นอกจากนี้ วิธีเขียนไฟล์เอาท์พุตสามารถปรับเปลี่ยนได้ด้วยวิธีอื่นๆ
ตัวเลือก:
-movflags ว่างเปล่า_moov
เขียน moov atom เริ่มต้นโดยตรงที่จุดเริ่มต้นของไฟล์ โดยไม่อธิบายใดๆ
ตัวอย่างในนั้น โดยทั่วไป คู่ mdat/moov จะถูกเขียนที่จุดเริ่มต้นของไฟล์เป็น a
ไฟล์ MOV/MP4 ปกติที่มีเพียงส่วนสั้นๆ ของไฟล์ ด้วยตัวเลือกนี้
ตั้งค่า ไม่มีอะตอม mdat เริ่มต้น และอะตอม moov อธิบายเฉพาะแทร็กแต่
มีระยะเวลาเป็นศูนย์
ตัวเลือกนี้ถูกกำหนดโดยปริยายเมื่อเขียนไฟล์ ismv (Smooth Streaming)
-movflags Separate_moof
เขียนอะตอม (ชิ้นส่วนภาพยนตร์) แยกกันสำหรับแต่ละแทร็ก โดยปกติแพ็คเก็ตสำหรับทุกคน
แทร็กถูกเขียนด้วย moof atom (ซึ่งมีประสิทธิภาพมากกว่าเล็กน้อย) แต่ด้วยวิธีนี้
ชุดตัวเลือก muxer เขียนหนึ่งคู่ moof/mdat สำหรับแต่ละแทร็กทำให้ง่ายต่อการ
แทร็กที่แยกจากกัน
ตัวเลือกนี้ถูกกำหนดโดยปริยายเมื่อเขียนไฟล์ ismv (Smooth Streaming)
-movflags สตาร์ทเร็ว
เรียกใช้รอบที่สองเพื่อย้ายดัชนี (moov atom) ไปยังจุดเริ่มต้นของไฟล์ นี้
การดำเนินการอาจใช้เวลาสักครู่และจะไม่ทำงานในสถานการณ์ต่างๆ เช่น กระจัดกระจาย
เอาต์พุตจึงไม่เปิดใช้งานตามค่าเริ่มต้น
-movflags rtphint
เพิ่มแทร็กคำใบ้ RTP ไปยังไฟล์เอาต์พุต
-movflags ปิดการใช้งาน_chpl
ปิดใช้งานเครื่องหมายบท Nero (chpl atom) โดยปกติทั้งบท Nero และ a
แทร็กบท QuickTime ถูกเขียนลงในไฟล์ ด้วยชุดตัวเลือกนี้ เฉพาะ
แทร็กบท QuickTime จะถูกเขียนขึ้น บท Nero อาจทำให้เกิดความล้มเหลวเมื่อ
ไฟล์ได้รับการประมวลผลใหม่ด้วยโปรแกรมการแท็กบางโปรแกรม เช่น mp3Tag 2.61a และ iTunes 11.3
เวอร์ชั่นอื่นน่าจะได้รับผลกระทบเช่นกัน
-movflags ละเว้น_tfhd_offset
อย่าเขียน base_data_offset ที่แน่นอนในอะตอม tfhd เพื่อหลีกเลี่ยงไม่ให้มัดเป็นชิ้นๆ
ไปยังตำแหน่งไบต์สัมบูรณ์ในไฟล์/สตรีม
-movflags default_base_moof
เช่นเดียวกับ omit_tfhd_offset แฟล็กนี้จะหลีกเลี่ยงการเขียนค่าสัมบูรณ์
ฟิลด์ base_data_offset ในอะตอม tfhd แต่ทำได้โดยใช้ default-base-is- ใหม่
ธงมูฟแทน แฟล็กนี้ใหม่ตั้งแต่ 14496-12:2012 นี่อาจทำให้เศษชิ้นส่วน
แยกวิเคราะห์ได้ง่ายขึ้นในบางสถานการณ์ (หลีกเลี่ยงตำแหน่งฐานของส่วนย่อยของแทร็ก
การคำนวณโดยปริยายของส่วนย่อยของแทร็กก่อนหน้า)
ตัวอย่าง
เนื้อหาการสตรีมที่ราบรื่นสามารถผลักแบบเรียลไทม์ไปยังจุดเผยแพร่บน IIS ด้วยสิ่งนี้
มิกซ์เซอร์ ตัวอย่าง:
ffmpeg -re < > -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(ตัวเข้ารหัส1)
ศรุต AAX
ไฟล์ AAX ที่ได้ยินเป็นไฟล์ M4B ที่เข้ารหัส และสามารถถอดรหัสได้โดยการระบุค่า 4
ความลับการเปิดใช้งานไบต์
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a คัดลอก output.mp4
mp3
muxer MP3 เขียนสตรีม MP3 ดิบด้วยคุณสมบัติเสริมต่อไปนี้:
· ส่วนหัวของข้อมูลเมตา ID3v2 ที่จุดเริ่มต้น (เปิดใช้งานโดยค่าเริ่มต้น) เวอร์ชัน 2.3 และ 2.4
ได้รับการสนับสนุน ตัวเลือกส่วนตัว "id3v2_version" จะควบคุมตัวเลือกที่ใช้ (3 หรือ 4)
การตั้งค่า "id3v2_version" เป็น 0 จะปิดใช้งานส่วนหัว ID3v2 อย่างสมบูรณ์
muxer รองรับการเขียนรูปภาพที่แนบมา (เฟรม API) ไปยังส่วนหัว ID3v2 ดิ
รูปภาพจะถูกส่งไปยัง muxer ในรูปแบบของการสตรีมวิดีโอด้วยแพ็กเก็ตเดียว
สตรีมเหล่านั้นมีจำนวนเท่าใดก็ได้ แต่ละสตรีมจะสอดคล้องกับเฟรม APIC เดียว
แท็กข้อมูลเมตาของสตรีม ชื่อเรื่อง และ ความเห็น แผนที่ไปยังAPIC ลักษณะ และ ภาพ ชนิด
ตามลำดับ ดูhttp://id3.org/id3v2.4.0-frames> สำหรับประเภทภาพที่อนุญาต
โปรดทราบว่าต้องเขียนเฟรม APIC ที่จุดเริ่มต้น ดังนั้น muxer จะบัฟเฟอร์
กรอบเสียงจนกว่าจะได้ภาพทั้งหมด จึงขอแนะนําให้
รูปภาพโดยเร็วที่สุดเพื่อหลีกเลี่ยงการบัฟเฟอร์มากเกินไป
· เฟรม Xing/LAME หลังส่วนหัว ID3v2 (ถ้ามี) มันถูกเปิดใช้งานโดยค่าเริ่มต้น
แต่จะถูกเขียนก็ต่อเมื่อสามารถค้นหาผลลัพธ์ได้ ตัวเลือกส่วนตัว "write_xing"
สามารถใช้เพื่อปิดการใช้งาน กรอบประกอบด้วยข้อมูลต่าง ๆ ที่อาจเป็นประโยชน์
ไปยังตัวถอดรหัส เช่น ระยะเวลาของเสียงหรือตัวเข้ารหัสล่าช้า
· แท็ก ID3v1 ดั้งเดิมที่ส่วนท้ายของไฟล์ (ปิดใช้งานโดยค่าเริ่มต้น) อาจเปิดใช้งานได้
ด้วยตัวเลือกส่วนตัว "write_id3v1" แต่เนื่องจากความสามารถมีจำกัดมาก
ไม่แนะนำให้ใช้
ตัวอย่าง:
เขียน mp3 ด้วยส่วนหัว ID3v2.3 และส่วนท้าย ID3v1:
ffmpeg -i อินพุต -id3v2_version 3 -write_id3v1 1 out.mp3
ในการแนบรูปภาพเป็นไฟล์ mp3 ให้เลือกทั้งเสียงและการสตรีมรูปภาพด้วย
"แผนที่":
ffmpeg -i input.mp3 -i cover.png -c สำเนา -แผนที่ 0 -แผนที่ 1
-metadata:s:v title="ปกอัลบั้ม" -metadata:s:v comment="ปก (ด้านหน้า)" out.mp3
เขียน MP3 ที่ "สะอาด" โดยไม่มีคุณสมบัติพิเศษใดๆ:
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 ออก.mp3
mpegts
muxer สตรีมการขนส่ง MPEG
Muxer นี้ใช้ ISO 13818-1 และเป็นส่วนหนึ่งของ ETSI EN 300 468
การตั้งค่าข้อมูลเมตาที่รู้จักใน mpegts muxer คือ "service_provider" และ
"service_name". หากไม่ได้ตั้งค่าเริ่มต้นสำหรับ "service_provider" คือ "FFmpeg" และ
ค่าเริ่มต้นสำหรับ "service_name" คือ "Service01"
Options
ตัวเลือก muxer คือ:
-mpegts_Original_network_id จำนวน
ตั้งค่า original_network_id (ค่าเริ่มต้น 0x0001) นี่คือตัวระบุเฉพาะของเครือข่าย
ใน DVB. การใช้งานหลักอยู่ในการระบุเอกลักษณ์ของบริการผ่านเส้นทาง
Original_Network_ID, Transport_Stream_ID
-mpegts_transport_stream_id จำนวน
ตั้งค่า transport_stream_id (ค่าเริ่มต้น 0x0001) สิ่งนี้ระบุช่องสัญญาณใน DVB
-mpegts_service_id จำนวน
ตั้งค่า service_id (ค่าเริ่มต้น 0x0001) หรือที่เรียกว่าโปรแกรมใน DVB
-mpegts_service_type จำนวน
ตั้งค่าโปรแกรม service_type (ค่าเริ่มต้น ดิจิตอลทีวี) ดูด้านล่างรายการที่กำหนดไว้ล่วงหน้า
ค่า
-mpegts_pmt_start_pid จำนวน
ตั้งค่า PID แรกสำหรับ PMT (ค่าเริ่มต้น 0x1000, สูงสุด 0x1f00)
-mpegts_start_pid จำนวน
ตั้งค่า PID แรกสำหรับแพ็กเก็ตข้อมูล (ค่าเริ่มต้น 0x0100, สูงสุด 0x0f00)
-mpegts_m2ts_mode จำนวน
เปิดใช้งานโหมด m2ts หากตั้งค่าเป็น 1 ค่าเริ่มต้นคือ -1 ซึ่งปิดใช้งานโหมด m2ts
- มักเรต จำนวน
ตั้งค่า muxrate คงที่ (ค่าเริ่มต้น VBR)
-pcr_งวด ตัวเลข
แทนที่เวลาการส่งสัญญาณ PCR เริ่มต้นใหม่ (ค่าเริ่มต้น 20 มิลลิวินาที) จะถูกละเว้นหากตัวแปร
muxrate ถูกเลือก
pat_ช่วงเวลา จำนวน
เวลาสูงสุดเป็นวินาทีระหว่างตาราง PAT/PMT
sdt_ช่วงเวลา จำนวน
เวลาสูงสุดเป็นวินาทีระหว่างตาราง SDT
-pes_payload_size จำนวน
ตั้งค่าเพย์โหลดแพ็กเก็ต PES ขั้นต่ำเป็นไบต์
-mpegts_flags ธง
ตั้งค่าสถานะ (ดูด้านล่าง)
-mpegts_copyts จำนวน
คงการประทับเวลาเดิมไว้ หากตั้งค่าเป็น 1 ค่าเริ่มต้นคือ -1 ซึ่งส่งผลให้
ในการเปลี่ยนการประทับเวลาให้เริ่มจาก 0
-tables_version จำนวน
ตั้งค่าเวอร์ชัน PAT, PMT และ SDT (ค่าเริ่มต้น 0 ค่าที่ถูกต้องคือ 0 ถึง 31 โดยรวม)
ตัวเลือกนี้อนุญาตให้อัปเดตโครงสร้างสตรีมเพื่อให้ผู้บริโภคมาตรฐานสามารถตรวจจับ
เปลี่ยน. ในการดำเนินการดังกล่าว ให้เปิดเอาต์พุต AVFormatContext อีกครั้ง (ในกรณีที่ใช้ API) หรือรีสตาร์ท
อินสแตนซ์ ffmpeg เปลี่ยนค่า table_version แบบวนซ้ำ:
ffmpeg -i source1.ts - สำเนาตัวแปลงสัญญาณ -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts - สำเนาตัวแปลงสัญญาณ -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
ffmpeg -i source3.ts - สำเนาตัวแปลงสัญญาณ -f mpegts -tables_version 31 udp://1.1.1.1:1111
ffmpeg -i source1.ts - สำเนาตัวแปลงสัญญาณ -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts - สำเนาตัวแปลงสัญญาณ -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
ตัวเลือก mpegts_service_type ยอมรับค่าต่อไปนี้:
เลขฐานสิบหก
ค่าเลขฐานสิบหกใดๆ ระหว่าง 0x01 ถึง 0xff ตามที่กำหนดไว้ใน ETSI 300 468
ดิจิตอลทีวี
บริการทีวีดิจิตอล
ดิจิตอล_วิทยุ
บริการวิทยุดิจิตอล
โทรสาร
บริการเทเลเท็กซ์
ขั้นสูง_codec_digital_radio
บริการ Advanced Codec Digital Radio
mpeg2_digital_hdtv
บริการ MPEG2 Digital HDTV
ขั้นสูง_codec_digital_sdtv
บริการ Advanced Codec Digital SDTV
ขั้นสูง_codec_digital_hdtv
บริการ Codec Digital HDTV ขั้นสูง
ตัวเลือก mpegts_flags อาจใช้ชุดของแฟล็กดังกล่าว:
ส่ง_headers
ส่ง PAT/PMT อีกครั้งก่อนเขียนแพ็กเก็ตถัดไป
แลตม์
ใช้แพ็กเก็ต LATM สำหรับ AAC
pat_pmt_at_frames
ส่ง PAT และ PMT อีกครั้งที่เฟรมวิดีโอแต่ละเฟรม
ตัวอย่าง
ffmpeg -i file.mpg -c คัดลอก \
-mpegts_Original_network_id 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider="ผู้ให้บริการบางราย" \
-metadata service_name="บางช่อง" \
-y out.ts
เอ็มเอ็กซ์เอฟ, mxf_d10
MXF มิกซ์เซอร์
Options
ตัวเลือก muxer คือ:
store_user_comments บูล
ตั้งค่าว่าควรเก็บความคิดเห็นของผู้ใช้ไว้ถ้ามีหรือไม่ใช้เลย IRT D-10 ไม่อนุญาต
ความคิดเห็นของผู้ใช้ ค่าเริ่มต้นคือการเขียนสำหรับ mxf แต่ไม่ใช่สำหรับ mxf_d10
โมฆะ
นูล มูเซอร์
muxer นี้ไม่ได้สร้างไฟล์เอาท์พุตใด ๆ มันมีประโยชน์หลักสำหรับการทดสอบหรือ
วัตถุประสงค์การเปรียบเทียบ
ตัวอย่างเช่นเพื่อเปรียบเทียบการถอดรหัสด้วย ffmpeg คุณสามารถใช้คำสั่ง:
ffmpeg -benchmark -i อินพุต -f null out.null
โปรดทราบว่าคำสั่งดังกล่าวไม่ได้อ่านหรือเขียน ออก.null ไฟล์ แต่ระบุ
ไฟล์เอาต์พุตจำเป็นต้องใช้โดย ffmpeg วากยสัมพันธ์
หรือคุณสามารถเขียนคำสั่งเป็น:
ffmpeg -benchmark -i อินพุต -f null -
น็อต
จุดซิงค์ ธง
เปลี่ยนการใช้จุดเชื่อมต่อในน็อต:
ผิดนัด ใช้ ปกติ ค่าโสหุ้ยต่ำ ที่กำลังมองหา เอดส์.
ไม่มี do ไม่ ใช้ จุดเชื่อม at ทั้งหมด, ลด เหนือศีรษะ แต่ การทำ กระแส
ไม่แสวงหา;
ไม่แนะนำให้ใช้ตัวเลือกนี้ เนื่องจากไฟล์ที่ได้จะมีความเสียหายมาก
อ่อนไหวและแสวงหาไม่ได้ โดยทั่วไปแล้วค่าใช้จ่ายจาก
จุดซิงค์นั้นเล็กน้อย หมายเหตุ -C 0 สามารถใช้เพื่อปิดการใช้งาน
ตารางข้อมูลที่กำลังเติบโตทั้งหมด อนุญาตให้รวมสตรีมที่ไม่มีที่สิ้นสุดด้วยหน่วยความจำที่จำกัด
และไม่มีข้อเสียเหล่านี้
ประทับเวลา ขยายออก จุดประสาน กับ a นาฬิกาแขวน สนาม
เค้ก ไม่มี และ ประทับเวลา แฟล็กกำลังทดลอง
-write_index บูล
เขียนดัชนีในตอนท้าย ค่าเริ่มต้นคือการเขียนดัชนี
ffmpeg -i INPUT -f_strict ทดลอง -syncpoints none - | โปรเซสเซอร์
OGG
Ogg คอนเทนเนอร์ muxer
-page_duration ระยะเวลา
ระยะเวลาของหน้าที่ต้องการ หน่วยเป็นไมโครวินาที muxer จะพยายามสร้างเพจที่
อยู่ที่ประมาณ ระยะเวลา ไมโครวินาทียาว สิ่งนี้ทำให้ผู้ใช้สามารถประนีประนอม
ระหว่างขอความละเอียดและค่าใช้จ่ายคอนเทนเนอร์ ค่าเริ่มต้นคือ 1 วินาที ค่า 0
จะเติมเต็มทุกส่วน ทำให้หน้าใหญ่ที่สุด ค่า 1 will
ใช้ 1 แพ็กเก็ตต่อหน้าอย่างมีประสิทธิภาพในสถานการณ์ส่วนใหญ่ ทำให้มีความละเอียดในการค้นหาเล็กน้อย
ด้วยค่าโสหุ้ยตู้คอนเทนเนอร์เพิ่มเติม
-serial_offset ความคุ้มค่า
ค่าซีเรียลสำหรับตั้งค่าหมายเลขซีเรียลของสตรีม ตั้งค่าให้แตกต่างและ
ค่าที่มากพอจะทำให้มั่นใจได้ว่าไฟล์ ogg ที่สร้างขึ้นสามารถถูกโยงได้อย่างปลอดภัย
ส่วน สตรีม_เซกเมนต์, แบ่งส่วน
ตัวแบ่งสตรีมพื้นฐาน
muxer นี้ส่งกระแสข้อมูลไปยังไฟล์แยกกันจำนวนมากในระยะเวลาคงที่เกือบ เอาท์พุต
รูปแบบชื่อไฟล์สามารถตั้งค่าในรูปแบบที่คล้ายกับ image2หรือโดยใช้ "strftime"
แม่แบบถ้า สตริฟไทม์ เปิดใช้งานตัวเลือก
"stream_segment" เป็นตัวแปรของ muxer ที่ใช้ในการเขียนไปยังรูปแบบเอาต์พุตการสตรีม เช่น
ซึ่งไม่ต้องการ global headers และแนะนำสำหรับการส่งออกเช่น MPEG
ส่วนกระแสการขนส่ง "ssegment" เป็นนามแฝงที่สั้นกว่าสำหรับ "stream_segment"
ทุกกลุ่มเริ่มต้นด้วยคีย์เฟรมของสตรีมอ้างอิงที่เลือก ซึ่งตั้งค่าไว้
ผ่าน อ้างอิง_สตรีม ตัวเลือก
โปรดทราบว่าหากคุณต้องการแยกไฟล์วิดีโออย่างแม่นยำ คุณต้องสร้างปุ่มอินพุต
เฟรมที่สอดคล้องกับเวลาการแยกที่แน่นอนที่คาดไว้โดยตัวแบ่งส่วนหรือกลุ่ม
muxer จะเริ่มส่วนใหม่ด้วยคีย์เฟรมที่อยู่ถัดจาก start ที่ระบุ
เวลา
muxer กลุ่มทำงานได้ดีที่สุดกับวิดีโออัตราเฟรมคงที่เดียว
อีกทางเลือกหนึ่ง สามารถสร้างรายการของเซ็กเมนต์ที่สร้างขึ้น โดยการตั้งค่าตัวเลือก
ส่วน_รายการ. ประเภทรายการถูกระบุโดย Segment_list_type ตัวเลือก. รายการ
ชื่อไฟล์ในรายการเซ็กเมนต์ถูกกำหนดโดยค่าเริ่มต้นเป็นชื่อฐานของที่สอดคล้องกัน
ไฟล์เซกเมนต์
ดูเพิ่มเติมที่ สวัสดี muxer ซึ่งมีการใช้งานเฉพาะเจาะจงมากขึ้นสำหรับHLS
การแบ่งส่วน
Options
กลุ่ม muxer รองรับตัวเลือกต่อไปนี้:
อ้างอิง_สตรีม ตัวระบุ
ตั้งค่าสตรีมอ้างอิงตามที่ระบุโดย string ตัวระบุ. ถ้า ตัวระบุ มีการตั้งค่า
ถึง "อัตโนมัติ" การอ้างอิงจะถูกเลือกโดยอัตโนมัติ ไม่งั้นก็ต้องเป็นกระแส
ตัวระบุ (ดูบท ``ตัวระบุสตรีม'' ในคู่มือ ffmpeg) ซึ่งระบุ
กระแสอ้างอิง ค่าเริ่มต้นคือ "อัตโนมัติ"
ส่วน_รูปแบบ รูป
แทนที่รูปแบบคอนเทนเนอร์ภายใน โดยค่าเริ่มต้น จะถูกเดาโดยชื่อไฟล์
การขยาย.
เซ็กเมนต์_format_options ตัวเลือก_รายการ
ตั้งค่าตัวเลือกรูปแบบเอาต์พุตโดยใช้รายการ :-separated ของพารามิเตอร์คีย์=ค่า ค่านิยม
ที่มีเครื่องหมาย ":" ต้องหลีกเลี่ยง
ส่วน_รายการ ชื่อ
สร้างไฟล์รายการด้วยชื่อ ชื่อ. หากไม่ได้ระบุไว้ จะไม่มีการสร้าง listfile
Segment_list_flags ธง
ตั้งค่าสถานะที่ส่งผลต่อการสร้างรายการเซ็กเมนต์
ขณะนี้สนับสนุนแฟล็กต่อไปนี้:
แคช
อนุญาตการแคช (มีผลกับไฟล์รายการ M3U8) เท่านั้น
สด
อนุญาตให้สร้างไฟล์ที่เป็นมิตรต่อสิ่งแวดล้อม
เซ็กเมนต์_list_size ขนาด
อัปเดตไฟล์รายการเพื่อให้มีมากที่สุด ขนาด เซ็กเมนต์ ถ้า 0 รายการไฟล์
จะมีทุกภาคส่วน ค่าเริ่มต้นคือ 0
Segment_list_entry_prefix อุปสรรค
นำหน้า อุปสรรค ในแต่ละรายการ มีประโยชน์ในการสร้างเส้นทางที่แน่นอน โดยค่าเริ่มต้น ไม่มีคำนำหน้า
ถูกนำมาใช้
Segment_list_type ชนิด
เลือกรูปแบบรายการ
ค่าต่อไปนี้เป็นที่รู้จัก:
แบน
สร้างรายการแบบเรียบสำหรับกลุ่มที่สร้างขึ้น หนึ่งกลุ่มต่อบรรทัด
ซีเอสวี, ต่อ
สร้างรายการสำหรับส่วนที่สร้างขึ้น หนึ่งส่วนต่อบรรทัด แต่ละบรรทัดตรงกัน
รูปแบบ (ค่าที่คั่นด้วยเครื่องหมายจุลภาค):
, ,
segment_ชื่อไฟล์ เป็นชื่อของไฟล์เอาต์พุตที่สร้างโดย muxer ตาม
ตามแบบที่จัดให้ มีการใช้ค่า Escape CSV (ตาม RFC4180) ถ้า
จำเป็นต้องใช้
Segment_start_time และ Segment_end_time ระบุเวลาเริ่มต้นและสิ้นสุดของเซ็กเมนต์
แสดงเป็นวินาที
ไฟล์รายการที่มีส่วนต่อท้าย ".csv" หรือ ".ext" จะเลือกรูปแบบนี้โดยอัตโนมัติ
ต่อ เลิกใช้ในความโปรดปรานหรือ CSV.
เอฟคอนแคท
สร้างไฟล์ ffconcat สำหรับเซ็กเมนต์ที่สร้างขึ้น ไฟล์ผลลัพธ์สามารถอ่านได้
ใช้FFmpeg เชื่อม ดีลักซ์เซอร์
ไฟล์รายการที่มีส่วนต่อท้าย ".ffcat" หรือ ".ffconcat" จะเลือกรูปแบบนี้โดยอัตโนมัติ
m3u8
สร้างไฟล์ M3U8 แบบขยาย เวอร์ชัน 3 ซึ่งสอดคล้องกับ
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
ไฟล์รายการที่มีส่วนต่อท้าย ".m3u8" จะเลือกรูปแบบนี้โดยอัตโนมัติ
หากไม่ได้ระบุประเภทจะเดาจากส่วนต่อท้ายชื่อไฟล์รายการ
Segment_เวลา เวลา
ตั้งค่าระยะเวลาของเซ็กเมนต์เป็น เวลาค่าต้องเป็นข้อกำหนดระยะเวลา ค่าเริ่มต้น
ค่าคือ "2" ดูเพิ่มเติมที่ Segment_times ตัวเลือก
โปรดทราบว่าการแยกอาจไม่ถูกต้อง เว้นแต่คุณจะบังคับสตรีมคีย์อ้างอิง-
เฟรมในเวลาที่กำหนด ดูประกาศเบื้องต้นและตัวอย่างด้านล่าง
Segment_atclocktime 1 | 0
หากตั้งค่าเป็น "1" ให้แบ่งตามช่วงเวลานาฬิกาปกติตั้งแต่ 00:00 น. ดิ
เวลา ค่าที่ระบุใน Segment_เวลา ใช้สำหรับกำหนดความยาวของรอยแยก
ช่วงเวลา
ตัวอย่างเช่นกับ Segment_เวลา ตั้งค่าเป็น "900" ทำให้สามารถสร้างไฟล์ได้ที่
12:00 น., 12:15 น., 12:30 น. เป็นต้น
ค่าเริ่มต้นคือ "0"
Segment_time_delta รูปสามเหลี่ยม
ระบุเวลาที่แม่นยำเมื่อเลือกเวลาเริ่มต้นสำหรับเซ็กเมนต์ โดยแสดงเป็น a
ข้อกำหนดระยะเวลา ค่าเริ่มต้นคือ "0"
เมื่อระบุเดลต้า คีย์เฟรมจะเริ่มส่วนใหม่หาก PTS เป็นไปตาม
ความสัมพันธ์:
PTS >= start_time - time_delta
ตัวเลือกนี้มีประโยชน์เมื่อแยกเนื้อหาวิดีโอ ซึ่งแยกที่ GOP . เสมอ
ขอบเขต ในกรณีที่พบคีย์เฟรมก่อนเวลาแยกที่ระบุ
โดยเฉพาะอย่างยิ่งอาจใช้ร่วมกับ ffmpeg ตัวเลือก force_key_frames.
เวลาคีย์เฟรมที่ระบุโดย force_key_frames อาจตั้งค่าไม่ถูกต้องเนื่องจาก
ปัญหาการปัดเศษด้วยผลที่เวลาเฟรมหลักอาจส่งผลให้ตั้งไว้ก่อนหน้า
เวลาที่กำหนด สำหรับวิดีโออัตราเฟรมคงที่ ค่า 1/(2*เฟรม_เรต) ควร
ระบุกรณีที่เลวร้ายที่สุดที่ไม่ตรงกันระหว่างเวลาที่กำหนดและเวลาที่ตั้งค่าโดย
force_key_frames.
Segment_times ครั้ง
ระบุรายการจุดแยก ครั้ง มีรายการระยะเวลาคั่นด้วยจุลภาค
ข้อกำหนดในการสั่งซื้อที่เพิ่มขึ้น ดูเพิ่มเติมที่ Segment_เวลา ตัวเลือก
ส่วน_เฟรม เฟรม
ระบุรายการหมายเลขเฟรมวิดีโอแบบแยก เฟรม มีรายการคั่นด้วยเครื่องหมายจุลภาค
จำนวนเต็มในลำดับที่เพิ่มขึ้น
ตัวเลือกนี้ระบุให้เริ่มกลุ่มใหม่ทุกครั้งที่มีสตรีมคีย์เฟรมอ้างอิง
พบและหมายเลขลำดับ (เริ่มต้นจาก 0) ของเฟรมมากกว่าหรือเท่ากับ
ค่าถัดไปในรายการ
Segment_wrap จำกัด
ล้อมรอบดัชนีเซ็กเมนต์เมื่อถึง จำกัด.
เซ็กเมนต์_start_number จำนวน
กำหนดหมายเลขลำดับของส่วนแรก ค่าเริ่มต้นเป็น 0
สตริฟไทม์ 1 | 0
ใช้ฟังก์ชัน "strftime" เพื่อกำหนดชื่อของเซ็กเมนต์ใหม่ที่จะเขียน ถ้านี้
ถูกเลือก ชื่อเซ็กเมนต์เอาต์พุตต้องมีเทมเพลตฟังก์ชัน "strftime"
ค่าเริ่มต้นคือ 0
break_non_keyframes 1 | 0
หากเปิดใช้งาน อนุญาตให้กลุ่มเริ่มต้นในเฟรมอื่นที่ไม่ใช่คีย์เฟรม สิ่งนี้ดีขึ้น
พฤติกรรมของผู้เล่นบางคนเมื่อเวลาระหว่างคีย์เฟรมไม่สอดคล้องกัน แต่อาจทำให้
สิ่งที่เลวร้ายสำหรับคนอื่น ๆ และอาจทำให้เกิดความแปลกประหลาดบางอย่างในระหว่างการแสวงหา ค่าเริ่มต้นเป็น 0
รีเซ็ต_เวลาประทับ 1 | 0
รีเซ็ตการประทับเวลาที่จุดเริ่มต้นของแต่ละส่วน เพื่อให้แต่ละส่วนเริ่มต้นด้วย
การประทับเวลาใกล้ศูนย์ มีขึ้นเพื่อให้ง่ายต่อการเล่นของกลุ่มที่สร้างขึ้น พฤษภาคม
ไม่ทำงานกับ muxers/codec ผสมกัน มันถูกตั้งค่าเป็น 0 โดยค่าเริ่มต้น
Initial_offset ชดเชย
ระบุออฟเซ็ตการประทับเวลาเพื่อใช้กับการประทับเวลาของแพ็กเก็ตเอาต์พุต อาร์กิวเมนต์ต้อง
เป็นข้อกำหนดเกี่ยวกับระยะเวลาและมีค่าเริ่มต้นเป็น 0
ตัวอย่าง
· Remux เนื้อหาของไฟล์ ใน.mkv ไปยังรายการของเซ็กเมนต์ ออก-000.nut, ออก-001.nutฯลฯ
และเขียนรายการของเซ็กเมนต์ที่สร้างขึ้นเพื่อ ออกรายการ:
ffmpeg -i in.mkv -codec copy -map 0 -f ส่วน -segment_list out.list out%03d.nut
· อินพุตเซกเมนต์และตั้งค่าตัวเลือกรูปแบบเอาต์พุตสำหรับเซ็กเมนต์เอาต์พุต:
ffmpeg -i in.mkv -f เซ็กเมนต์ -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
· แบ่งส่วนไฟล์อินพุตตามจุดแยกที่ระบุโดย Segment_times
ตัวเลือก:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 ออก%03d.nut
· ใช้ ffmpeg force_key_frames ตัวเลือกเพื่อบังคับคีย์เฟรมในอินพุตที่
ตำแหน่งที่ระบุพร้อมกับตัวเลือกเซกเมนต์ Segment_time_delta บัญชีสำหรับ
การปัดเศษที่เป็นไปได้ดำเนินการเมื่อตั้งค่าเวลาของคีย์เฟรม
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -แผนที่ 0 \
-f ส่วน -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
ในการบังคับคีย์เฟรมในไฟล์อินพุต จำเป็นต้องมีการแปลงรหัส
· แบ่งส่วนไฟล์อินพุตโดยแยกไฟล์อินพุตตามหมายเลขเฟรม
ลำดับที่ระบุด้วย ส่วน_เฟรม ตัวเลือก:
ffmpeg -i in.mkv -codec copy -map 0 -f ส่วน -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
·แปลง ใน.mkv ไปยังเซ็กเมนต์ TS โดยใช้ตัวเข้ารหัส "libx264" และ "libfaac":
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list ออก%03d.ts
· แบ่งส่วนไฟล์อินพุต และสร้างรายการเล่นสด M3U8 (สามารถใช้เป็น HLS . สดได้
แหล่งที่มา):
ffmpeg -re -i in.mkv -codec copy -map 0 -f เซ็กเมนต์ -segment_list playlist.m3u8 \
-segment_list_flags +live -segment_time 10 ออก%03d.mkv
ราบรื่น
Smooth Streaming muxer สร้างชุดของไฟล์ (Manifest, chunks) เหมาะสำหรับการเสิร์ฟ
ด้วยเว็บเซิร์ฟเวอร์ทั่วไป
window_size
ระบุจำนวนชิ้นส่วนที่เก็บไว้ในรายการ ค่าเริ่มต้น 0 (เก็บทั้งหมด)
พิเศษ_window_size
ระบุจำนวนชิ้นส่วนที่เก็บไว้นอกรายการก่อนที่จะลบออกจาก
ดิสก์. ค่าเริ่มต้น 5.
มองไปข้างหน้า_count
ระบุจำนวนแฟรกเมนต์ lookahead ค่าเริ่มต้น 2
min_frag_duration
ระบุระยะเวลาแฟรกเมนต์ขั้นต่ำ (เป็นไมโครวินาที) ค่าเริ่มต้น 5000000
Remove_at_exit
ระบุว่าจะลบแฟรกเมนต์ทั้งหมดเมื่อเสร็จสิ้นหรือไม่ ค่าเริ่มต้น 0 (อย่าลบ)
ที
tee muxer สามารถใช้เขียนข้อมูลเดียวกันลงในไฟล์หลาย ๆ ไฟล์หรือประเภทอื่น ๆ
มิกซ์เซอร์ ใช้ได้ทั้งสตรีมวิดีโอไปยังเครือข่ายและบันทึกลงใน
ดิสก์ในเวลาเดียวกัน
มันแตกต่างจากการระบุเอาต์พุตหลายตัวไปที่ ffmpeg เครื่องมือบรรทัดคำสั่งเพราะ
ข้อมูลเสียงและวิดีโอจะถูกเข้ารหัสเพียงครั้งเดียวด้วย tee muxer; การเข้ารหัสสามารถเป็น
กระบวนการที่มีราคาแพงมาก ไม่มีประโยชน์เมื่อใช้ libavformat API โดยตรงเพราะ
จากนั้นจึงเป็นไปได้ที่จะป้อนแพ็กเก็ตเดียวกันไปยัง muxers หลายตัวโดยตรง
เอาต์พุตของสเลฟถูกระบุในชื่อไฟล์ที่กำหนดให้กับ muxer โดยคั่นด้วย '|' ถ้า
ชื่อทาสใด ๆ มี '|' ตัวคั่น ช่องว่างนำหน้าหรือต่อท้ายหรือใดๆ
อักขระพิเศษก็ต้องหนี (ดู “ใบเสนอราคา และ หลบหนี" ส่วน in
ffmpeg-ยูทิลิตี้(1) คู่มือ).
Muxer options สามารถระบุได้สำหรับทาสแต่ละตัวโดยใส่ไว้ข้างหน้าเป็นรายการของ สำคัญ=ความคุ้มค่า
คู่ที่คั่นด้วย ':' ระหว่างวงเล็บเหลี่ยม หากค่าตัวเลือกมีค่าพิเศษ
อักขระหรือตัวคั่น ':' จะต้องหลบหนี โปรดทราบว่านี่เป็นระดับที่สอง
หลบหนี
รู้จักตัวเลือกพิเศษต่อไปนี้ด้วย:
f ระบุชื่อรูปแบบ มีประโยชน์หากไม่สามารถเดาได้จากส่วนต่อท้ายชื่อผลลัพธ์
บีเอสเอฟ[/ข้อมูลจำเพาะ]
ระบุรายการตัวกรองบิตสตรีมเพื่อใช้กับเอาต์พุตที่ระบุ
เป็นไปได้ที่จะระบุสตรีมที่ใช้ตัวกรองบิตสตรีมที่กำหนดโดย
ต่อท้าย stream specifier กับตัวเลือกที่คั่นด้วย "/" ข้อมูลจำเพาะ ต้องเป็นลำธาร
ตัวระบุ (ดู รูปแบบ กระแส specifiers). หากไม่ได้ระบุตัวระบุสตรีม
ตัวกรองบิตสตรีมจะถูกนำไปใช้กับสตรีมทั้งหมดในเอาต์พุต
สามารถระบุตัวกรองบิตสตรีมได้หลายตัว โดยคั่นด้วย ","
เลือก
เลือกสตรีมที่ควรแมปกับเอาต์พุตสเลฟ ที่ระบุโดยสตรีม
ตัวระบุ หากไม่ได้ระบุไว้ ค่าเริ่มต้นนี้จะเป็นสตรีมอินพุตทั้งหมด
ตัวอย่าง
· เข้ารหัสบางอย่างและเก็บถาวรไว้ในไฟล์ WebM และสตรีมเป็น MPEG-TS ผ่าน UDP
(ต้องมีการแมปสตรีมอย่างชัดเจน):
ffmpeg -i ... -c:v libx264 -c:a mp2 -f ที -แผนที่ 0:v -แผนที่ 0:a
"archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
· ใช้ ffmpeg เพื่อเข้ารหัสอินพุต และส่งเอาต์พุตไปยังปลายทางที่แตกต่างกันสามแห่ง
ตัวกรองบิตสตรีม "dump_extra" ใช้เพื่อเพิ่มข้อมูลพิเศษให้กับ
แพ็กเก็ตคีย์เฟรมวิดีโอเอาต์พุตตามที่ร้องขอโดยรูปแบบ MPEG-TS ตัวเลือกที่เลือก
ถูกนำไปใช้กับ ออก.aac เพื่อให้มีเฉพาะแพ็กเก็ตเสียงเท่านั้น
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac - การทดลองที่เข้มงวด
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
· ตามด้านล่าง แต่เลือกเฉพาะสตรีม "a:1" สำหรับเอาต์พุตเสียง โปรดทราบว่าระดับที่สอง
ต้องดำเนินการหลบหนี เนื่องจาก ":" เป็นอักขระพิเศษที่ใช้แยกตัวเลือก
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac - การทดลองที่เข้มงวด
-f tee "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
หมายเหตุ: ตัวแปลงสัญญาณบางตัวอาจต้องการตัวเลือกที่แตกต่างกันขึ้นอยู่กับรูปแบบผลลัพธ์ อัตโนมัติ-
การตรวจจับนี้ไม่สามารถทำงานร่วมกับ tee muxer ได้ ตัวอย่างหลักคือ global_header
ธง.
webm_dash_manifest
WebM DASH ไฟล์ Manifest muxer
muxer นี้ใช้ข้อมูลจำเพาะ WebM DASH Manifest เพื่อสร้าง DASH manifest
XML. นอกจากนี้ยังรองรับการสร้างรายการสำหรับสตรีมสด DASH
สำหรับข้อมูลเพิ่มเติมโปรดดูที่:
· ข้อกำหนด WebM DASH:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
· ข้อกำหนด ISO DASH:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
Options
muxer นี้รองรับตัวเลือกต่อไปนี้:
การปรับตัว_sets
ตัวเลือกนี้มีไวยากรณ์ต่อไปนี้: "id=x,streams=a,b,c id=y,streams=d,e" โดยที่ x
และ y เป็นตัวระบุเฉพาะของชุดการดัดแปลง และ a,b,c,d และ e คือ
ดัชนีของสตรีมเสียงและวิดีโอที่เกี่ยวข้อง ชุดดัดแปลงจำนวนเท่าใดก็ได้
สามารถเพิ่มได้โดยใช้ตัวเลือกนี้
สด
ตั้งค่านี้เป็น 1 เพื่อสร้างรายการ DASH Manifest แบบสด ค่าเริ่มต้น: 0
chunk_start_index
ดัชนีเริ่มต้นของส่วนแรก สิ่งนี้จะไปใน หมายเลขเริ่มต้น คุณลักษณะของ
กลุ่มแม่แบบ องค์ประกอบในรายการ ค่าเริ่มต้น: 0
ชิ้น_ระยะเวลา_ms
ระยะเวลาของแต่ละอันในหน่วยมิลลิวินาที สิ่งนี้จะไปใน ระยะเวลา คุณลักษณะของ
กลุ่มแม่แบบ องค์ประกอบในรายการ ค่าเริ่มต้น: 1000
utc_timing_url
URL ของหน้าที่จะส่งคืนการประทับเวลา UTC ในรูปแบบ ISO สิ่งนี้จะไปใน
ความคุ้มค่า คุณลักษณะของ UTC Timing องค์ประกอบในรายการ ค่าเริ่มต้น: ไม่มี
เวลา_shift_buffer_ความลึก
บัฟเฟอร์เปลี่ยนเวลาน้อยที่สุด (เป็นวินาที) ซึ่งรับประกันการเป็นตัวแทนใดๆ
จะสามารถใช้ได้. สิ่งนี้จะไปใน timeShiftBufferความลึก คุณลักษณะของ MPD
องค์ประกอบ. ค่าเริ่มต้น: 60
ขั้นต่ำ_update_period
ระยะเวลาการอัปเดตขั้นต่ำ (เป็นวินาที) ของรายการ สิ่งนี้จะไปใน
ระยะเวลาการอัปเดตขั้นต่ำ คุณลักษณะของ MPD องค์ประกอบ. ค่าเริ่มต้น: 0
ตัวอย่าง
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i วิดีโอ2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-แผนที่ 0 -แผนที่ 1 -แผนที่ 2 -แผนที่ 3 \
-c สำเนา \
-f webm_dash_manifest \
-adaptation_sets "id=0,สตรีม=0,1 id=1,สตรีม=2,3" \
รายการ.xml
webm_chunk
WebM Live Chunk Muxer
muxer นี้เขียนส่วนหัวและส่วนย่อยของ WebM เป็นไฟล์แยกต่างหากซึ่งสามารถใช้ได้โดย
ลูกค้าที่รองรับสตรีม WebM Live ผ่าน DASH
Options
muxer นี้รองรับตัวเลือกต่อไปนี้:
chunk_start_index
ดัชนีของกลุ่มแรก (ค่าเริ่มต้นคือ 0)
ส่วนหัว
ชื่อไฟล์ของส่วนหัวที่จะเขียนข้อมูลการเริ่มต้น
audio_chunk_duration
ระยะเวลาของแต่ละส่วนของเสียงในหน่วยมิลลิวินาที (ค่าเริ่มต้นคือ 5000)
ตัวอย่าง
ffmpeg -f v4l2 -i /dev/video0 \
-f นอกจากนี้ -i hw:0 \
-แผนที่ 0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f webm_chunk \
-ส่วนหัว webm_live_video_360.hdr \
-chunk_start_index 1 \
webm_live_video_360_%d.chk \
-แผนที่ 1:0 \
-c:a libvorbis \
-b:a 128k \
-f webm_chunk \
-ส่วนหัว webm_live_audio_128.hdr \
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
เมตา
FFmpeg สามารถถ่ายโอนข้อมูลเมตาจากไฟล์สื่อไปยังข้อความที่เหมือน INI ที่เข้ารหัส UTF-8 อย่างง่าย
จากนั้นโหลดกลับโดยใช้ metadata muxer/demuxer
รูปแบบไฟล์มีดังนี้:
1. ไฟล์ประกอบด้วยส่วนหัวและแท็กข้อมูลเมตาจำนวนหนึ่งซึ่งแบ่งออกเป็นส่วนต่างๆ แต่ละส่วน
ในสายของตัวเอง
2. ส่วนหัวคือ a ;FFMETADATA string ตามด้วยหมายเลขเวอร์ชัน (ตอนนี้ 1)
3. แท็กข้อมูลเมตาอยู่ในรูปแบบ คีย์=ค่า
4. ทันทีหลังจากที่ส่วนหัวติดตามข้อมูลเมตาส่วนกลาง
5. หลังจากข้อมูลเมตาส่วนกลาง อาจมีส่วนที่มีข้อมูลเมตาต่อสตรีม/ต่อบท
6. ส่วนเริ่มต้นด้วยชื่อส่วนเป็นตัวพิมพ์ใหญ่ (เช่น STREAM หรือ CHAPTER) ใน
วงเล็บ ([, ]) และลงท้ายด้วยส่วนถัดไปหรือส่วนท้ายของไฟล์
7. ในตอนต้นของส่วนบท อาจมีฐานเวลาเสริมที่จะใช้สำหรับ
ค่าเริ่มต้น/สิ้นสุด ต้องอยู่ในรูปแบบ ไทม์เบส=NUM/วันที่นี่มี NUM และ วัน เป็นจำนวนเต็ม
หากไม่มีฐานเวลา เวลาเริ่มต้น/สิ้นสุดจะถือว่าอยู่ในหน่วยมิลลิวินาที
ถัดไป ส่วนของบทต้องมีเวลาเริ่มต้นและสิ้นสุดในแบบฟอร์ม start =NUM,
สิ้นสุด=NUMที่นี่มี NUM เป็นจำนวนเต็มบวก
8. บรรทัดว่างและบรรทัดที่ขึ้นต้นด้วย ; or # จะถูกละเว้น
9. คีย์ข้อมูลเมตาหรือค่าที่มีอักขระพิเศษ (=, ;, #, \ และขึ้นบรรทัดใหม่) ต้อง
หนีด้วยแบ็กสแลช \.
10. โปรดทราบว่าช่องว่างในข้อมูลเมตา (เช่น foo = บาร์) ถือว่าเป็นส่วนหนึ่งของ
แท็ก (ในตัวอย่างด้านบนคีย์คือ foo , ค่าคือ
บาร์).
ไฟล์ ffmetadata อาจมีลักษณะดังนี้:
;FFMETADATA1
title=จักรยาน\\เพิง
;นี่คือความคิดเห็น
ศิลปิน=FFmpeg โทรลล์ทีม
[บท]
ไทม์เบส=1/1000
เริ่มต้น=0
#บทสิ้นสุดเวลา 0:01:00 น.
จบ=60000
title=บท \#1
[ลำธาร]
ชื่อเรื่อง=หลาย\
เส้น
โดยใช้ ffmetadata muxer และ demuxer เป็นไปได้ที่จะแยกข้อมูลเมตาจากอินพุต
ไฟล์เป็นไฟล์ ffmetadata จากนั้นแปลงไฟล์เป็นไฟล์เอาต์พุตด้วย
แก้ไขไฟล์ ffmetadata
แตกไฟล์ ffmetadata ด้วย ffmpeg ไปดังนี้:
ffmpeg -i อินพุต -f ffmetadata FFMETADATAFILE
การแทรกข้อมูลเมตาดาต้าที่แก้ไขแล้วจากไฟล์ FFMETADATAFILE สามารถทำได้ดังนี้:
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec คัดลอก OUTPUT
ใช้รูปแบบ ffmpeg ออนไลน์โดยใช้บริการ onworks.net