{"id":21810419,"url":"https://github.com/akhilam512/qmlrenderer","last_synced_at":"2025-06-20T15:08:57.724Z","repository":{"id":102314458,"uuid":"188784992","full_name":"akhilam512/QmlRenderer","owner":"akhilam512","description":"A Qt/C++ library to render QML to video clips","archived":false,"fork":false,"pushed_at":"2021-07-01T18:04:54.000Z","size":995,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"multithreaded-mlt","last_synced_at":"2025-04-13T22:11:44.425Z","etag":null,"topics":["cpp","opengl","qml","qt","qt-quick","qt5","rendering"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akhilam512.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-27T06:35:02.000Z","updated_at":"2024-09-05T23:02:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4298eb8-0e47-4cf7-b5f1-309111d57913","html_url":"https://github.com/akhilam512/QmlRenderer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akhilam512/QmlRenderer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilam512%2FQmlRenderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilam512%2FQmlRenderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilam512%2FQmlRenderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilam512%2FQmlRenderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akhilam512","download_url":"https://codeload.github.com/akhilam512/QmlRenderer/tar.gz/refs/heads/multithreaded-mlt","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akhilam512%2FQmlRenderer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260967377,"owners_count":23090100,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","opengl","qml","qt","qt-quick","qt5","rendering"],"created_at":"2024-11-27T13:35:32.019Z","updated_at":"2025-06-20T15:08:52.701Z","avatar_url":"https://github.com/akhilam512.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# QmlRenderer\n\nQmlRenderer renders .qml files to video frames\n\n## How it works\n\nUsing [QQuickRenderControl](https://doc.qt.io/qt-5/qquickrendercontrol.html) to render Qt Quick Content, QmlRenderer renders static and animated QML files to video frames of a specified format, duration, FPS and DPI.\n\nQmlRenderer uses a custom QAnimationDriver to overcome limits of the QML render rate, which is limited to the screen's refresh rate, to allow rendering of Qt Quick Content at a custom frame rate.\n\nThe render loop in a nutshell works like this:  Using QQuickRenderControl, we render the contents of the Qt Quick Scenegraph onto a frame buffer object, save it and then advance the animation driver to move to the next frame at the prescribed frame rate, and continue.\n\n\nThe rendered frames can then be picked up by multimedia frameworks like [MLT](https://www.mltframework.org/) or FFmpeg to 'play' QML videos. Currently, the code is optimised to work in use with a [MLT module](https://github.com/akhilam512/mlt). The latest version on the branch \"multithreaded_mlt\" renders QML on a separate render thread to avoid OpenGL context conflicts when running within other QML components/applications.\n\n## Getting Started\n\n### An overview -\n\nsrc/ - contains source code of rendering part of the library\n\ntest/ - contains unit tests and reference output frames for testing\n\ncli/ - contains the source code for the CLI executable of the library\n\n## To build - \n\n```\nmkdir build\n\ncd build\n\nqmake -r ..\n\nmake \n\ncd bin\n\n./QmlRender -o /path/to/output/directory -i /path/to/input/QML/file\n```\n\n## For options - \n\n```\n./QmlRender --help\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhilam512%2Fqmlrenderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakhilam512%2Fqmlrenderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakhilam512%2Fqmlrenderer/lists"}