当前位置: 首页 > news >正文

重庆企业免费建站免费素材网站素材库

重庆企业免费建站,免费素材网站素材库,汕头互联网公司,百胜网站建设问题现象 OpenHarmony 5.0版本使用AVPlayer播放mpegts封装格式的H.265(HEVC)编码格式的视频时出现报错导致播放失败 问题原因 OpenHarmony 5.0版本AVPlayer播放器使用histreamer引擎,因为 libav_codec_hevc_parser.z.so 动态库未开源导致H265编码格式视频解析不到…

问题现象

OpenHarmony 5.0版本使用AVPlayer播放mpegts封装格式的H.265(HEVC)编码格式的视频时出现报错导致播放失败

问题原因

OpenHarmony 5.0版本AVPlayer播放器使用histreamer引擎,因为 libav_codec_hevc_parser.z.so 动态库未开源导致H265编码格式视频解析不到正确的宽高,硬件解码器框架层初始化时因为分辨率不合理导致报错

解决方案

版本信息

OpenHarmony-v5.0.1-Release 和 OpenHarmony-v5.0.2-Release 标准系统

方案一:设置默认的分辨率

修改 foundation/multimedia/av_codec/services/media_engine/plugins/ffmpeg_adapter/demuxer/ffmpeg_format_helper.cpp 文件,"+"符号为新增的代码

void FFmpegFormatHelper::ParseVideoTrackInfo(const AVStream& avStream, Meta &format,const AVFormatContext& avFormatContext)
{format.Set<Tag::VIDEO_WIDTH>(static_cast<uint32_t>(avStream.codecpar->width));format.Set<Tag::VIDEO_HEIGHT>(static_cast<uint32_t>(avStream.codecpar->height));format.Set<Tag::VIDEO_DELAY>(static_cast<uint32_t>(avStream.codecpar->video_delay));+   if ((avStream.codecpar->width <=0 || avStream.codecpar->height <=0) && (avStream.codecpar->codec_id == AV_CODEC_ID_HEVC)) {
+       format.Set<Tag::VIDEO_WIDTH>(1920);
+       format.Set<Tag::VIDEO_HEIGHT>(1080);
+   }double frameRate = 0;...
}

如果demuxer未解析到H265视频的分辨率,设置默认值用于初始化解码器,分辨率的默认值需要在codec hcs配置文件的分辨率范围内(minWidth和maxWidth,minHeight和maxHeight之间)

方案二:打开ffmpeg hevc软解用于解析分辨率

1、third_party/ffmpeg/BUILD.gn 新增h265 parser和decoder源文件编译

ohos_source_set("ffmpeg_dynamic") {source = [..."//third_party/ffmpeg/libavcodec/dovi_rpu.c","//third_party/ffmpeg/libavcodec/dynamic_hdr10_plus.c","//third_party/ffmpeg/libavcodec/dynamic_hdr_vivid.c","//third_party/ffmpeg/libavcodec/hevc_cabac.c","//third_party/ffmpeg/libavcodec/hevc_data.c","//third_party/ffmpeg/libavcodec/hevc_filter.c","//third_party/ffmpeg/libavcodec/hevc_mvs.c","//third_party/ffmpeg/libavcodec/hevc_parse.c","//third_party/ffmpeg/libavcodec/hevc_parser.c","//third_party/ffmpeg/libavcodec/hevc_ps.c","//third_party/ffmpeg/libavcodec/hevc_refs.c","//third_party/ffmpeg/libavcodec/hevc_sei.c","//third_party/ffmpeg/libavcodec/hevcdec.c","//third_party/ffmpeg/libavcodec/hevcdsp.c","//third_party/ffmpeg/libavcodec/hevcpred.c","//third_party/ffmpeg/libavutil/hdr_dynamic_vivid_metadata.c",]...
}

注意:如果是64位平台,还需要添加//third_party/ffmpeg/libavcodec/aarch64 目录下的部分文件,
另外可能需要修改libavcodec/hevcdec.c的部分代码以通过编译
2、third_party/ffmpeg/ohos_config.sh 新增h265 parser和decoder配置
修改1有两处

-    "--enable-parser=h263,h264,mpeg4video,vp8,vp9,mpegvideo" 
+    "--enable-parser=h263,h264,mpeg4video,vp8,vp9,mpegvideo,hevc"

修改2有两处

-    "--enable-decoder=h263,h264,mpeg2video,mpeg4,vp8,vp9"   
+    "--enable-decoder=h263,h264,mpeg2video,mpeg4,vp8,vp9,hevc"

结语

修改后验证播放mpegts封装的H.265格式的视频走硬件解码可以正常播放。
下一篇文章更新mp4封装的H265视频播放失败的解决方案。

http://www.15wanjia.com/news/179803.html

相关文章:

  • 上海建设厅焊工证查询网站国际贸易综合服务平台
  • 淘宝优惠劵做网站模版开发一个平台app需要多少钱
  • 电子商务网站建设新手企业网站设计好的缺点有哪些
  • 公司网站页脚专做耐克阿迪鞋网站
  • php企业网站模板下载自己制作的网站上传到服务器后怎么原来的网页没有变
  • 化纤公司网站建设上海网站建设开发公司
  • 农村建设集团有限公司网站首页电商网站建设效果
  • 网站后台怎么修改文字海口网站开发
  • 山东省住房和城乡建设厅网站定额站wordpress清空文章备份并对齐id
  • 微网站开发教材镇江金山网镇江新闻
  • 海外制作网站如何由网页生成网站
  • 河南企起网站建设网站怎么做排名呢
  • 有多人做网站是个人备案做求职网站
  • 北京国际建设集团网站wordpress主题 路径
  • 东莞微信网站建设咨询沈阳网站建设策划
  • 襄阳网络公司 网站建设西宁网站建设企业
  • 商城网站数据库wordpress logo制作
  • 打广告网站二手服务器做网站
  • 南京铁路建设网站wordpress 字数插件
  • 广州地址设计网站温州网络公司推广
  • 网站密码忘记了怎么办合肥住房和城乡建设部网站
  • 播州区住房城乡建设路的网站农业交易平台网站建设
  • 网站建设 五金嵌入式培训机构哪家好
  • 呼市网站制作wordpress上传pdf文件
  • 网站设计谈判网站内容编辑
  • 昆山网站建设培训班erp生产管理系统
  • 杭州互联网网站公司wordpress知更鸟主题
  • 一级做a免费体验区不用下载网站上海设计展2021室内设计
  • 做电影网站失败了龙岩人才网
  • 长春网页制作建站重庆旅游景点