在将视频上传到服务器之前,我一直在使用“ cordova-plugin-video-editor”插件来减小视频的大小/质量。
该插件可在大多数Android手机上正常运行,而在iOS上则无需担心。
但是在最近的Android手机上,它会崩溃。 我使用Android 9下的Xiaomi RedMi Note 7重现此错误。
我有这个错误:
net.ypresto.androidtranscoder.engine.InvalidOutputFormatException:
Android OS不支持非基准AVC视频配置文件,实际 profile_idc:100
以下是视频的特点:
H264 - MPEG-4 AVC (part10)(avc1)
1920x1080
Planar 4:2:0 YUV
ITU-R BT.601 (50 Hz)
MPEG AAC Audio (mp4a)
48000Hz
32bits
经过几次搜索,我找不到解决方案,但仍然有一些线索:
今天,除了必须创建自己的插件以使用与新视频格式兼容的另一个Android库外,我无法得出任何其他结论。 我必须承认,我不太喜欢这种解决方案,这就是为什么我呼吁社区。 p>
您是否认为您还有其他有关此问题的信息可以帮助我?
非常感谢您。
确实是插件依赖性与新的编解码器不兼容。
因此,我将插件分叉到我的github上,然后修改对视频进行转码的代码部分。 现在,我使用这个库而不是旧的库:https://github.com/tangpeng/VideoCompressor
您可以看到此仓库中提交的更改: https://github.com/Eblancho/cordova-plugin-video-editor
我不建议您将其用于您的项目,因为它不是经过100%测试/与所有手机兼容的,它是最近才有的变化。
除此之外,与以前的版本允许选择高度/宽度,比特率等不同,我的版本计算如下:
newHeight = videoHeight / 2;
newWidth = videoWidth / 2;
bitrates = (newHeight / 2) * (newWidth / 2) * 10;
如果您对我的代码有任何意见或疑问,请随时提出。
由于我的修改,这个新问题不是副作用,因为它也出现在旧版本中,我只是认为它也与转码有关。
现在,当我打开相机录制视频时,只要我想关闭返回Cordova mainActivity的意图,应用程序就会重新启动。
我认为讨论不是真正的话题,所以我将创建一个新的讨论来更好地分离我的问题。