BMF (BABIT MULTIMEDIA FRAMEWORK) เป็น กรอบการประมวลผลมัลติมีเดียหลายภาษาที่ปรับแต่งได้หลายภาษา ด้วยการทดสอบและการปรับปรุงมานานกว่า 4 ปี BMF ได้รับการปรับให้เหมาะกับการจัดการกับความท้าทายในสภาพแวดล้อมการผลิตในโลกแห่งความเป็นจริงของเรา ปัจจุบันมีการใช้กันอย่างแพร่หลายในการสตรีมวิดีโอของ Bytedance, การแปลงรหัสสด, การแก้ไขคลาวด์และสถานการณ์การประมวลผลก่อน/โพสต์มือถือ มีการประมวลผลวิดีโอมากกว่า 2 พันล้านรายการทุกวัน
นี่คือคุณสมบัติสำคัญบางประการของ BMF:
การสนับสนุนข้ามแพลตฟอร์ม: ความเข้ากันได้ดั้งเดิมกับ Linux, Windows และ Mac OS รวมถึงการเพิ่มประสิทธิภาพสำหรับ CPU X86 และ ARM
ใช้งานง่าย: BMF ให้บริการ Python, GO และ C ++ APIs ช่วยให้นักพัฒนามีความยืดหยุ่นในการเขียนโค้ดในภาษาโปรดของพวกเขา
ความสามารถในการปรับแต่ง: นักพัฒนาสามารถปรับปรุงคุณสมบัติของเฟรมเวิร์กโดยการเพิ่มโมดูลของตัวเองอย่างอิสระเนื่องจากสถาปัตยกรรม BMF แยก
ประสิทธิภาพสูง: BMF มีตัวกำหนดตารางเวลาที่ทรงพลังและการสนับสนุนที่แข็งแกร่งสำหรับฮาร์ดแวร์การเร่งความเร็วที่แตกต่างกัน นอกจากนี้ Nvidia ยังร่วมมือกับเราในการพัฒนาท่อส่ง GPU ที่ได้รับการปรับปรุงอย่างสูงสำหรับการแปลงวิดีโอและการอนุมาน AI
การแปลงข้อมูลที่มีประสิทธิภาพ: BMF เสนอการแปลงรูปแบบข้อมูลที่ราบรื่นในเฟรมเวิร์กยอดนิยม (FFMPEG/NUMPY/PYTORCH/OPENCV/TENSORRT) การแปลงระหว่างอุปกรณ์ฮาร์ดแวร์ (CPU/GPU) และพื้นที่สีและการแปลงรูปแบบพิกเซล
BMFLITE เป็นไคลเอนต์ข้ามแพลตฟอร์มที่มีน้ำหนักเบาและมีประสิทธิภาพมากขึ้นกรอบการประมวลผลมัลติมีเดียฝั่งไคลเอ็นต์ที่มีประสิทธิภาพมากขึ้น จนถึงตอนนี้อัลกอริทึมฝั่งไคลเอ็นต์ BMFLITE ถูกใช้ในแอพเช่น Douyin/Xigua ให้บริการผู้ใช้มากกว่าหนึ่งพันล้านคนในการสตรีม/วิดีโอสด/วิดีโอ/เกมและเกมอื่น ๆ .
ดำน้ำลึกลงไปในความสามารถของ BMF บนเว็บไซต์ของเราสำหรับรายละเอียดเพิ่มเติม
ในส่วนนี้เราจะแสดงความสามารถโดยตรงของเฟรมเวิร์ก BMF ประมาณหกมิติ: transcode , แก้ไข , การประชุม/ผู้ประกาศ , การเร่งความเร็ว GPU , การอนุมาน AI และ กรอบฝั่งไคลเอ็นต์ สำหรับการสาธิตทั้งหมดที่ให้ไว้ด้านล่างการใช้งานและเอกสารที่สอดคล้องกันมีอยู่ใน Google Colab ช่วยให้คุณได้สัมผัสกับพวกเขาอย่างสังหรณ์ใจ
การสาธิตนี้อธิบายวิธีการใช้ BMF ทีละขั้นตอนเพื่อพัฒนาโปรแกรมการแปลงรหัสรวมถึงการแปลงวิดีโอการแปลงรหัสเสียงและการแปลงรหัสภาพ ในนั้นคุณสามารถทำความคุ้นเคยกับวิธีการใช้ BMF และวิธีการใช้ตัวเลือกที่เข้ากันได้กับ FFMPEG เพื่อให้ได้ความสามารถที่คุณต้องการ
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตการแก้ไขจะแสดงวิธีการใช้งานการแก้ไขเสียงและวิดีโอที่มีความซับซ้อนสูงผ่านเฟรมเวิร์ก BMF เราได้ใช้โมดูล Python สองโมดูล Video_Concat และ Video_overlay และรวมความสามารถของอะตอมต่างๆเพื่อสร้างกราฟ BMF ที่ซับซ้อน
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตนี้ใช้เฟรมเวิร์ก BMF เพื่อสร้างบริการออกอากาศอย่างง่าย บริการให้ API ที่เปิดใช้งานการดึงแหล่งวิดีโอแบบไดนามิกการควบคุมเค้าโครงวิดีโอการผสมเสียงและการสตรีมการส่งออกไปยังเซิร์ฟเวอร์ RTMP ในที่สุด การสาธิตนี้แสดงให้เห็นถึงความเป็นโมดูลของ BMF การพัฒนาหลายภาษาและความสามารถในการปรับท่อแบบไดนามิก
ด้านล่างคือการบันทึกหน้าจอที่แสดงให้เห็นถึงการทำงานของผู้ประกาศ:

การสาธิตการเร่งการแยกเฟรมวิดีโอแสดงให้เห็นว่า:
ความสามารถที่ยืดหยุ่น BMF ของ:
การเร่งความเร็วฮาร์ดแวร์เปิดใช้งานอย่างรวดเร็วและรองรับท่อส่งสัญญาณ CPU/GPU
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตการแปลงรหัส GPU และโมดูลตัวกรองแสดงให้เห็นว่า:
การสาธิตสร้างท่อส่งผ่านการแปลงรหัสซึ่งทำงานอย่างเต็มที่บน GPU:
decode-> scale-> flip-> rotate-> crop-> blur-> encode
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
ต้นแบบของวิธีการสร้างวิดีโอการประมวลผลล่วงหน้าสำหรับข้อมูลการฝึกอบรม LLM ใน Bytedance ซึ่งให้บริการคลิปการประมวลผลหลายพันล้านครั้งในแต่ละวัน
วิดีโออินพุตจะถูกแยกออกจากการเปลี่ยนแปลงฉากและคำบรรยายในวิดีโอจะถูกตรวจพบและถูกครอบตัดโดยโมดูล OCR และคุณภาพวิดีโอจะถูกประเมินโดย BMF ให้โมดูลความงาม หลังจากนั้นคลิปวิดีโอสรุปจะถูกเข้ารหัสเป็นเอาต์พุต
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตนี้แสดงวิธีการรวมอัลกอริธึมสถานะของ ART AI เข้ากับไปป์ไลน์การประมวลผลวิดีโอ BMF อัลกอริทึมการระบายสีโอเพนซอร์สที่มีชื่อเสียง DeOldify ถูกห่อเป็นโมดูล BMF Pyhton ในรหัสน้อยกว่า 100 บรรทัด เอฟเฟกต์สุดท้ายแสดงไว้ด้านล่างพร้อมวิดีโอต้นฉบับทางด้านซ้ายและวิดีโอสีทางด้านขวา
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้

การสาธิตนี้ใช้กระบวนการอนุมานความละเอียดสูงของ Real-Esrgan เป็นโมดูล BMF ซึ่งจัดแสดงท่อ BMF ที่รวมการถอดรหัสการอนุมานและการเข้ารหัส
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตนี้แสดงวิธีเรียกใช้แบบจำลองการประเมินความงามของเราโดยใช้ BMF รูปแบบการเรียนรู้เชิงลึกของเรา Aesmode ได้รับความแม่นยำในการจำแนกประเภทไบนารี 83.8% ในชุดข้อมูล AVA ถึงระดับของ SOTA ทางวิชาการและสามารถใช้โดยตรงเพื่อประเมินระดับความงามของวิดีโอโดยใช้วิธีการสกัดเฟรม
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
การสาธิตนี้แสดงให้เห็นถึงการตรวจจับใบหน้าแบบลิงค์เต็มรูปแบบโดยใช้การเร่งความเร็วแบบ Tensorrt ซึ่งใช้โมเดล ONNX ที่เร่งตัวแบบ tensorrt ภายในเพื่อประมวลผลวิดีโออินพุต มันใช้อัลกอริทึม NMS เพื่อกรองกล่องผู้สมัครซ้ำเพื่อสร้างเอาต์พุตซึ่งสามารถใช้ในการประมวลผลงานตรวจจับใบหน้าได้อย่างมีประสิทธิภาพ
หากคุณต้องการทดลองอย่างรวดเร็วคุณสามารถลองใช้งานได้
กรณีนี้แสดงให้เห็นถึงขั้นตอนการรวมโมดูลอัลกอริทึมภายนอกเข้ากับกรอบ BMFLITE และการจัดการการดำเนินการ

ตัวอย่างนี้ใช้อัลกอริทึม DENOISE เป็นโมดูล BMF ซึ่งจัดแสดงท่อ BMF ที่รวมการจับวิดีโอการลดเสียงรบกวนและการแสดงผล

เกี่ยวกับ BMF
ประสบการณ์ที่รวดเร็ว
เริ่มต้น
โหมดซิงค์กับ 3 ภาษา คุณสามารถลองใช้:
Python: C ++: ไป:
คุณสมบัติหลายอย่าง (พร้อมตัวอย่าง)
APIs
ใบอนุญาต
การบริจาค
โครงการมีใบอนุญาต Apache 2.0 ส่วนประกอบและการพึ่งพาของบุคคลที่สามยังคงอยู่ภายใต้ใบอนุญาตของตนเอง
ยินดีต้อนรับการมีส่วนร่วม โปรดปฏิบัติตามแนวทาง
เราใช้ปัญหา GitHub เพื่อติดตามและแก้ไขปัญหา หากคุณมีคำถามใด ๆ โปรดเข้าร่วมการสนทนาและทำงานร่วมกับเราเพื่อหาทางออก
เครื่องมือถอดรหัสตัวเข้ารหัสและตัวกรองอ้างอิง FFMPEG CMDLINE พวกเขาถูกห่อเป็นโมดูลในตัวของ BMF ภายใต้ใบอนุญาต LGPL
โครงการยังได้รับแรงบันดาลใจจากเฟรมเวิร์กยอดนิยมอื่น ๆ เช่น FFMPEG-PYTHON และ MediaPipe เว็บไซต์ของเราใช้โครงการจาก Docsy ตาม Hugo
ที่นี่เราต้องการแสดงความขอบคุณอย่างจริงใจต่อนักพัฒนาของโครงการข้างต้น!