恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

海思平台不依赖频道文件实现 DVB 直接播放

  • 首页
  • 资讯中心
  • /
  • 海思平台不依赖频道文件实现 DVB 直接播放

相关资讯

海思 DVB 播放超时与 C 语言同名函数冲突排查 2026/8/26 18:52:26
IoT OTA 灰度发布与回滚:从设备分组到故障收敛 2026/8/26 18:52:26
【超详细】搞懂tar、tgz、zip、rar、7z归档压缩格式,理清跨平台踩坑根源 2026/8/26 18:52:26

最新资讯

GPUIX元素完全参考:11个原生元素一次看懂(附代码示例)
Spring AI 2.0正式GA、LangChain4j 1.19发布:Java程序员做AI,为什么不用转Python?
深耕劳务行业五年,我观察到的湖南劳务外包市场真实现状
离散傅里叶变换DFT代码解析
文件和IO(2)
LX Music 桌面版:免费开源的多源音乐聚合播放器,三分钟跑起来

今日推荐

Python random 模块常用函数详解:从入门到实战
Hermes接入团队协作后,我推翻了三个效率假设
免费AI大模型调教指南:打造专属网文写作助手

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

海思平台不依赖频道文件实现 DVB 直接播放

发布时间:2026/8/26 18:52:26
海思平台不依赖频道文件实现 DVB 直接播放 1. 频道文件与直接调谐的区别传统方案的流程是搜索频道 ↓ 导出频道文件 ↓ 系统预置频道文件 ↓ 开机导入 ↓ 根据文件中的 PID 播放频道文件通常包含频率符号率调制方式节目号视频 PID音频 PID。这种方案启动速度快但依赖具体地区和运营商。如果频点发生变化或者需要验证底层 Tuner、Demod 和 Demux 是否能够独立工作就需要采用直接调谐方式。直接调谐的基本流程是输入频率和制式参数 ↓ 配置 Tuner ↓ 配置 Demod 并等待锁定 ↓ 将 MPEG-TS 送入 Demux ↓ 过滤 PAT/PMT ↓ 解析音视频 PID ↓ 启动解码播放需要注意“不使用频道文件”并不代表完全不需要节目表。如果事先不知道音视频 PID仍然需要通过 PAT 和 PMT 动态发现节目。2.sample_dvbplay的作用项目中的测试程序位于device/hisilicon/bigfish/sdk/sample/dvbplay程序会根据命令行参数选择信号制式并完成前端初始化、锁频、节目搜索和播放。例如 DVB-Csample_dvbplay dvbc 474 6875 64参数含义通常为474 频率单位由平台约定 6875 符号率 64 QAM 调制方式DVB-T、DVB-S 等制式使用的参数不同具体格式可以查看device/hisilicon/bigfish/sdk/sample/dvbplay/readme_cn.txt程序初始化的大致顺序如下HI_UNF_DMX_Init(); HI_UNF_DMX_AttachTSPort(...); HI_UNF_TUNER_Init(); HI_UNF_TUNER_Open(...); HI_UNF_TUNER_SetAttr(...); HI_UNF_TUNER_Connect(...); HIADP_Search_GetAllPmt(...);也就是说程序不是直接“打开一个频道”而是先让前端产生有效 TS再从 TS 中搜索节目。3. Tuner、Demod 和 Demux 的职责TunerTuner 负责选择目标射频频段并完成调谐。典型配置包括Tuner 类型Tuner I2C 地址频率符号率输出模式。DemodDemod 负责对 Tuner 输出的信号进行解调恢复 MPEG-TS。典型配置包括Demod 类型Demod I2C 地址I2C 通道复位 GPIO调制方式TS 输出格式。DemuxDemux 接收 TS并根据 PID 和 Section Filter 提取节目表及音视频数据。常见表包括PAT节目关联表PMT节目映射表SDT业务描述表EIT节目事件信息。因此播放失败时必须区分问题发生在哪一层Tuner 未锁频 ≠ Demod 未解调 ≠ Demux 未收到 TS ≠ PAT/PMT 过滤失败 ≠ 音视频解码失败4. 前端参数必须与硬件匹配dvbplay.c中会读取前端配置并写入 Tuner 属性stTunerAttr.enTunerDevType stTunerCfg.u32TunerType; stTunerAttr.u32TunerAddr stTunerCfg.u32TunerI2cAddr; stTunerAttr.enDemodDevType stTunerCfg.u32DemodType; stTunerAttr.u32DemodAddr stTunerCfg.u32DemodI2cAddr; stTunerAttr.enI2cChannel stTunerCfg.u32I2cChNum;因此出现下面的日志时HI_UNF_TUNER_SetAttr failed应优先检查Tuner 类型是否正确Demod 类型是否正确I2C 地址是否正确I2C 通道是否正确复位 GPIO 是否正确TS 端口是否正确当前信号制式是否匹配。如果日志中的demod_type、demod_addr与硬件原理图或配置文件不一致程序可能还没有进入真正的节目搜索阶段。5. 如何分析 Demux 超时如果前端初始化成功但出现HIADP_Search_GetAllPmt failed DMX_DataRead timeout说明问题已经进入节目搜索阶段。unf_abs.c中的DMX_DataRead()会调用HI_UNF_DMX_AcquireBuf(...)从 Demux 通道获取 Section 数据。如果在指定时间内没有获得完整的 PAT 或 PMT就会返回失败。常见原因包括Demod 没有锁定Demod 没有输出 TSTS 端口、时钟或极性配置错误Demux 没有接收到有效数据PID 配置错误Section Filter 的 Match/Mask 设置错误实际调用了错误的 Demux 实现。推荐同时查看dmesg | grep -iE tuner|demod|lock|signal|ts logcat -b all | grep -iE dvb|demux|pat|pmt|timeout6. 一套实用排查顺序建议按照下面的顺序定位确认频率、符号率和调制方式 ↓ 确认 Tuner/Demod 参数 ↓ 确认锁频状态 ↓ 确认 TS 是否进入 Demux ↓ 确认 PAT 是否获取成功 ↓ 确认 PMT 是否获取成功 ↓ 确认音视频 PID ↓ 确认解码器和显示输出不要一看到timeout就直接增大超时时间。超时只是“在规定时间内没有拿到数据”真正原因可能是更早的硬件参数或数据通路错误。结语直接调谐播放的价值不只是省去频道文件还可以验证整条 DVB 底层链路Tuner → Demod → TS → Demux → PAT/PMT → Decoder当这条链路被逐层验证后后续无论采用频道文件播放、自动搜台还是实时调谐都能建立在可靠的底层基础上。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号