建设域名网站,可信网站必须做吗,网站建设公司哪个好一点,做网站学哪些语言在安卓中使用 mobile-ffmpeg 压缩后的视频#xff0c;浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案
你可能在安卓开发中使用了 mobile-ffmpeg 进行视频压缩#xff0c;而当你尝试在浏览器中在线播放压缩后的视频时#xff0c;看到提示#xff1a;…在安卓中使用 mobile-ffmpeg 压缩后的视频浏览器在线播放提示“没有找到支持的视频格式和 MIME 类型”的解决方案
你可能在安卓开发中使用了 mobile-ffmpeg 进行视频压缩而当你尝试在浏览器中在线播放压缩后的视频时看到提示“没有找到支持的视频格式和 MIME 类型。” 这个问题的原因以及如何解决今天咱们就用大白话来聊聊。
问题的原因是什么
你在安卓项目中用 mobile-ffmpeg 压缩视频时可能默认使用了 H.265 (HEVC) 编码格式。这个格式确实厉害能把视频压得更小同时还能保持不错的画质。但是H.265 并不是所有浏览器都支持的尤其是在 HTML5 视频播放的环境下。像 Chrome 和 Firefox虽然在某些情况下支持 H.265但它并不是默认支持而且许多移动端浏览器也无法识别这个格式。
当浏览器无法识别视频的编码格式或者容器格式时就会显示“没有找到支持的视频格式和 MIME 类型”的错误。
浏览器支持的主流视频格式
要保证压缩后的视频能够在大多数浏览器中播放视频编码格式和容器格式必须符合浏览器的要求。这里是主流浏览器普遍支持的格式
容器格式mp4, webm, ogv视频编码H.264 (AVC), VP8, VP9音频编码AAC, Vorbis, Opus
问题就在于你压缩后的视频可能用了 H.265 (HEVC) 作为视频编码这种格式并不是浏览器最友好的选择。
解决方案改用 H.264 视频编码
要让视频在浏览器中顺利播放最稳妥的做法是将编码格式从 H.265 改为 H.264这种编码格式兼容性最好几乎所有浏览器和设备都支持。
如何在安卓中用 mobile-ffmpeg 压缩视频并确保兼容性
在 mobile-ffmpeg 中你可能原本使用了这样的命令来压缩视频
String cmd String.format(-i %s -strict -2 -vf scale%d:%d -c:v libx265 -x265-params crf28:presetfast -r 30 %s,videoPath,newWidth,newHeight,outputFilePath
);这里的 libx265 就是告诉 mobile-ffmpeg 用 H.265 编码压缩视频。为了确保视频能在浏览器中播放我们可以把这个编码器换成 libx264也就是使用 H.264 编码。修改后的命令如下
String cmd String.format(-i %s -strict -2 -vf scale%d:%d -c:v libx264 -preset fast -crf 28 -r 30 %s,videoPath,newWidth,newHeight,outputFilePath
);解释这些参数
-i %s输入文件的路径。-vf scale%d:%d缩放视频到指定的宽高。-c:v libx264使用 H.264 编码压缩视频。-preset fast使用快速压缩设置减少压缩时间。-crf 28控制视频质量数值越低质量越好文件越大。-r 30设置帧率为 30 帧每秒。
确保音频也兼容使用 AAC 编码
同样重要的是音频编码。为了确保音频部分在浏览器中也能正常播放我们需要使用浏览器广泛支持的 AAC 编码。因此我们的命令中还要加上音频编码的设置
String cmd String.format(-i %s -strict -2 -vf scale%d:%d -c:v libx264 -preset fast -crf 28 -c:a aac -b:a 128k -r 30 %s,videoPath,newWidth,newHeight,outputFilePath
);-c:a aac使用 AAC 作为音频编码。-b:a 128k设置音频比特率为 128kbps保证音质不错。
使用正确的 mobile-ffmpeg 包
在引入 mobile-ffmpeg 时确保使用的包是 com.arthenica:mobile-ffmpeg-full-gpl:4.4而不是 com.arthenica:mobile-ffmpeg-full:4.4。前者包含了 H.264 编码所需的支持库确保编码时不会出现问题。
为什么选择 H.264 编码
H.264 之所以是最好的选择是因为它兼容性好。几乎所有的主流浏览器、移动设备、视频播放器等都支持 H.264 编码。这样无论用户是在 Chrome、Safari 还是 Firefox 浏览器上都可以轻松播放你压缩后的视频。
总结
如果你在安卓开发中使用 mobile-ffmpeg 进行视频压缩遇到了浏览器无法播放压缩后视频的情况多半是因为你使用了 H.265 编码。要解决这个问题
改用 H.264 编码来压缩视频。确保音频使用 AAC 编码保证最大兼容性。使用正确的 mobile-ffmpeg 包 com.arthenica:mobile-ffmpeg-full-gpl:4.4。
只要你按照这些步骤调整压缩后的视频应该能够顺利在浏览器中播放再也不会看到“没有找到支持的视频格式和 MIME 类型”的错误提示了。
小贴士
容器格式用 mp4。视频编码用 H.264。音频编码用 AAC。
这样做不仅能压缩视频还能让它在所有主流浏览器里轻松播放