{"id":23813592,"url":"https://github.com/twometer/csvideo","last_synced_at":"2025-09-04T00:10:54.278Z","repository":{"id":116710982,"uuid":"237001498","full_name":"Twometer/CSVideo","owner":"Twometer","description":"C# Library for writing video files using FFmpeg with audio support","archived":false,"fork":false,"pushed_at":"2020-05-25T15:14:28.000Z","size":31,"stargazers_count":11,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-01T05:58:51.017Z","etag":null,"topics":["csharp","ffmpeg","video-processing"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Twometer.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,"zenodo":null}},"created_at":"2020-01-29T14:29:49.000Z","updated_at":"2025-03-07T04:55:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"2bcfe64c-5b6e-4e08-89c9-7f8b8a8d60a0","html_url":"https://github.com/Twometer/CSVideo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Twometer/CSVideo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twometer%2FCSVideo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twometer%2FCSVideo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twometer%2FCSVideo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twometer%2FCSVideo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Twometer","download_url":"https://codeload.github.com/Twometer/CSVideo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Twometer%2FCSVideo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273529913,"owners_count":25121898,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["csharp","ffmpeg","video-processing"],"created_at":"2025-01-02T03:19:28.894Z","updated_at":"2025-09-04T00:10:54.268Z","avatar_url":"https://github.com/Twometer.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CSVideo\n[![](https://img.shields.io/nuget/v/CSVideo)](https://www.nuget.org/packages/CSVideo) ![](https://img.shields.io/github/license/Twometer/CSVideo)\n\nCSVideo is a C# Library for writing video files using FFmpeg.\n\nI was searching for a good C# video writing library for a long time, and the only one\nthat could output a modern formats (H264 etc.) was Accord.FFmpeg. The framework however\nrequires a lot of extra libraries, and the video file writer is glitchy and does not work with audio.\n\nThis project aims to provide a lightweight and easy-to-use FFmpeg video writing library without\nany of these problems.\n\n## Design\nOne of the design goals for this library is an easy-to-use API. Part of this is not only a simple set of\nexposed functions, but also the chosen default configuration. In contrast to libraries like Accord, the\ndefault configuration for this library outputs high-quality audio and video in 1920x1080 resolution. However,\nyou can also change the configuration to your liking, if you want something more special.\n\n## Usage\nTo use this library, you need the FFmpeg library files. I tested it with the libraries supplied by FFmpeg.AutoGen (v4.2),\nwhich you can download from [here](https://github.com/Ruslan-B/FFmpeg.AutoGen/tree/master/FFmpeg/bin/x64), but you can\nalso try the latest version from the FFmpeg site. Once you have these libraries, you can use CSVideo as follows:\n\n```csharp\nFFmpegLoader.Load(@\"C:\\the\\ffmpeg\\folder\");\n\nusing (var writer = new VideoWriter(OutputPath))\n{\n\twriter.Open();\n\twhile (true)\n\t{\n\t\tif (writer.WriteVideo)\n\t\t{\n\t\t\t// Write a video frame\n\t\t\twriter.WriteVideoFrame(bitmap);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Write an audio frame\n\t\t\twriter.WriteAudioFrame(audioData);\n\t\t}\n\t}\n}\n```\n\nFor a more complete example, see the CSVideo.Example project.\n\n## Audio Support\nSupports mono and stereo floating-point audio samples, for example from a CSCore stream. The default is stereo, so\nfor mono streams you have to set `writer.Channels = 1`. It only supports mono and stereo, any different number of\nchannels will lead to an exception\n\n## Credits\nThanks to [FFmpeg.AutoGen by Ruslan-B](https://github.com/Ruslan-B/FFmpeg.AutoGen) for the very nice C# FFmpeg wrapper\n\n## Contributing\nYou can help me make CSVideo the go-to solution for video manipulation in C# by reporting bugs\nin the GitHub issue tracker, or submitting pull requests. I appreciate every improvement to this repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwometer%2Fcsvideo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwometer%2Fcsvideo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwometer%2Fcsvideo/lists"}