javascript - HTML 视频标签无法显示帧宽/高为 4096 或更大的视频
问题描述
我有一个简单的 React 应用程序,用户可以从他们的设备上传视频,然后使用<video>
标签将视频显示在页面上。
我尝试从我的移动设备上传几个视频来测试应用程序。我注意到当分辨率很大(宽度或高度为 4096 像素)时,应用程序无法正确显示视频。1920x1080 甚至 3840x2160 的分辨率都可以正常工作。但是 4096x2160 始终会导致空白屏幕。
请注意,这似乎只发生在移动浏览器上。在我的 PC 上运行该应用程序时,所有视频都可以正常工作。
如何让应用程序支持更大分辨率的视频?有没有简单的外部 JS 库可以解决这个问题?
指向无法在移动设备上播放的高分辨率视频的链接(13 秒,34 MB)
主要组件的代码:
import React, {useState} from 'react';
import './App.css';
function App() {
let [vid, setVid] = useState(null);
return vid == null ?
<input type={"file"} accept={'video/mp4,video/x-m4v,video/*'} onChange={e => onVideoSelected(e, setVid)} /> :
<video style={{width: '100%', maxWidth: '400px', border: '1px solid black'}} autoPlay={true} muted={true}>
<source src={vid} type="video/mp4" />
</video>;
}
function onVideoSelected(e, setVid) {
let file = e.target.files[0];
let blob = URL.createObjectURL(file);
setVid(blob);
}
export default App;
任何帮助表示赞赏。
解决方案
推荐阅读
- mqtt - MQTT - 监听 ping、断开和连接事件
- angular - 读取“id”时出错
- c++ - 从 std::map 值获取密钥的有效方法
- android - Android Socket.IO
- api - 当请求对象变为 NULL 时,如何在 .Net Core API 中获取实际的请求对象?
- .net - .net mvc,为用户设置角色来自outlook
- python - 当应用在没有 for 循环的情况下无法工作时,如何迭代 DataFrame?
- google-chrome - 量角器 woant 运行我的脚本
- html - 在 Amazon S3 上显示 em-dash
- javascript - 即使目标是支持 ES 模块的现代浏览器,是否需要打包程序?