当从 uri 播放视频或音频时,它是流式传输还是完全下载并播放?
when video or audio is played from a uri is it streamed or downloaded fully and played?
我有一个正在构建的内容创建网站,但我对音频和视频感到困惑。
如果我在 s3 中存储了内容创建者的音频或视频,然后我想显示他们的文件,html 视频播放器或音频播放器会流式传输媒体还是会完全下载然后播放?
我问是因为如果视频或音频很长怎么办。例如2小时。我需要知道如何解决用例。
最后,哪种文件类型最适合在网页上查看? MPEG-4 似乎是最好的选择。是真的吗?
如果可以,大多数视频播放器客户端和浏览器都会尝试流式传输视频。
对于托管在服务器上的 mp4 视频文件,只要 header 位于开头并且服务器接受范围请求,这意味着播放器会分块下载视频并尽快开始播放因为它足以决定第一帧。
对于更专业的流媒体服务,他们通常会使用自适应比特率流媒体协议,如 DASH 或 HLS(请参阅此答案:https://whosebug.com/a/42365034/334402),视频将再次以块或片段的形式流式传输,并且将在流式传输时开始播放。
要回答你的最后一个问题,你需要知道原始视频是经过编码的(例如 h.264、VP9 等)并且视频、音频、字幕等轨道存储在视频容器(例如 mp4、Web 等)中。
目前最常见的格式可能是 h.264 编码和 mp4 容器。
h.264 的特定配置文件也可能很重要,具体取决于设备 - baseline 可能是目前最受支持的配置文件。您可以在线找到不同设备的媒体支持示例,例如Android: https://developer.android.com/guide/topics/media/media-formats
@Mick 的回答很到位。我只想补充一点,mp4(使用 h264 编码)将在 几乎 每个浏览器中工作。
mp4 文件(尤其是 2 小时长的电影)的问题不在于搜索和流式传输。如果您的创作者创建了一个 4K 视频 - 这就是您将提供给所有人(甚至是手机)的内容。另一方面,HLS 流媒体具有自适应比特率 - 视频可以适应屏幕和可用的网络速度。在视频流中,您将以更少的缓冲(如果您使用 AWS - 更少的数据出口)获得更好的播放效果。
(有很多 API 和服务可以帮助您做到这一点 - 包括 api.video(我工作的地方)、Mux 和其他)。
我有一个正在构建的内容创建网站,但我对音频和视频感到困惑。
如果我在 s3 中存储了内容创建者的音频或视频,然后我想显示他们的文件,html 视频播放器或音频播放器会流式传输媒体还是会完全下载然后播放?
我问是因为如果视频或音频很长怎么办。例如2小时。我需要知道如何解决用例。
最后,哪种文件类型最适合在网页上查看? MPEG-4 似乎是最好的选择。是真的吗?
如果可以,大多数视频播放器客户端和浏览器都会尝试流式传输视频。
对于托管在服务器上的 mp4 视频文件,只要 header 位于开头并且服务器接受范围请求,这意味着播放器会分块下载视频并尽快开始播放因为它足以决定第一帧。
对于更专业的流媒体服务,他们通常会使用自适应比特率流媒体协议,如 DASH 或 HLS(请参阅此答案:https://whosebug.com/a/42365034/334402),视频将再次以块或片段的形式流式传输,并且将在流式传输时开始播放。
要回答你的最后一个问题,你需要知道原始视频是经过编码的(例如 h.264、VP9 等)并且视频、音频、字幕等轨道存储在视频容器(例如 mp4、Web 等)中。
目前最常见的格式可能是 h.264 编码和 mp4 容器。
h.264 的特定配置文件也可能很重要,具体取决于设备 - baseline 可能是目前最受支持的配置文件。您可以在线找到不同设备的媒体支持示例,例如Android: https://developer.android.com/guide/topics/media/media-formats
@Mick 的回答很到位。我只想补充一点,mp4(使用 h264 编码)将在 几乎 每个浏览器中工作。
mp4 文件(尤其是 2 小时长的电影)的问题不在于搜索和流式传输。如果您的创作者创建了一个 4K 视频 - 这就是您将提供给所有人(甚至是手机)的内容。另一方面,HLS 流媒体具有自适应比特率 - 视频可以适应屏幕和可用的网络速度。在视频流中,您将以更少的缓冲(如果您使用 AWS - 更少的数据出口)获得更好的播放效果。
(有很多 API 和服务可以帮助您做到这一点 - 包括 api.video(我工作的地方)、Mux 和其他)。