HarmonyOS 鸿蒙Next中使用MP4Parser变化的视频无法二次操作
HarmonyOS 鸿蒙Next中使用MP4Parser变化的视频无法二次操作
使用MP4Parser变化的视频无法二次操作(倒放过的视频已经保存到相册,再从相册取出无法进行二次倒放)
let dst = getContext().cacheDir + dir + '/output' + Date.now() + '.mp4';
let ffmpegCmdStr = `ffmpeg -i ${videoDir} -vf reverse -af areverse ${dst}`;
// 执行 FFmpeg 转换命令
let res = await this.cmdOperate(ffmpegCmdStr, dst)
return res;
cmdOperate是执行ffmpeg命令的函数
更多关于HarmonyOS 鸿蒙Next中使用MP4Parser变化的视频无法二次操作的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有没有完整的demo?
更多关于HarmonyOS 鸿蒙Next中使用MP4Parser变化的视频无法二次操作的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主取出相册里面的图片会不会和权限有关系,重新取出来的文件已经是属于图库的文件了
我重新到相册取的,再倒放的就不行了,而且倒放的视频被损毁了,
相册里面的视屏会不会是加密过了 可以提一个工单试一下,
试试修正FFmpeg参数保证兼容性
let ffmpegCmdStr = `ffmpeg -i ${videoDir} -vf reverse -af areverse
-c:v libx264 -profile:v baseline -level 3.0 -movflags +faststart
-x264-params keyint=30:scenecut=0 ${dst}`
显式指定H.264 Baseline Profile编码;强制关键帧间隔(keyint=30);添加MP4快速启动头(-movflags)
这个都已经抛异常了,也还是谢谢哈,感觉这个第三库是不是不太成熟,
在HarmonyOS Next中使用MP4Parser处理视频后无法二次操作,可能是文件元数据未正确更新或文件句柄未释放。确保使用最新版MP4Parser库,操作完成后调用close()方法释放资源。检查文件权限是否允许读写,临时文件路径是否有效。若仍失败,可尝试将处理后的视频复制到新文件再操作。
在HarmonyOS Next中使用MP4Parser处理视频时遇到二次操作问题,可能是由于以下原因导致的:
-
元数据问题:第一次倒放处理后,视频文件的元数据可能没有正确更新,导致二次操作时解析失败。建议在处理完成后使用
MP4Parser.rebuild()
方法重建完整的MP4结构。 -
编解码器兼容性:倒放操作可能改变了视频的编码参数,导致二次处理时编解码器不兼容。可以尝试在FFmpeg命令中明确指定编解码器参数:
let ffmpegCmdStr = "ffmpeg -i ${videoDir} -c:v libx264 -preset fast -crf 22 -vf reverse -af areverse ${dst}"
-
文件权限问题:从相册取出的视频可能受到权限限制。建议先复制到应用沙箱目录再进行操作。
-
时间戳问题:倒放操作会打乱原始时间戳,可以尝试在FFmpeg命令中添加
-vsync 0
参数来保持原始时间戳。
如果问题仍然存在,建议检查第一次倒放处理后生成的视频文件是否完整可用,并确认FFmpeg版本是否支持相关操作。