【问题标题】:Converting FFMpeg Video to android playable video将 FFMpeg 视频转换为 android 可播放视频
【发布时间】:2020-10-08 20:19:21
【问题描述】:

我有一些图像序列,并使用它们使用 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,但没有运气) 我所知道的 -

  1. Android 本身不支持动态 JPEG。
  2. android 支持 H264。

第一季度。 h264(constrained baseline) 与 h264(main) 有什么区别? Q2。为什么第一个视频在 android 上不受本机支持? 我上传的 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?

【问题讨论】:

    标签: android video ffmpeg


    【解决方案1】:

    我的猜测是,您的第一个文件的图像大小为 4096x2048,比特率为 9 Mbps (9057 kb/s),这超过了 Android recommends 假设内置硬件解码。您的第二个文件的图像大小为 1280x720,比特率为 607 kb/s,符合预期。

    VLC 有自己的软件解码器,因此不受 Android 原生支持的限制。

    【讨论】:

    • 我的视频链接是here。我会降低比特率。我的问题是为什么 youtube 说图像尺寸是 1280 x 720 ?您可以从链接下载视频并查看。
    • 啊,你在做 360 度视频。鉴于分辨率在 PC 浏览器中出现的块状,1280x720 的文件似乎符合预期。遗憾的是,我没有直接的 360 度视频制作经验,所以我不知道你在问什么,只是指点你Youtube upload encoding recommendations
    【解决方案2】:

    您可能没有同样的问题,但就我而言,问题在于 handler_name 不能超过 29 个字符。要修复,您可以尝试 改为这样的命令:

    ffmpeg -i in.mp4 -c copy -metadata:s handler_name=SoundHandler out.mp4
    

    https://trac.ffmpeg.org/ticket/3623

    【讨论】:

      猜你喜欢
      • 2013-06-17
      • 2019-02-25
      • 1970-01-01
      • 2017-04-20
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-28
      • 2017-02-26
      相关资源
      最近更新 更多