{"id":13578728,"url":"https://github.com/ireader/avcodec","last_synced_at":"2025-04-12T19:48:02.988Z","repository":{"id":10523308,"uuid":"66046851","full_name":"ireader/avcodec","owner":"ireader","description":"av encoder/decoder/render/player","archived":false,"fork":false,"pushed_at":"2025-03-01T01:31:20.000Z","size":20391,"stargazers_count":184,"open_issues_count":4,"forks_count":94,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-12T19:47:46.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ireader.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-19T02:40:48.000Z","updated_at":"2025-03-18T02:32:59.000Z","dependencies_parsed_at":"2024-08-01T15:29:51.823Z","dependency_job_id":"f4f4152a-8050-43e9-8182-ef376d1295c1","html_url":"https://github.com/ireader/avcodec","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/ireader%2Favcodec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ireader%2Favcodec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ireader%2Favcodec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ireader%2Favcodec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ireader","download_url":"https://codeload.github.com/ireader/avcodec/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625497,"owners_count":21135513,"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":[],"created_at":"2024-08-01T15:01:33.257Z","updated_at":"2025-04-12T19:48:02.967Z","avatar_url":"https://github.com/ireader.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# avcodec\n1. H.264 bit stream parse\n2. H.264 encode by X264\n3. H.264 encode by OpenH264\n4. FFMPEG video encode/decode\n\n\n\u003cpre\u003e\u003ccode\u003e\nh264_parameter_t param;\nparam.profile = H264_PROFILE_BASELINE;\nparam.level = H264_LEVEL_2_0;\nparam.width = 352;\nparam.height = 288;\nparam.format = PICTURE_YUV420;\nparam.frame_rate = 25000;\nparam.gop_size = 50;\nparam.bitrate = 500000;\n\nvoid* h264 = x264enc_create(\u0026 param);\n//void* h264 = openh264enc_create(\u0026 param);\n\npicture_t pic;\nmemset(\u0026pic, 0, sizeof(pic));\npic.format = PICTURE_YUV420;\npic.width = 352;\npic.height = 288;\npic.pts = i * 40;\npic.dts = i * 40;\npic.flags = 0; // AVPACKET_FLAG_KEY force IDR frame\npic.data[0] = s_yuv;\npic.linesize[0] = pic.width;\npic.data[1] = pic.data[0] + pic.linesize[0] * pic.height;\npic.linesize[1] = pic.width / 2;\npic.data[2] = pic.data[1] + pic.linesize[1] * pic.height / 2;\npic.linesize[2] = pic.width / 2;\nassert(x264enc_input(h264, \u0026pic) \u003e 0);\n//assert(openh264enc_input(h264, \u0026pic) \u003e 0);\n\navpacket_t pkt;\nmemset(\u0026pkt, 0, sizeof(pkt));\nassert(x264enc_getpacket(h264, \u0026pkt) \u003e 0);\n//assert(1 == openh264enc_getpacket(h264, \u0026pkt));\n\n// save data\nassert(pkt.bytes == fwrite(pkt.data, 1, pkt.bytes, wfp));\n\u003c/code\u003e\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fireader%2Favcodec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fireader%2Favcodec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fireader%2Favcodec/lists"}