【发布时间】:2015-07-22 16:09:18
【问题描述】:
我已经设置了一个服务器(gunicorn 和 nginx)来使用 Python/Django 上传视频,并在浏览器中观看它们。我使用的视频播放器是 videojs。所有视频都是 h.264 mp4。视频大小在 5-40 MB 之间。
视频上传正常,我也可以在台式机和笔记本电脑浏览器上观看上传的视频。
问题是我无法在移动设备上观看相同的视频(在桌面浏览器上播放)。
我收到此错误:
无法加载此视频,原因可能是服务器或网络出现故障,或者格式不受支持。
怎么了?
更新
但是,我在移动设备中测试了带有 webm 视频的移动浏览器,而 Opera 和 Chrome 可以完美地播放视频。这是我用于 webm 的命令:
ffmpeg -i test2.mov -codec:v libvpx -quality good -cpu-used 0 -b:v 600k -maxrate 600k -bufsize 1200k -qmin 10 -qmax 42 -vf scale=-1:480 -threads 4 -codec:a vorbis -b:a 128k -strict -2 test2_webmmm.webm
这适用于 h.264 mp4(仅适用于 firefox):
ffmpeg -i inputfile.avi -codec:v libx264 -profile:v baseline -preset slow -b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0 -codec:a libfdk_aac -b:a 96k output.mp4
更新
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'faststart.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.40.100
Duration: 00:03:36.56, start: 0.046440, bitrate: 350 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
v420p, 640x360 [SAR 1:1 DAR 16:9], 249 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.9
5 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
p, 96 kb/s (default)
Metadata:
handler_name : SoundHandler
更新
以下是我沿途收集的一些要点:
- 我从 YouTube 下载并上传到服务器上的一些视频没有编码,在所有浏览器上都可以很好地播放。
- 但是,如果我对相同的视频(YouTube 视频)进行编码并将其上传到服务器上,它不会在移动设备上播放,而只能在桌面浏览器上播放。
- 我从手机(Samsung s4 和 iPhone 6)拍摄并使用 ffmpeg 编码的视频无法在移动浏览器上播放,只能在桌面浏览器上播放。
- 但是,托管在 Amazon s3 上的相同视频(我从移动设备上获取)的 URL 在所有浏览器(甚至是未编码的视频)上都可以正常播放。
【问题讨论】:
-
H.264 基线 + AAC?
-
@Anatoly 是的。我使用了这个命令
ffmpeg -i inputfile.avi -codec:v libx264 -profile:v baseline -preset slow -b:v 250k -maxrate 250k -bufsize 500k -vf scale=-1:360 -threads 0 -codec:a libfdk_aac -b:a 96k output.mp4。虽然有一件事,视频在 firefox 移动浏览器中播放得很好,但在 android chrom 和 ios safari 上却没有。 -
您能提供其中一个视频的链接吗?
-
@Robin 你能复制粘贴 ffprobe output.mp4 的结果吗?
-
@Mick 是的,你可以在这里找到它54.169.222.113/video/62
标签: video mobile browser nginx video-streaming