{"adoption": {"forks": 357, "observed_at": "2026-08-28T04:05:57.423523+00:00", "stars": 1941}, "canonical_url": "https://ross.abutalabs.com/products/learningvideo", "card": {"archived": false, "artifact_type": "learning-resource", "description": "【Android 音视频开发打怪升级】系列文章示例代码（A demo to introduce how to develop android video）。本项目将从MediaCodec硬解，FFmpeg软解，OpenGL等方面，全方位讲解如何在Android上进行音视频编辑开发。", "domain": ["mobile-development", "tutorials", "media"], "enriched": true, "function": ["video-processing", "audio-processing", "graphics"], "health_score": 20, "homepage": null, "language": "C", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["ChenLittlePing/LearningVideo"], "name": "ChenLittlePing/LearningVideo", "platform": ["cpp", "c"], "pushed_at": "2021-05-16T05:17:56+00:00", "repo": "ChenLittlePing/LearningVideo", "stars": 1941, "tags": ["android", "ffmpeg", "mediacodec", "opengl-es", "opensl-es", "audio-video", "demo-code", "chinese"], "topics": ["mediacodec", "mediamuxer", "ffmpeg", "opengl-es", "opensl-es"], "urls": [], "use_cases": ["learn android audio video development", "decode video with mediacodec on android", "play video with ffmpeg and opengl es", "mux audio and video into an mp4 on android", "render video frames with opengl es", "decode audio with ffmpeg and opensl es", "get started with android multimedia programming"], "what_it_is": "A collection of demo code accompanying a Chinese tutorial series on Android audio/video development. It covers hardware decoding with MediaCodec, software decoding with FFmpeg, rendering with OpenGL ES, audio playback with OpenSL ES, and muxing/demuxing into MP4.", "when_to_avoid": ["you need a production-ready media library or player to drop into your app", "you need up-to-date code or active maintenance (last release 2021)", "you need advanced or exhaustive coverage beyond an introductory series", "you cannot work with Chinese-language documentation"], "when_to_choose": ["you are learning Android audio/video development from scratch and want guided, step-by-step examples", "you want working sample code for MediaCodec, FFmpeg, OpenGL ES, and OpenSL ES in one project", "you prefer tutorial-style resources with accompanying blog articles"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/learningvideo", "repo": "ChenLittlePing/LearningVideo", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.423523+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:08:05.571745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1137af787413354fd9e8d1099b83af0c8ab92acb7b64e29eefc83b3e72d93915", "fetched_at": "2026-08-28T04:05:57.423523+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChenLittlePing/LearningVideo"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2539, "days_push": 1935, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}