我有一些图像序列,并使用它们使用 FFMpeg 制作视频。它在 VLC(windows 和 android)上表现良好,但在内置的 android 视频播放器上表现不佳。
视频的编解码器和容器信息如下 -
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../clg/clg_eq_final_injected.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.83.100
Duration: 00:00:12.13, start: 0.000000, bitrate: 9058 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 4096x2048, 9057 kb/s, 24 fps, 24 tbr, 12288 tbn, 24576 tbc (default)
Metadata:
handler_name : VideoHandler
Side data:
spherical: equirectangular (0.000000/0.000000/0.000000)
我通过在 youtube 上上传视频来解决问题。然后我又下载了。它的编解码器信息如下 -Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../clg/clg_eq_test.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2020-05-17T08:06:01.000000Z
Duration: 00:00:12.14, start: 0.000000, bitrate: 738 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 607 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
creation_time : 2020-05-17T08:06:01.000000Z
handler_name : ISO Media file produced by Google Inc. Created on: 05/17/2020.
Side data:
stereo3d: 2D
spherical: equirectangular (0.000000/0.000000/0.000000)
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2020-05-17T08:06:01.000000Z
handler_name : ISO Media file produced by Google Inc. Created on: 05/17/2020.
我注意到第一个视频没有任何音频流(因为它只是一个图像序列)。但是youtube随意添加了一个音频流。 (我在添加音频流后尝试了android,但没有运气)我知道的 -
Q1。 h264(constrained baseline) 与 h264(main) 有什么区别?
Q2。为什么第一个视频在 android 上不受 native 支持?
我上传的 youtube 视频是 here .
引用:
Conversion from mjpeg to mp4 (libx264) with FFmpeg
convert format from yuvj420p to yuv420p
How to create a video from images with FFmpeg?
最佳答案
我的猜测是您的第一个文件的图像大小为 4096x2048,比特率为 9 Mbps (9057 kb/s),超过了 Android recommends假设内置硬件解码。您的第二个文件的图像大小为 1280x720,比特率为 607 kb/s,因此符合预期。
VLC 有自己的软件解码器,因此不受 Android 原生支持的限制。
关于android - 将 FFMpeg 视频转换为 android 可播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455677/