HarmonyOS鸿蒙Next中avplayer如何播放wmv,mov这样的格式视频

HarmonyOS鸿蒙Next中avplayer如何播放wmv,mov这样的格式视频 我使用avplayer来播放视频,但是avplayer官方文档写到只支持了一些格式的视频。但是现在我要播放这些不支持的格式的视频。有没有什么方法。我知道的有:

1:AVTranscoder

2:ffmpeg

这些都是将视频转码成支持的格式。但是这些方法转码时都需要时间。并且大视频转码时间很久。有没有能够边转码边播放。或者类似的方法能够快速的播放这些不支持的格式视频

9 回复

你所说的应该是MOV吧

可以使用 VideoPlay

或者 ijkplayer

更多关于HarmonyOS鸿蒙Next中avplayer如何播放wmv,mov这样的格式视频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


用avplayer播放不了mov和wmv格式的视频。会报错格式不支持。但是使用ffmpeg或者AVTranscoder转码需要的时间又太久了。我想着有没有边转码边播放的这样的实现思路。或者视频解码到底能不能做到播放这些格式的视频?

开发者你好,

不支持的格式不支持转码后用AVplayer播放;如果支持的格式可以直接播放。 如果满足不了您的要求,请提供如下信息, 请问您是在什么样的业务场景中使用该能力,交互流程是怎样的,在哪一个环节遇到了问题?方便说明能力不满足可能带来的影响:什么时间用到?是否高频?有无三方库可以做到?若提供该能力,是否会造成大工作量返工?请您注意提供的内容不要包含您或第三方的非公开信息,如给您带来不便,敬请谅解。

Avplayer目前支持的视频播放格式和主流分辨率如下:

视频容器规格 规格描述 分辨率
mp4 视频格式:H265/H264
音频格式:AAC/MP3
主流分辨率,如4K/1080P/720P/480P/270P
mkv 视频格式:H265/H264
音频格式:AAC/MP3
主流分辨率,如4K/1080P/720P/480P/270P
ts 视频格式:H265/H264
音频格式:AAC/MP3
主流分辨率,如4K/1080P/720P/480P/270P

 相关文档:【AVPlayer使用指南】

我的需求就是要播放这些avplayer不支持的视频。那么就不能用avplayer。或者用avplayer但是要转码。转码时间太久不是我想要的。视频解码能不能做到我要的需求呢?

HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。

我尝试用过视频解码的方式来播放这些avplayer不支持的格式。但是也会播放失败。

鸿蒙Next的avplayer支持播放wmv和mov格式视频。avplayer通过系统内置的解码器处理常见格式,包括wmv和mov。开发者只需在代码中正确设置视频源路径,avplayer会自动调用相应解码器进行播放。

在HarmonyOS Next中,AVPlayer本身对WMV、MOV等非标准格式的支持确实有限。针对你的需求,目前可行的技术方案是实时转码流式播放,这能有效避免完全转码的等待时间。

核心方案:使用FFmpeg进行实时解封装与转码,并通过AVPlayer播放转码后的流

  1. 流程设计

    • 使用FFmpeg库(需集成到HarmonyOS工程中)读取WMV/MOV文件,进行解封装。
    • 将视频流实时转换为AVPlayer支持的格式(如H.264/AAC封装为MP4或TS流)。
    • 通过本地HTTP服务器或管道将转码后的数据流传递给AVPlayer,实现边转码边播放。
  2. 关键实现步骤

    • 集成FFmpeg:将FFmpeg编译为HarmonyOS可用的Native库(C/C++),通过NAPI暴露接口给ArkTS层调用。
    • 流式转码:配置FFmpeg输出为流格式(例如fmp4mpegts),降低转码延迟。
    • 数据传递:在本地启动一个轻量HTTP服务器(如使用libmicrohttpd),FFmpeg将转码后的流写入HTTP响应,AVPlayer直接播放该HTTP链接(如http://localhost:8080/stream.ts)。
  3. 优化建议

    • 调整FFmpeg转码参数,使用-preset ultrafast降低编码复杂度,牺牲部分压缩率换取更低的延迟。
    • 对于MOV格式,若仅包含标准H.264编码,可尝试直接解封装后传输,避免重新编码。

注意事项

  • 该方案对设备性能有一定要求,实时转码会增加CPU负载。
  • 需自行处理FFmpeg库的HarmonyOS适配与许可问题。
  • 若视频编码本身已支持(如MOV中的H.264),可优先尝试解封装而非转码,以提升效率。

此方法避免了完整文件转码的等待,实现了类似“边下边播”的体验,但开发复杂度较高,需熟悉FFmpeg与HarmonyOS Native开发。

回到顶部