- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在调查为视频添加 HEVC 支持的可行性,但我在使用 Safari 时遇到了问题。这是示例源:
<video autobuffer="true" autoloop="" loop="" controls="">
<source src="film_WebM.webm" type="video/webm">
<source src="film_HEVC.mp4" type="video/mp4">
<source src="film.mp4" type="video/mp4">
</video>
理想情况下,浏览器应该读取源代码并处理它认为可以读取的第一个文件,这应该允许 Firefox 和 Chromium 显示 VP9 电影,Safari 显示 HEVC 和 Internet Explorer 显示 H264。但是,Safari 播放效果不佳,如果存在 H264,它将忽略 HEVC 电影。我试过用编解码器信息注释源,但这没有帮助。将 HEVC 设置为视频元素的默认源适用于 Safari,但会导致所有其他浏览器出现问题。
有没有什么方法可以在不使用特征检测来操作 src
元素的情况下解决这个问题?
作为 Safari 错误提交给 Apple #37821806
下面的讨论表明,尽管 Apple 有自己的发行说明,但 Safari 可能会基于硬件考虑决定使用 AVC 源。它如何在没有编解码器提示或明显的 mime 类型嗅探的情况下设法做到这一点尚不清楚。如果人们可以测试 codepen demo 将会很有用并在注释中注明播放的编解码器和 Mac 硬件信息。
最佳答案
首先确保您的 HEVC 视频编码正确,以便 Safari 可以播放它。通过从视频标签中删除除指向您的 HEVC 视频的源之外的所有源来测试这一点。如果 Safari 播放它,请继续下一步,否则修复视频文件。
一旦您确定 HEVC 视频与 Safari 兼容,请使用 source
标记中的 type
属性向浏览器提供有关编解码器的提示。到目前为止,您只是告诉浏览器 MP4 容器用于 HEVC 和 H.264 源。浏览器必须下载部分文件才能确定哪些文件兼容,通常是按照 source
标记的顺序。
您可以/应该指定所有使用的编解码器的详细信息,包括视频编解码器,如果涉及音频,还包括音频编解码器。
avc1
代表H.264hvc1
代表 H.265 (HEVC)对于您的示例,最短的版本是这样的:
<video>
<source src="film_WebM.webm" type="video/webm">
<source src="film_HEVC.mp4" type='video/mp4; codecs="hvc1"'>
<source src="film.mp4" type='video/mp4; codecs="avc1"'>
</video>
感谢您在评论中的反馈,我想我弄清楚了是怎么回事:Safari 似乎会考虑您的硬件来选择最佳视频源,这实际上非常聪明。对 H.264 的硬件支持已广泛可用,即使在较旧的硬件上也是如此,而 HEVC/H.265 硬件支持则不是,而且需要更多的 CPU,最终也需要更多的能量(电池)。
因此,尽管您的设备(例如 MBP)和软件可以解码和播放 HEVC 视频,但 Safari 可能更喜欢 H.264 视频源(如果可用)。
我又做了一些测试:
关于video - 让 Safari 更喜欢 HTML 5 视频标签中的 HEVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48902078/
你能解释一下两者之间的区别吗 和 ? 最佳答案 通过使用 .您可以添加多个源元素。多个源元素可以链接到不同的视频文件。浏览器将使用第一个识别的格式。
我正在使用 ImagePickerController 处理 iPhone 视频捕获。我已经设置了图像选择器 Controller 的属性。我用它来将视频的最大长度设置为 60 秒。 imagePic
我正在制作一个进行基本视频处理的应用程序。我成功地合并到视频(视频上的视频)。 如何将左上角的小视频裁剪成一个圆圈? 最佳答案 如果您想导出该视频,您需要: 创建 CALayer,它将成为您的视频层的
我正在使用 SVT-AV1 和 FFMPEG 将视频编码为 AV1 视频和 opus 音频编解码器(.webm),它工作正常,除了视频搜索不起作用(非常糟糕)。当我寻找时,CPU 使用率会上升,并且需
在 Adobe Muse 中使用 VIDEO.JS 目前我已将海报图像配置为在视频开头显示, 当视频结束时,我希望海报图像重新出现。谢谢你的帮助! 最佳答案 将来最好的方法是通过 css。我只是a
我目前正在尝试从单张图片 (1980*1024) 生成视频 这是我的命令: ffmpeg -threads 8 -r 1 -loop 1 -i "C:\Library\Titling\__Resour
我想从 HTML 获取框架 javascript 中的组件,以便我可以处理它们然后输出到 Canvas 最佳答案 看看这个代码笔:Demo var videoId = 'video'; va
我已经使用 video.js 一段时间了,正在寻找响应式解决方案。我看到 4.6 声称是这样,但无法开始工作。我在文档中找不到任何关于使其响应的内容。我基本上只需要它保持在容器的 100% 并保持其纵
我正在寻找任何用于设置视频流服务器的现代资源。最好是开源解决方案。 我对此的搜索导致了很多死胡同。我也确实需要构建自己的服务而不是支付服务费用。 最佳答案 要设置您自己的视频流服务器,您应该从以下组件
如何在处理流媒体或网络视频时拦截“无法播放视频”对话框? 我尝试了以下操作并能够显示我的自定义错误消息。但最重要的是,我仍然收到 Android MediaPlayer 错误对话框“无法播放视频”。
它使我的视频居中并将控件放置在 div 底部但视频流出。在 css 样式表中,css 似乎无法识别。样式表中的 cos 颜色为黑色。我使用 Chrome 。 div.video_div{ width:
在 HTML5 video 元素中,您定义 type 属性的值始终以 video 开头。从元素是视频不是已经很明显,它是视频类型吗?为什么需要这样的视频:type="video/mp4",不应该只是t
我想通过 jQuery 或 Javascript 检测 html5 标签内的特定视频何时已完全加载(我的意思是,下载到浏览器的缓存中)。视频具有 preload = "auto"属性。 我尽我所能做到
HTML5 带来或将带来和 标签等等。自从我听说了他们,读了之后更是如此Why do we have an img element?特别是Jay C. Weber's message back fro
我正在制定一个 Web 应用程序的详细信息,该应用程序涉及顺序加载一长串(非常短的)视频剪辑,一个接一个,用户偶尔会输入建立新的视频剪辑加载方向. 我希望能够让浏览器一次预加载五个视频剪辑。然而,我们
我想知道 HTML5 标签现在支持.avi 格式视频文件的播放。 最佳答案 简短回答:否。改用 WebM 或 Ogg。 This article几乎涵盖了您需要了解的有关 的所有信息元素,包括哪些浏
尽管它似乎处于某种危险之中,但开放视频标准是一个好主意。我看到了一些关于运动跟踪的演示——只是概念验证,但仍然很有趣。现在,我要说的是,如果可以访问用户的网络摄像头,像这样的概念真的会是一个收获……想
我正在尝试使用 php-facebook-sdk 并借助 curl Facebook API 创建广告。 我已经使用 curl 上传了我的视频,它返回了一个 ID。现在,该视频 ID 将用于添加广告,
我正在使用 Video.js在我的网站上显示视频的插件。 我想删除画中画图标。我已经尝试了几个小时,但没有成功。 我做错了什么? 最佳答案 它应该是 data-setup='{"cont
使用 MediaRecorder 从 SurfaceView 录制视频 录音机 recorderProfile = CamcorderProfile.get( CamcorderProfile.QUA
我是一名优秀的程序员,十分优秀!