BabitMF / bmf

Cross-platform, customizable multimedia/video processing framework. With strong GPU acceleration, heterogeneous design, multi-language support, easy to use, multi-framework compatible and high performance, the framework is ideal for transcoding, AI inference, algorithm integration, live video streaming, and more.
https://babitmf.github.io/
Apache License 2.0
807 stars 71 forks source link

C++无法调用数据推送模式 #133

Open x850044053wwt opened 1 month ago

x850044053wwt commented 1 month ago

GraphMode中没有数据推送模式枚举。源码中添加对应枚举后,c++没有对应python中的Graph::run_wo_block。执行Graph::run()之后,线程阻塞,无法继续调用FillPacket

JackLau1222 commented 1 month ago

may you provide the cpp demo code?

x850044053wwt commented 1 month ago

nlohmann::json graph_para = { {"dump_graph", 1} }; auto graph = bmf::builder::Graph(bmf::builder::PushdataMode, JsonParam(graph_para)); auto video_stream = graph.InputStream("blob_video", "", ""); nlohmann::json option = { { "video_codec", "h264" }, { "video_time_base", "1,30000" }, { "push_raw_stream", 1 } }; auto decode_stream = video_stream.Decode(JsonParam(option)); option = { { "output_path", "D:/output.mp4" }, { "video_params", { { "codec", "h264" }, { "width", 640 }, { "height", 480 }, { "crf", "23" }, { "preset", "veryfast" } } } }; decode_stream.EncodeAsVideo(JsonParam(option)); graph.Start();