{"id":17300793,"url":"https://github.com/nyanmisaka/ffmpeg-rockchip","last_synced_at":"2025-05-15T02:06:36.841Z","repository":{"id":214411126,"uuid":"736404727","full_name":"nyanmisaka/ffmpeg-rockchip","owner":"nyanmisaka","description":"FFmpeg with async and zero-copy Rockchip MPP \u0026 RGA support","archived":false,"fork":false,"pushed_at":"2025-04-22T11:22:24.000Z","size":357454,"stargazers_count":701,"open_issues_count":9,"forks_count":107,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-22T12:31:19.855Z","etag":null,"topics":["arm","arm64","decoder","encoder","ffmpeg","filter","librga","linux","mpp","multimedia","rga","rk3588","rk3588s","rk35xx","rkmpp","rkrga","rockchip","transcode","video","video-processing"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nyanmisaka.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.GPLv2","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":"2023-12-27T20:13:54.000Z","updated_at":"2025-04-22T11:21:12.000Z","dependencies_parsed_at":"2025-04-14T00:01:37.207Z","dependency_job_id":null,"html_url":"https://github.com/nyanmisaka/ffmpeg-rockchip","commit_stats":null,"previous_names":["nyanmisaka/ffmpeg-rockchip"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyanmisaka%2Fffmpeg-rockchip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyanmisaka%2Fffmpeg-rockchip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyanmisaka%2Fffmpeg-rockchip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nyanmisaka%2Fffmpeg-rockchip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nyanmisaka","download_url":"https://codeload.github.com/nyanmisaka/ffmpeg-rockchip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259370,"owners_count":22040819,"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":["arm","arm64","decoder","encoder","ffmpeg","filter","librga","linux","mpp","multimedia","rga","rk3588","rk3588s","rk35xx","rkmpp","rkrga","rockchip","transcode","video","video-processing"],"created_at":"2024-10-15T11:30:13.880Z","updated_at":"2025-05-15T02:06:31.831Z","avatar_url":"https://github.com/nyanmisaka.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"ffmpeg-rockchip\n=============\nThis project aims to provide full hardware transcoding pipeline in FFmpeg CLI for Rockchip platforms that support MPP ([Media Process Platform](https://github.com/rockchip-linux/mpp)) and RGA ([2D Raster Graphic Acceleration](https://github.com/airockchip/librga)). This includes hardware decoders, encoders and filters. A typical target platform is RK3588/3588s based devices.\n\n## Hightlights\n* MPP decoders support up to 8K 10-bit H.264, HEVC, VP9 and AV1 decoding\n* MPP decoders support producing AFBC (ARM Frame Buffer Compression) image\n* MPP decoders support de-interlace using IEP (Image Enhancement Processor)\n* MPP decoders support allocator half-internal and pure-external modes\n* MPP encoders support up to 8K H.264 and HEVC encoding\n* MPP encoders support async encoding, AKA frame-parallel\n* MPP encoders support consuming AFBC image\n* RGA filters support image scaling and pixel format conversion\n* RGA filters support image cropping\n* RGA filters support image transposing\n* RGA filters support blending two images\n* RGA filters support async operation\n* RGA filters support producing and consuming AFBC image\n* Zero-copy DMA in above stages\n\n## How to use\nThe documentation is available on the [Wiki](https://github.com/nyanmisaka/ffmpeg-rockchip/wiki) page of this project.\n\n\n## Codecs and filters\n### Decoders/Hwaccel\n```\n V..... av1_rkmpp            Rockchip MPP (Media Process Platform) AV1 decoder (codec av1)\n V..... h263_rkmpp           Rockchip MPP (Media Process Platform) H263 decoder (codec h263)\n V..... h264_rkmpp           Rockchip MPP (Media Process Platform) H264 decoder (codec h264)\n V..... hevc_rkmpp           Rockchip MPP (Media Process Platform) HEVC decoder (codec hevc)\n V..... mpeg1_rkmpp          Rockchip MPP (Media Process Platform) MPEG1VIDEO decoder (codec mpeg1video)\n V..... mpeg2_rkmpp          Rockchip MPP (Media Process Platform) MPEG2VIDEO decoder (codec mpeg2video)\n V..... mpeg4_rkmpp          Rockchip MPP (Media Process Platform) MPEG4 decoder (codec mpeg4)\n V..... vp8_rkmpp            Rockchip MPP (Media Process Platform) VP8 decoder (codec vp8)\n V..... vp9_rkmpp            Rockchip MPP (Media Process Platform) VP9 decoder (codec vp9)\n```\n\n### Encoders\n```\n V..... h264_rkmpp           Rockchip MPP (Media Process Platform) H264 encoder (codec h264)\n V..... hevc_rkmpp           Rockchip MPP (Media Process Platform) HEVC encoder (codec hevc)\n V..... mjpeg_rkmpp          Rockchip MPP (Media Process Platform) MJPEG encoder (codec mjpeg)\n```\n\n### Filters\n```\n ... overlay_rkrga     VV-\u003eV      Rockchip RGA (2D Raster Graphic Acceleration) video compositor\n ... scale_rkrga       V-\u003eV       Rockchip RGA (2D Raster Graphic Acceleration) video resizer and format converter\n ... vpp_rkrga         V-\u003eV       Rockchip RGA (2D Raster Graphic Acceleration) video post-process (scale/crop/transpose)\n```\n\n## Important\n* Rockchip BSP/vendor kernel is necessary, 5.10 and 6.1 are two tested versions.\n* For the supported maximum resolution and FPS you can refer to the datasheet or TRM.\n* User MUST be granted permission to access these device files.\n```\n# DRM allocator\n/dev/dri\n\n# DMA_HEAP allocator\n/dev/dma_heap\n\n# RGA filters\n/dev/rga\n\n# MPP codecs\n/dev/mpp_service\n\n# Optional, for compatibility with older kernels and socs\n/dev/iep\n/dev/mpp-service\n/dev/vpu_service\n/dev/vpu-service\n/dev/hevc_service\n/dev/hevc-service\n/dev/rkvdec\n/dev/rkvenc\n/dev/vepu\n/dev/h265e\n```\n\n## Todo\n* Support MPP MJPEG/JPEG decoder\n* Support MPP VP8 video encoder\n* ...\n\n## Acknowledgments\n\n@[hbiyik](https://github.com/hbiyik) @[HermanChen](https://github.com/HermanChen) @[rigaya](https://github.com/rigaya)\n\n---\n\nFFmpeg README\n=============\n\nFFmpeg is a collection of libraries and tools to process multimedia content\nsuch as audio, video, subtitles and related metadata.\n\n## Libraries\n\n* `libavcodec` provides implementation of a wider range of codecs.\n* `libavformat` implements streaming protocols, container formats and basic I/O access.\n* `libavutil` includes hashers, decompressors and miscellaneous utility functions.\n* `libavfilter` provides means to alter decoded audio and video through a directed graph of connected filters.\n* `libavdevice` provides an abstraction to access capture and playback devices.\n* `libswresample` implements audio mixing and resampling routines.\n* `libswscale` implements color conversion and scaling routines.\n\n## Tools\n\n* [ffmpeg](https://ffmpeg.org/ffmpeg.html) is a command line toolbox to\n  manipulate, convert and stream multimedia content.\n* [ffplay](https://ffmpeg.org/ffplay.html) is a minimalistic multimedia player.\n* [ffprobe](https://ffmpeg.org/ffprobe.html) is a simple analysis tool to inspect\n  multimedia content.\n* Additional small tools such as `aviocat`, `ismindex` and `qt-faststart`.\n\n## Documentation\n\nThe offline documentation is available in the **doc/** directory.\n\nThe online documentation is available in the main [website](https://ffmpeg.org)\nand in the [wiki](https://trac.ffmpeg.org).\n\n### Examples\n\nCoding examples are available in the **doc/examples** directory.\n\n## License\n\nFFmpeg codebase is mainly LGPL-licensed with optional components licensed under\nGPL. Please refer to the LICENSE file for detailed information.\n\n## Contributing\n\nPatches should be submitted to the ffmpeg-devel mailing list using\n`git format-patch` or `git send-email`. Github pull requests should be\navoided because they are not part of our review process and will be ignored.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyanmisaka%2Fffmpeg-rockchip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnyanmisaka%2Fffmpeg-rockchip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnyanmisaka%2Fffmpeg-rockchip/lists"}