【发布时间】:2018-02-02 18:51:45
【问题描述】:
我正在尝试使用 Expo/React Native 框架为 Android 构建视频应用程序。
为了完全隔离事物,我有以下内容:
import React, { Component } from 'react'
import { Video } from 'expo'
class VideoPlayer extends Component {
render = () => {
return (
<Video
source={{ uri: "https://storage.googleapis.com/deepthought-collective.appspot.com/testvid.mp4" }}
rate={1.0}
volume={1.0}
isMuted={false}
resizeMode="cover"
shouldPlay
isLooping
style={{ width: 300, height: 500 }}
/>
)
}
}
在 IOS 中,这玩得很好。在 Android 上,我有音频,但没有视频(只有白色)。
这是ffprobe的输出:
> ffprobe testvid.mp4
ffprobe version 3.4.1 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'testvid.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.56.100
Duration: 00:00:09.97, start: 0.000000, bitrate: 2691 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x1280, 2522 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 160 kb/s (default)
Metadata:
handler_name : SoundHandler
我已经在一些 Android 设备以及模拟器上对此进行了测试,并观察到了相同的结果。
视频是使用 OBS 制作的。
如果我在 Chrome 上打开或下载它,它甚至不会播放声音。
有人知道为什么它会在 Android 上以这种方式播放,或者对如何为 Android 编码视频有任何建议吗?
【问题讨论】:
-
稍微调整一下,似乎调整为 360x640,视频将播放。有人知道 Android 上的视频是否有某种最大分辨率?
标签: video react-native h.264 expo