首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将FFMpeg视频转换为安卓可播放视频

将FFMpeg视频转换为安卓可播放视频
EN

Stack Overflow用户
提问于 2020-06-18 17:17:03
回答 2查看 599关注 0票数 0

我有一些图像序列,我用它们用FFMpeg制作了一个视频。它适用于VLC (windows和android),而不是内置在android视频播放器上的。视频的编解码器和容器信息如下-

代码语言:javascript
复制
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上,找到了一个解决办法。然后我又下载了。它的编解码信息如下-

代码语言:javascript
复制
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. 安卓系统支持H264。

Q1。H264(约束基线)和h264(main)之间有什么区别?Q2。为什么android不支持第一个视频呢?我上传的youtube视频是这里

参考:

从mjpeg到mp4 (libx264)的FFmpeg转换

将格式从yuvj420p转换为yuv420p

如何用FFmpeg从图像中创建视频?

EN

回答 2

Stack Overflow用户

发布于 2020-06-18 18:00:03

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

VLC有自己的软件解码器,因此并不局限于Android本机支持的内容。

票数 1
EN

Stack Overflow用户

发布于 2021-04-15 16:06:14

您可能没有相同的问题,但在我的例子中,问题是handler_name不能超过29字符。要修复,您可以尝试这样的命令:

代码语言:javascript
复制
ffmpeg -i in.mp4 -c copy -metadata:s handler_name=SoundHandler out.mp4

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62455677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档