{"id":15049401,"url":"https://github.com/ar1ja/vidio","last_synced_at":"2025-10-04T10:31:05.854Z","repository":{"id":107108049,"uuid":"584969933","full_name":"TruncatedDinoSour/vidio","owner":"TruncatedDinoSour","description":"[Migrated to self-hosted ari-web Forgejo: https://git.ari.lt/ari/vidio] its video, but simple","archived":true,"fork":false,"pushed_at":"2024-06-20T13:20:03.000Z","size":22,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-09-30T01:21:44.633Z","etag":null,"topics":["c","c89","c99","format","library","simple","video","video-format","video-formats"],"latest_commit_sha":null,"homepage":"https://git.ari.lt/ari/vidio","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TruncatedDinoSour.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-01-04T01:32:15.000Z","updated_at":"2024-06-20T13:39:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"bea66cbd-88ea-4bd5-b08f-36a309e4751c","html_url":"https://github.com/TruncatedDinoSour/vidio","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruncatedDinoSour%2Fvidio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruncatedDinoSour%2Fvidio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruncatedDinoSour%2Fvidio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TruncatedDinoSour%2Fvidio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TruncatedDinoSour","download_url":"https://codeload.github.com/TruncatedDinoSour/vidio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235238165,"owners_count":18958058,"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":["c","c89","c99","format","library","simple","video","video-format","video-formats"],"created_at":"2024-09-24T21:20:10.146Z","updated_at":"2025-10-04T10:31:00.567Z","avatar_url":"https://github.com/TruncatedDinoSour.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# This repository has been migrated to the self-hosted ari-web Forgejo instance: \u003chttps://git.ari.lt/ari/vidio\u003e\n# vidio video format\n\n\u003e its video, but simple\n\n# why\n\nits basically like ppm but video, the format is literally\nraw bytes, nothing else:\n\n    (2 bytes)   unsigned char magic[2]         (should usually be 'vi', but its ignored)\n    (4 bytes)   unsigned fps                   (frames per second)\n    (4 bytes)   unsigned width                 (width of the canvas)\n    (4 bytes)   unsigned height                (height of the canvas)\n    (whn bytes) unsigned char frames[n][w][h]  (all of your framas)\n     ^^^ w = width; h = height; n = frames_count\n         all data in this array is a continuous  arrat of rgb values:\n         e.g. {\n                 255, 255, 255,\n                 0,   0,   0,\n                 255, 0,   0,\n              }\n\nand its very easily convertable to other simple media formats, for example\nPPM P6 format, renderer/converter comes already implemented and the default\nlib is fully compatible with C89, also, this format is very extensible,\nat first i thought i might add support for `alpha` values but then thought\ntheyre quite useless in this case, if you will just add `alpha` field to\nthe `VidioPixel` struct:\n\n```c\ntypedef struct {\n    unsigned char red, green, blue, alpha;\n} VidioPixel;\n```\n\nthats all you need to add support for alpha, just make sure to also have\n`alpha` in your data array when generating:\n\n```c\n{\n    255, 255, 255, a,\n    0,   0,   0,   a,\n    255, 0,   0,   a,\n}\n```\n\nor, well, in the pyhton test script:\n\n```py\nbytearray((255, 255, 255, a) * 100 * 100 * 60)  # 60 100x100 frames\n```\n\nbut if youll use `vidio_render_frame_to_ppm`, you should adapt it\nto use your new format\n\n# why not ?\n\nits not a widely supported, established format of video, i only\nadded `fps` option for future when ill actually be implementing\nviewing video on some viewer, maybe `mpv` ? well see :)\n\n## still wanna see what you generated ?\n\nrun this\n\n```sh\n$ mpv \"mf://frames/*.ppm\" -mf-fps \u003cfps\u003e\n```\n\nthis will show you your whole video\n\n# lib\n\nsee [include](/include) for the source code of the library :)\n\n# example usage\n\nexample usage can be found in the [src](/src) folder, you can generate\nyour own blank, fully white vidio file using the [test.py](/scripts/test.py)\nscript, it will generate a `test.vi` file which you can then pass\nto `vidio.elf` after compiling with `./build.sh` :\n\n```sh\n$ python3 scripts/test.py\n\n$ rm -rf frames \u0026\u0026 ./build.sh -r test.vi\n\n$ mpv frames/\n```\n\nmake sure `frames` directory is never present, im too lazy to\nadd checking for it in the example\n\nthe example python script also implements another view on the\nformat, if you want something to reference very quickly, take\na look at the test script :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far1ja%2Fvidio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Far1ja%2Fvidio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Far1ja%2Fvidio/lists"}