2025
Introduction
BMF (Babit Multimedia Framework) is a cross-platform, multi-language, customizable multimedia processing framework developed by ByteDance. With over 4 years of testing and improvements, BMF has been tailored to adeptly tackle challenges in our real-world production environments. It is currently widely used in ByteDance’s video streaming, live transcoding, cloud editing and mobile pre/post processing scenarios. More than 2 billion videos are processed by the framework every day.
This is our ideas page for Open Source Software Supply ChainPromotion Plan 2025
. See the OSPP Timeline for important dates.
Information for Students
Getting Started
Get to know BMF.
If you are a student interested in contributing to BMF, it is recommended to start by join in our Feishu group. Feel free to contact us if you have any questions. Also do not hesitate to answer questions from other students on our group if you know the answer to something.Find a project.
Listed on this page are mentored projects. Mentored projects are well-defined and mentor(s) have already volunteered. If a project description is unclear or you have any questions, please get in touch with its mentor and/or join our Feishu group.Contact us.
If you decide on a project, get in touch with the community and let us know. If you want to work on a good first issue, let the respective mentor know so we can avoid duplicated efforts.Apply.
Students should apply definitely before deadline on June 9th. The “work” period begins on July 1st and ends in September. Take a look at OSPP timeline for additional information.
Project Ideas
CPP Dynamic change series interface Implementation
Project Description
: In BMF, the builder layers of Python and CPP are built on the connector layer. Python uses the binding technology. Currently, BMF supports calling the dynamic series interface through Python, and supports dynamic changes of nodes when the BMF graph is running, such as adding, deleting, and resetting. The implementation of this project can refer to the existing Python builder implementation to make up for the missing dynamic series interface of CPP.
Project Difficulty
: Basic
Technical Domain, Programming Language
: mutlimedia processing, C++
Project Output Requirements
: Use C++ to implement dynamic_remove, dynamic_add, dynamic_reset, and update interfaces, and complete the test cases.
Project Technical Requirements
: 1. Good C++ code 2. basic multimedia processing
Project Completion Repository
: https://github.com/BabitMF/bmf
Estimated Work Hours
: 175 hours
Mentor:
Jack Lau (jacklau1222@qq.com)
Project Notes
: https://github.com/BabitMF/bmf/discussions/154#discussioncomment-11442021,https://babitmf.github.io/docs/bmf/multiple_features/dynamic_graph/
Template Project
Project Name
: The project name should clearly and directly reflect the project’s technology and target tasks.
Project Description
: Provide the project’s relevant background, existing work, current deficiencies, improvements needed, and final objectives to be achieved.
Project Difficulty
: Set based on project requirements, scale, technical difficulty, estimated development workload, and resource limitations.
Technical Domain, Programming Language
: Specify the technical field and programming languages involved.
Project Output Requirements
: Clearly define what students need to accomplish and the expected outcomes.
Project Technical Requirements
: Present requirements from perspectives such as programming language, technology stack, and development experience.
Project Completion Repository
: Use the existing project repository of the community, not a new empty repository.
Estimated Work Hours
: Provide an estimated reference for development hours based on project difficulty, output requirements, and student skill level.
Mentor:
someone @ somehwere.net
Project Notes
: Include related reference materials for the project itself, such as books, papers, blogs, and links to related projects or issues.