LosslessCut: มีดพกสวิสสำหรับการตัดต่อวิดีโอ/เสียงแบบไม่สูญเสีย
(github.com/mifi)LosslessCut
LosslessCut เป็นเครื่องมือ GUI ข้ามแพลตฟอร์มที่อิงกับ FFmpeg สำหรับแก้ไขไฟล์วิดีโอและเสียงได้อย่างรวดเร็วโดยไม่สูญเสียข้อมูล เครื่องมือนี้ช่วยให้ตัดไฟล์วิดีโอขนาดใหญ่ที่ถ่ายจากกล้องวิดีโอ, GoPro, โดรน ฯลฯ ได้อย่างรวดเร็วเพื่อประหยัดพื้นที่จัดเก็บ นอกจากนี้ยังไม่จำเป็นต้องเข้ารหัสใหม่เมื่อเพิ่มแทร็กเพลงหรือคำบรรยายลงในวิดีโอ
ฟีเจอร์หลัก
- ตัดฟอร์แมตวิดีโอและเสียงส่วนใหญ่แบบไม่สูญเสียข้อมูล
- Smart cut (ฟีเจอร์ทดลอง)
- ตัดเฉพาะบางส่วนของวิดีโอ/เสียงแบบไม่สูญเสียข้อมูล
- จัดเรียงลำดับเซกเมนต์วิดีโอ/เสียงใหม่แบบไม่สูญเสียข้อมูล
- รวม/ต่อไฟล์แบบไม่สูญเสียข้อมูลสำหรับไฟล์ที่มีพารามิเตอร์ codec เดียวกัน
- รวมแทร็กใดก็ได้จากหลายไฟล์เข้าด้วยกัน (เช่น เพิ่มแทร็กเพลงหรือคำบรรยายลงในไฟล์วิดีโอ)
- ลบแทร็กที่ไม่ต้องการ
- เข้ารหัสใหม่หรือแทนที่เฉพาะบางแทร็ก
- แยกทุกแทร็กออกจากไฟล์ (วิดีโอ, เสียง, คำบรรยาย, ไฟล์แนบ ฯลฯ)
- เวิร์กโฟลว์หลายไฟล์ที่รวดเร็ว (ไม่มีการส่งออกแบบจำนวนมาก/แบตช์)
- เวิร์กโฟลว์ด้วยคีย์ลัด
- รีมักซ์วิดีโอ/เสียงไปยังฟอร์แมตคอนเทนเนอร์อื่นแบบไม่สูญเสียข้อมูล
- ถ่ายสแนปช็อตความละเอียดเต็มจากวิดีโอเป็น JPEG/PNG
- ส่งออกเฟรมวิดีโอเป็นภาพ (ทุกเฟรมที่ n, ทุกวินาที, เมื่อฉากเปลี่ยน)
- ส่งออกเฉพาะช่วงเวลาที่เลือก
- ตัวเลือกใส่ timestamp ต้นฉบับในชื่อไฟล์ภาพ
- ป้อนเวลาจุดตัดด้วยตนเอง
- ใช้ timecode offset แยกตามไฟล์ (โหลดอัตโนมัติจากไฟล์)
- แก้ไข metadata ของไฟล์, metadata รายแทร็ก และ disposition รายแทร็ก
- เปลี่ยน metadata การหมุน/ทิศทางของวิดีโอ
- ดูข้อมูลทางเทคนิคของทุกแทร็ก
- ซูมไทม์ไลน์และกระโดดไปยังคีย์เฟรม
- ภาพขนาดย่อของวิดีโอและ waveform ของเสียง
- บันทึก cut segment ลงในไฟล์โปรเจกต์
- ดูล็อกคำสั่งล่าสุดของ FFmpeg
- เลิกทำ/ทำซ้ำ
- ใส่ป้ายกำกับให้ cut segment
- ใส่คำอธิบายประกอบเซกเมนต์ด้วยแท็ก
- นำเข้า/ส่งออกเซกเมนต์: เครื่องหมาย chapter ของ MP4/MKV, ไฟล์ข้อความ, YouTube, CSV, CUE, XML (DaVinci, Final Cut Pro) ฯลฯ
- ตัวแก้ไข chapter mark แบบฝังใน MKV/MP4
- ดูคำบรรยาย
- คีย์ลัดที่ปรับแต่งได้
- ตรวจจับฉากดำ, ตรวจจับเสียงเงียบ, ตรวจจับการเปลี่ยนฉาก
- แบ่งไทม์ไลน์เป็นเซกเมนต์ตามความยาว L หรือจำนวน N
- ปรับความเร็วของไฟล์วิดีโอหรือเสียง (เปลี่ยน FPS)
- CLI และ HTTP API พื้นฐาน
ตัวอย่างการใช้งานแบบไม่สูญเสียข้อมูล
- ลบโฆษณาออกจากรายการทีวีที่อัดไว้ (รีฟอร์แมตจาก TS เป็น MP4)
- ลบแทร็กเสียงออกจากไฟล์
- แยกแทร็กเพลงออกจากวิดีโอและตัดตามต้องการ
- เพิ่มเพลงลงในวิดีโอ (หรือแทนที่แทร็กเสียงเดิม)
- รวมแทร็กเสียงและวิดีโอจากการบันทึกแยกกัน
- ฝังคำบรรยายภายนอกลงในวิดีโอ
- เปลี่ยนวิดีโอ MKV แบบ H264/H265 เป็น MOV หรือ MP4 อย่างรวดเร็วเพื่อเล่นบน iPhone
- นำเวลา cut จากเครื่องมืออื่นมาเป็น EDL (Edit Decision List, CSV) แล้วประมวลผลใน LosslessCut
- ส่งออกเวลา cut เป็น CSV EDL เพื่อไปประมวลผลในเครื่องมืออื่น
- ตัดไฟล์อย่างรวดเร็วด้วย chapter ของ MP4/MKV
- ตัดวิดีโอ YouTube อย่างรวดเร็วตาม chapter (หรือเวลาของเพลงในคอมเมนต์)
- เปลี่ยนภาษาของแทร็กเสียง/คำบรรยายในไฟล์
- แนบ cover art/thumbnail ให้กับวิดีโอหรือเสียงจากไฟล์ JPEG ภายนอกหรือเฟรมบนไทม์ไลน์
- เปลี่ยนผู้สร้าง, ชื่อเรื่อง, ตำแหน่ง GPS, เวลาในการบันทึกของวิดีโอ
- แก้การหมุนของวิดีโอที่ตั้งค่า orientation flag ผิด
- ทำซ้ำคลิปวิดีโอ/เสียง X ครั้ง (โดยไม่เข้ารหัสใหม่)
- แปลงวิดีโอหรือบางส่วนของวิดีโอเป็นไฟล์ภาพ X ไฟล์ (ไม่สูญเสียข้อมูล)
- แยกวิดีโอเป็นไฟล์ละหนึ่งฉาก
- ตัดช่วงเงียบของเสียง/วิดีโอออก
- แบ่งวิดีโอเป็นหลายเซกเมนต์เพื่อให้เป็นไปตามข้อจำกัด 140 วินาทีของ Twitter
- ใส่คำอธิบายประกอบแต่ละเซกเมนต์ด้วยแท็กหนึ่งรายการขึ้นไป และใช้แท็กเหล่านี้เพื่อจัดระเบียบเซกเมนต์หรือสร้างโครงสร้าง/ลำดับชั้นของโฟลเดอร์ผลลัพธ์
ส่งออกเวลา cut เป็น YouTube chapter
- ส่งออกโดยเปิดใช้การรวม และเปิด "สร้าง chapter จากเซกเมนต์ที่รวมแล้ว"
- เปิดไฟล์ที่ส่งออก แล้วเลือก "นำเข้า chapter" ในกล่องโต้ตอบ
- ไฟล์ -> ส่งออกโปรเจกต์ -> YouTube chapter
เข้ารหัสใหม่เฉพาะแทร็กเสียงและคงแทร็กวิดีโอแบบไม่สูญเสียข้อมูล
- ส่งออกแต่ละแทร็กเป็นไฟล์แยก
- ใช้ Handbrake หรือเครื่องมือที่คล้ายกันเพื่อเข้ารหัสไฟล์เสียงใหม่ (สำหรับไฟล์ mp4 ให้เข้ารหัสเป็น AAC)
- เปิด video stream ที่แยกออกมาใน LosslessCut
- เปิดไฟล์เสียงที่เข้ารหัสแล้ว และเลือก "รวมทุกแทร็กจากไฟล์ใหม่"
- ส่งออก
เวิร์กโฟลว์หลายขั้นตอนขั้นสูง
เคล็ดลับ: สามารถใช้ LosslessCut หลายครั้งเพื่อตัดแต่ละแทร็กแยกจากกันได้
- เปิดไฟล์และส่งออกทุกแทร็กเป็นไฟล์แยก
- เปิดไฟล์แทร็กที่ส่งออกมาแยกอิสระและตัดตามต้องการ
- เพิ่มแทร็กกลับเข้าไปในวิดีโอและรวมเป็นวิดีโอเอาต์พุตเดียว
ดาวน์โหลด
หากต้องการสนับสนุนการพัฒนาอย่างต่อเนื่องของ LosslessCut และรับประโยชน์จากกระบวนการติดตั้งที่ปลอดภัยและเรียบง่าย รวมถึงการอัปเดตอัตโนมัติที่เสถียร ขอแนะนำให้พิจารณาดาวน์โหลดจากสโตร์ที่คุณต้องการ
ระบบปฏิบัติการที่รองรับ
- Mac OS X: Intel DMG / Apple Silicon DMG
- Windows: 7zip (Windows 7, 8 และ 8.1 ไม่รองรับตั้งแต่ v3.50.0 เป็นต้นไป)
- Linux: x64 tar.bz2 / x64 AppImage / arm64 tar.bz2 / Raspberry Pi armv7l
ฟอร์แมตที่รองรับ
LosslessCut ใช้ตัวเล่นวิดีโอ HTML5 ของ Chromium และไม่ได้รองรับทุกฟอร์แมตและ codec ที่ FFmpeg รองรับแบบเนทีฟ โดยทั่วไปฟอร์แมตต่อไปนี้ใช้งานได้:
- ฟอร์แมตวิดีโอ:
MP4,MOV,WebM,Matroska,OGG,WAV - codec เสียง:
FLAC,MP3,Opus,PCM,Vorbis,AAC - codec วิดีโอ:
H264,AV1,Theora,VP8,VP9,H265(ต้องใช้ตัวถอดรหัสฮาร์ดแวร์)
วิดีโอเดโม
- ฟีเจอร์ทั่วไป
- วิธีเพิ่ม thumbnail/cover art ลงใน MP4
- วิธีเพิ่มเสียงหลายภาษาลงในวิดีโอ
เวิร์กโฟลว์ทั่วไป
- ลากและวางไฟล์วิดีโอลงในตัวเล่น หรือใช้
⌘/CTRL+O - กด
SPACEเพื่อเล่น/หยุดชั่วคราว หรือใช้◀``▶,,``.หรือวงล้อเมาส์/แทร็กแพดเพื่อเลื่อนไปข้างหน้าและย้อนกลับ - เลื่อน time marker เพื่อเลือกเวลาเริ่มและสิ้นสุดของ cut segment แล้วกด
Iเพื่อตั้งเวลาเริ่ม และOเพื่อตั้งเวลาสิ้นสุด - ทุกเซกเมนต์จะถูก เก็บไว้ และส่งออกเป็นไฟล์ใหม่ หากต้องการเปลี่ยนพฤติกรรมนี้ สามารถใช้สัญลักษณ์ Yin Yang ☯️ เพื่อตั้งให้ ลบ เซกเมนต์ที่เลือก และส่งออกส่วน ระหว่าง เซกเมนต์แทน
- หากต้องการเพิ่มหลายเซกเมนต์ ให้เลื่อนไปยังเวลาเริ่มที่ต้องการแล้วกด
+จากนั้นเลือกเวลาเริ่ม/สิ้นสุดของเซกเมนต์ถัดไปด้วยI/O - หากต้องการรวมทุกเซกเมนต์ที่เลือกกลับเป็นไฟล์เดียวหลังตัด ให้สลับปุ่ม
Separate filesเป็นMerge cuts - หากต้องการส่งออกไปยังโฟลเดอร์ปลายทางเฉพาะ ให้กดปุ่ม
Working dir unset(ค่าเริ่มต้น: โฟลเดอร์ของไฟล์อินพุต) - หากต้องการเปลี่ยนทิศทาง ให้กดปุ่ม หมุน
- โดยค่าเริ่มต้น แทร็กเสียง วิดีโอ และคำบรรยายของไฟล์อินพุตจะถูกตัดและส่งออก กดปุ่ม
Tracksเพื่อปรับแต่งและ/หรือเพิ่มแทร็กใหม่จากไฟล์อื่นได้ - สามารถเลือกฟอร์แมตเอาต์พุตใหม่ได้
- ในแผงเซกเมนต์ด้านขวา คลิกขวาที่เซกเมนต์เพื่อเลือกตัวเลือก หรือลากและวางเพื่อจัดลำดับใหม่ โดยจะปรากฏตามลำดับนี้ในผลลัพธ์ที่รวมแล้ว
- เมื่อเสร็จแล้วให้กดปุ่ม
Export(หรือE) เพื่อดูภาพรวมของตัวเลือกการส่งออก - สามารถปรับตัวเลือกการส่งออกได้
- กดส่งออกอีกครั้งเพื่อยืนยันการส่งออก
- หากต้องการถ่าย JPEG/PNG snapshot ที่เวลาปัจจุบัน ให้กดปุ่ม กล้อง (หรือ
C) - หากต้องการย้ายไฟล์ต้นฉบับไปยังถังขยะ ให้กดปุ่ม ถังขยะ
- เพื่อผลลัพธ์ที่ดีที่สุด อาจต้องลองใช้ฟอร์แมตเอาต์พุตอื่น (Matroska รองรับได้เกือบทุกอย่าง) เปลี่ยนโหมดตัดคีย์เฟรม หรือปิดใช้งานบางแทร็ก
- หากต้องการดูคีย์ลัดทั้งหมดของคีย์บอร์ดและเมาส์ ให้กด
SHIFT+/ - หมายเหตุ: ไฟล์วิดีโอต้นฉบับจะไม่ถูกแก้ไข แต่จะมีการสร้างไฟล์ที่มี timestamp from/to ในไดเรกทอรีเดียวกับไฟล์ต้นฉบับแทน
ความเห็นจาก GN⁺
- LosslessCut เป็นเครื่องมือที่ช่วยแก้ไขไฟล์วิดีโอและเสียงได้อย่างรวดเร็วโดยไม่สูญเสียข้อมูล โดยเฉพาะมีประโยชน์สำหรับผู้ใช้ที่ต้องจัดการไฟล์ขนาดใหญ่
- ทำงานบนพื้นฐานของ FFmpeg จึงให้ความเร็วสูงมาก และรองรับฟอร์แมตกับ codec ได้หลากหลาย
- มีฟีเจอร์หลากหลาย เช่น smart cut, เวิร์กโฟลว์หลายไฟล์, คีย์ลัด ช่วยเพิ่มความสะดวกในการใช้งาน
- เครื่องมือที่มีฟังก์ชันคล้ายกันได้แก่ Avidemux, Shotcut ฯลฯ และควรเปรียบเทียบข้อดีข้อเสียของแต่ละเครื่องมือ
- เมื่อนำเทคโนโลยีใหม่หรือโอเพนซอร์ซมาใช้ ควรพิจารณาฟอร์แมตและ codec ที่รองรับ รวมถึงความใช้งานง่ายของอินเทอร์เฟซผู้ใช้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดูเหมือนเป็นคู่แข่งโอเพนซอร์สของ VideoReDo
การตัดต่อแบบไม่สูญเสียข้อมูลคือการรีมิกซ์คอนเทนเนอร์ต้นฉบับไปเป็นคอนเทนเนอร์ใหม่
ES ถูกเข้ารหัสไว้ จึงไม่ได้ให้ความแม่นยำระดับเฟรม
สามารถวิเคราะห์ ES bitstream เพื่อตรวจจับขอบเขตของ GOP ได้
ใช้ LosslessCut เพื่อแยกวิดีโอการแข่งขันดำน้ำออกเป็นคลิปการดำน้ำแต่ละชุดได้อย่างมีประโยชน์
มีการให้ลิงก์ที่เกี่ยวข้อง
มีการแชร์สคริปต์ bash ที่มีประโยชน์
AVIDemux เป็นแอปเนทีฟที่ให้ความสามารถคล้ายกัน
บน GitHub ใช้ไลเซนส์ GPL-2.0, บน snap store เป็นไลเซนส์ MIT และบน Mac OS APP store ราคา $19
สงสัยว่ามีเอกสารอธิบายเทคนิคการตัดแบบไม่สูญเสียข้อมูลร่วมกับ ffmpeg หรือไม่
เป็นแฟนตัวยงของ LosslessCut และใช้งานแทบทุกวัน
สงสัยว่าสามารถดาวน์โหลดและตัดวิดีโอแบบไม่สูญเสียข้อมูลจากเซิร์ฟเวอร์ระยะไกลได้หรือไม่