【问题标题】:Can't play video H.264 on Android with Android Exoplayer react-native-video无法使用 Android Exoplayer react-native-video 在 Android 上播放视频 H.264
【发布时间】:2021-12-01 05:27:32
【问题描述】:

视频加载错误时的错误码

{"error": {"errorException": "com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.640034, -1, null, [2160, 3840, 24.000002], [-1, -1]), format_supported=NO_EXCEEDS_CAPABILITIES", "errorString": "ExoPlaybackException type : 1"}}

目前我正在使用这个版本并在真正的 Android 设备上构建

反应原生:0.64

react-native-video: ^5.2.0-alpha1

这是 h.264 视频示例:https://lifebeligum.s3.ap-southeast-1.amazonaws.com/documents/2021-10-04/ef07eb88-1e53-4800-b7cb-64e908a264c3.mp4

有人知道吗?

【问题讨论】:

  • 视频文件大小为 2160x3840 像素 (4K)。你应该edit你的帖子包括你如何测试(模拟器或物理设备与make/model/OS版本)。
  • 感谢您的回复。我刚刚更新了!
  • 在提及物理设备时,您应该说明技术规格,例如三星 S9,型号 G9600,运行 Android 10。或者至少说明视频是否在您使用的设备上使用适用于 Android 的 VLC 播放。还要意识到该插件在后台使用 Exoplayer,因此您应该阅读:exoplayer.dev/debug-logging.html

标签: android react-native exoplayer react-native-video


【解决方案1】:

链接的视频使用 H.264 High profile - 这不是 Android 支持的标准格式之一,尽管某些设备可能支持它。

目前 Baseline 和 Main 配置文件被列为标准支持。您可以在此处查看列表:

您可以使用 ffprobe 之类的工具检查编码配置文件:

ffprobe version N-95216-ge6625ca41f-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2007-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.8)
  configuration: ......
  libavutil      56. 35.100 / 56. 35.100
  libavcodec     58. 59.101 / 58. 59.101
  libavformat    58. 33.100 / 58. 33.100
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 61.100 /  7. 61.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Desktop/ef07eb88-1e53-4800-b7cb-64e908a264c3.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomavc1
    creation_time   : 2020-07-07T20:03:53.000000Z
  Duration: 00:00:16.50, start: 0.000000, bitrate: 13565 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 2160x3840, 13562 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc (default)
    Metadata:
      creation_time   : 2020-07-07T20:03:53.000000Z
      handler_name    : L-SMASH Video Handler
      encoder         : AVC Coding

您可以使用 Main 或 Baseline 重新编码您的视频并测试以确认或测试您知道符合推荐的视频

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多