新闻详情

新闻详情

首页 / 资讯中心 / 详情

video-compress-cj 开发者指南:如何扩展新视频格式与自定义压缩质量档位

发布时间:2026/9/25 1:53:25来源:尧图网络
video-compress-cj 开发者指南:如何扩展新视频格式与自定义压缩质量档位
video-compress-cj 开发者指南如何扩展新视频格式与自定义压缩质量档位【免费下载链接】video-compress-cj一个高性能的视频压缩器使用硬件解码和编码API(MediaCodec)。项目地址: https://gitcode.com/Cangjie-TPC/video-compress-cjvideo-compress-cj 是一款高性能的视频压缩三方库视频压缩 SDK面向 HarmonyOS 应用基于硬件编解码 APIMediaCodec实现低耗损的 mp4、ts 视频压缩内置高、中、低三档压缩质量。本文将带你快速上手该项目并讲解两个高频定制需求扩展新的视频格式与自定义压缩质量档位。 项目结构一览3 层架构看懂视频压缩器整个工程分为 3 层扩展功能前先弄清改哪里层级目录职责仓颉 API 层videocompressor/对外接口VideoCompressor与质量枚举CompressQualityC FFI 层videocompress_ffi/解封装、解码、编码、封装的完整压缩管线示例工程entry/高/中/低三档压缩的 UI 示例整体介绍见 README.md接口文档见 doc/feature_api.md。核心压缩流程在 cjcodec.cpp 中串联解封装DeMuxer→ 格式校验 → 视频/音频解码 → 硬件编码 → 封装输出Muxer 如何扩展新的视频格式当前支持的格式白名单如下详见 README.md 的支持的视频规格输入封装mp4、mpeg.ts视频编码AVCH.264、HEVCH.265音频编码AAC输出封装mp41. 找到格式守门员JudgeMime新格式被拒绝的地方是 cjcodec.cpp 中的JudgeMime函数——它只放行video/avc、video/hevc两种视频 mime 和audio/mp4a-latm音频 mime否则直接返回not support video mime错误。扩展新格式时只需在判断条件中追加目标 mime 即可例如想让库接受video/av01AV1if (bean-demuxer-get()-videoMime ! video/avc bean-demuxer-get()-videoMime ! video/hevc bean-demuxer-get()-videoMime ! video/av01) { // 拒绝并释放资源 }2. 确认设备硬件编解码能力这是最容易踩的坑MediaCodec 是硬件编解码框架新增格式必须先在目标设备验证硬件能力否则解码/编码器创建失败。解码端 mime 由解封装器自动识别见 DeMuxer.cpp 的GetTrackInfo无需改动编码端由 VideoEnc.cpp 的CreateVideoEncoder按 mime 创建编码器硬件不支持时该步骤会返回错误。3. 输出封装保持不变输出统一为 mp4封装参数宽高、旋转、帧率、音频通道等在 cjcodec.cpp 的CreateMutex中从解封装器透传给 Muxer新格式一般无需修改。4. 重建 FFI 库并验证选择videocompressor模块点击 Build 菜单 → Make Module 等待编译完成再用 entry 示例 压缩一个新格式样本观察resCode是否为 0。️ 如何自定义压缩质量档位现有高/中/低三档本质是原码率 × 比例高质量 0.8、中质量 0.5、低质量 0.3。新增档位需要改两处。1. 仓颉层扩展 CompressQuality 枚举在 compress_quality.cj 中新增枚举值并同步更新GetTypeNum映射为整数传递给 FFI和toStringpublic enum CompressQuality { | COMPRESS_QUALITY_HIGH | COMPRESS_QUALITY_MEDIUM | COMPRESS_QUALITY_LOW | COMPRESS_QUALITY_ULTRA // 新增超低档位 }2. C 层给档位分配码率比例在 VideoEnc.cpp 的GetQualityBitrate中为新档位增加分支例如新增ultraProportions 0.15并加对应case。函数末尾已有安全兜底码率会被钳制在 10 kbps ~ 100 Mbps 之间新档位无需担心越界。3. 参数流转路径一次压缩的完整链路调用 video_compressor.cj 的compressVideo枚举经GetTypeNum转为整数通过 FFI 声明的CompressVideo进入 C 入口 cjcodec.cppquality 存入AsyncCallbackInfoConfigureVideoEncoder用 quality 计算最终码率以 CBR 模式写入编码器配置。 本地构建与验证步骤git clone -b 具体分支名 --single-branch --recursive https://gitcode.com/Cangjie-TPC/video-compress-cj.git构建环境要求README.md 约束与限制IDEDevEco Studio 5.0.5 Release (5.0.13.200)插件DevEco Studio-Cangjie Plugin 5.0.13.200 Canary开发完成后选择videocompressor模块 → Build → Make Module 完成编译再运行 entry 示例目录 下对应档位页面验证。压缩输出文件会生成在应用沙盒路径/data/app/el2/100/base/(packagename)/haps/entry/files/见 video_compressor.cj 的命名规则。❓ 常见问题速查现象可能原因排查位置not support video mime格式未加白名单JudgeMime解码器创建失败硬件不支持该编码格式DeMuxer.cpp压缩后画质异常档位码率比例过激GetQualityBitrate回调 resultCode 非 0查看 resultStr 报错信息async_callback.cj✅ 小结扩展格式 硬件能力确认 JudgeMime白名单放行 FFI 重新编译自定义档位CompressQuality枚举加值 GetQualityBitrate加比例分支两层改动仓颉 C保持一致后重新构建videocompressor模块即可生效。按照以上步骤你可以在不破坏原有高/中/低档位行为的前提下安全地为 video-compress-cj 视频压缩器扩展新格式与专属质量档位。【免费下载链接】video-compress-cj一个高性能的视频压缩器使用硬件解码和编码API(MediaCodec)。项目地址: https://gitcode.com/Cangjie-TPC/video-compress-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

OpCore-Simplify:一份硬件报告,生成可用的 OpenCore EFI 2026/9/25 2:31:16

OpCore-Simplify:一份硬件报告,生成可用的 OpenCore EFI

OpCore-Simplify:一份硬件报告,生成可用的 OpenCore EFI 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在 PC 上装 macOS 时&…

阅读更多 →
源师兄刷卡开锁完整教程:RFID模块+舵机3步实现门禁系统,附权限扩展方案 2026/9/25 2:31:16

源师兄刷卡开锁完整教程:RFID模块+舵机3步实现门禁系统,附权限扩展方案

源师兄刷卡开锁完整教程:RFID模块舵机3步实现门禁系统,附权限扩展方案 【免费下载链接】课程 本项目致力于成为跨学科知识的中枢,系统汇聚与持续孵化高质量的课程资源。内容覆盖计算机、人工智能、信息科技、人文教育等多个领域,旨…

阅读更多 →
论文分析不再头疼:AI辅助阅读文献与数据整理实战指南 2026/9/25 2:31:10

论文分析不再头疼:AI辅助阅读文献与数据整理实战指南

毕业论文、期刊论文做数据分析的时候,最让人头大的往往不是写作那一步,而是写之前那段漫长的“分析期”。我读研的时候,光是整理访谈记录和文献摘要就折腾了快三周——四十几篇PDF、几万字访谈、密密麻麻的实验数据,散落在不同文件…

阅读更多 →
海温海冰数据预处理实战:海洋-海冰模型驱动场构建指南 2026/9/25 2:31:04

海温海冰数据预处理实战:海洋-海冰模型驱动场构建指南

简介:全球海水表面温度与海冰浓度数据集(2020a专用)源自 Met Office Hadley Centre 观测数据集,包含覆盖全球海域的海表温度和海冰浓度要素,是海洋气候研究中常用的基础数据资源,适合需要处理 NetCDF 格式但…

阅读更多 →
PaddleSpeech Audiotools 音频处理与建模工具包:AudioSignal、数据增强、评估指标与训练加速全解析 2026/9/25 2:31:04

PaddleSpeech Audiotools 音频处理与建模工具包:AudioSignal、数据增强、评估指标与训练加速全解析

人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword…

阅读更多 →
Comp AI CRM 品牌设计令牌重构:把 CRM 界面对齐 Comp 品牌色的 ADR 实践与源码落地 2026/9/25 2:31:04

Comp AI CRM 品牌设计令牌重构:把 CRM 界面对齐 Comp 品牌色的 ADR 实践与源码落地

后端前端CRM人工智能AI Agent 【免费下载链接】crm Comp AI CRM is an open source, CRM designed for AI agents. Agentic-first CRM. 项目地址: https://gitcode.com/gh_mirrors/crm48/crm 点击查看 免费下载 Comp AI CRM 的 adrs/comp-palette.md 是一份典型的架…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉