问题标签 [smooth-streaming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18320 浏览

ffmpeg - 如何从 mp4 中找到 H264 编解码器中的 SPS 和 PPS 字符串

众所周知,在 Smooth Stream 客户端清单文件中,video 标签中包含一个“CodecPrivateData”属性。现在经过我的初步调查,我发现这个字符串是通过使用本质上是 NAL 单元的 SPS 和 PPS 形成的。

我正在寻找一种从视频 GOP 中提取该信息的方法,以便我可以使用它来创建清单文件并手动替换编解码器私有数据

基本上,我期待创建自定义应用程序以使用 ffmpeg 创建平滑表示

0 投票
1 回答
7540 浏览

h.264 - Media Foundation 的 H264 编码器中的 SPS 和 PPS(又名 dwSequenceHeader)

我正在使用 Media Foundation (MFT) 的 H264 编码器。
我从中提取了 SPS 和 PPS,因为我需要它来进行流畅的流式传输。
MSDN 说每个 NALU 之前出现的长度字段使用的字节数可以是1, 2, or 4. 这都是按网络字节顺序排列的。如您所见,缓冲区中的前 4 个字节是0, 0, 0, 1. 如果我们应用任何可能的长度,我们将一无所获。如果用于长度的字节数为1,则长度为零,如果为2,则长度再次为零。如果是4,第一个NALU的长度是1?!而且,这是不正确的。
有人知道我应该如何解释这个 SPS 和 PPS 连接在一起吗?

提取的 SPS + PPS

0 投票
2 回答
1576 浏览

silverlight - 如何使用 SilverLight 播放 H264 流?

我有一个想用 SilverLight 播放的 H264 流(IIS - 平滑流)。显然 SilverLight 可以做到,但怎么做呢?

注意:
SilverLight 可以播放 VC-1 流,但 H264 不能。

此外,我可以提供流和所需的任何其他信息。H264 编码器是 Media Foundation (MFT) 中的一种。工作的 VC-1 也是如此(尽管不可能为流畅的流式传输创建相等的块,因为强制插入关键帧会使视频不稳定。

编辑:H264 的 MPEG2VIDEOINFO 值:

H264 的 MPEG2VIDEOINFO 值

0 投票
3 回答
5722 浏览

smooth-streaming - 如何在 Chromecast 中播放流畅的流媒体视频?

根据 Chromecast 开发者页面,Chromecast 支持 SmoothStreaming 容器,我相信它使用带有 .ismv 扩展名的视频块。我在播放这些视频文件时遇到问题。

如果我没记错的话,Chrome/Chromecasts 的 video 标签实现只支持 .mp4 和 .webm 文件,所以如果你向它传递清单文件的 url 或 . ismv 容器。

似乎可以使用来自 MPEG-DASH 清单文件的MediaSource API编写将 MPEG-DASH 块拼接在一起的代码。但是,Chrome 对 MediaSource 规范的实现似乎不支持 .ismv 块,因此不支持播放流畅的流视频。

假设您解析了一个清单文件以获取流畅的流式视频块,Chromecast 怎么可能播放 .ismv h.264 容器,例如可以在此处找到的容器?还是 Chrome 不支持 .ismv 文件?如果是这样,Chrome/Chromecast 支持哪些 SmoothStreaming 容器?

0 投票
2 回答
2926 浏览

windows-phone-8 - Wowza + 直播 + Windows 手机?

我是实时流逻辑的新手,但我现在有一个 Wowza 后端设置,我从服务器得到以下流:

所以让我们说iOS,我简单地说:

对于Desktop/ Flash回放:

然后是Android直接流式传输:

所以现在大问题来了!
我只想知道的唯一一件事是:

  • 我怎样才能使(任何)以上的流简单地在 WINDOWS 手机上播放
  • 简单意味着,就像上面的一样,我可以简单地在我的 HTML 页面中进行硬编码!

(我也完全不了解 Windows 及其编程/ sdks/)

0 投票
0 回答
2999 浏览

winapi - WinHttpReceiveResponse() 总是返回 ERROR_INTERNET_INCORRECT_HANDLE_STATE

我正在尝试将 WinHTTP 身份验证添加到我的应用程序。应用程序应连接到 IIS 并流式传输一些数据。在使用 API(传输编码:分块)发送一些分块数据后WinHttpWriteData(),我可以在网络监视器中看到 IIS 以 401(未经授权)响应。但是,如果我调用WinHttpReceiveResponse()以检索该响应,该 API 总是失败并显示ERROR_INTERNET_INCORRECT_HANDLE_STATE. 文档没有定义“状态”,所以对我来说几乎没有意义。我还应该提到,如果我为所有用户创建授权规则而无需任何身份验证,我可以毫无问题地与 IIS 通信。此外,当我在 IIS 上尝试时,MSDN 中提供的有关 WinHTTP 身份验证的示例都不起作用。

未经授权的工作示例:

401 在最后一个之后到达WinHttpWriteData(),但我无法得到它WinHttpReceiveResponse()
如果有人能提供几行伪代码来说明如何做到这一点,我将不胜感激。

编辑:我在同步模式下使用 WinHTTP。

编辑#2:上述描述与基本身份验证有关。我禁用了它并启用了 Windows 身份验证。我已经多次阅读http://msdn.microsoft.com/en-us/library/windows/desktop/aa383144(v=vs.85).aspx,结果是:

似乎登录 IIS 显示用户名/密码不正确。我什至尝试以管理员身份登录,但它也不起作用。不幸的是,糟糕的 MS 文档中缺少一些非常重要的东西。

编辑#3
发现问题!

如果我删除了额外的标头(传输编码:分块),那么它可以工作,但我需要分块编码。有解决方案吗?

0 投票
1 回答
951 浏览

silverlight - 在开始时加载更高质量的平滑流比特率

是否可以调整首次启动平滑流 xap 比特率的方式?就像现在一样,播放器显示低质量流,直到缓冲了更高质量。我可以更改它以在开始时获得更高的质量吗?如果是这样,怎么做?

(我已经看过这个问题,但我没有使用媒体平台播放器。)

IIS 启动时平滑流式传输质量低

0 投票
1 回答
375 浏览

silverlight - Silverlight MediaElement 比特率

我正在为 Silverlight 开发一个自定义播放器,一个基于,另一个MediaElement基于SmootStreamingMediaElement. 目前我正在使用最新版本的 SDK 5.0,但是一旦我的所有问题得到解决,我想支持以前的版本。

一切正常(播放),现在我对平台和 API 有了基本的了解,但我被一个(非)琐碎的功能所困扰:我想获取当前播放视频的比特率信息,无论如何如果它是单个比特率或多比特率文件......必须在这两种情况下都有效。

据我所知,我有以下MediaElementAPI 的属性和方法有用但还不够:DownloadProgressBufferProgress. 没有在规范中找到获取比特率或类似信息的方法,除了TotalBytesDownloaded属性SmoothStreamingMediaElement除了Class

使用 MediaElement 和SmootStreamingMediaElementAPI 可以获得视频文件的平均或即时比特率吗?

如果没有,有什么办法可以解决吗?

我是否有权访问MediaItem(从一个MediaElement实例中)以获取有关视频的更多信息?

0 投票
1 回答
1098 浏览

azure - 在 Windows Azure 中创建和流式传输复合清单文件

我目前正在开发一个使用 Windows Azure 媒体服务进行视频处理的应用程序。

场景是:用户管理一系列视频剪辑,将它们按特定顺序排列,然后将它们提交给媒体服务进行处理。

我设法使用 Azure 媒体服务生成的 *.ism/manifest url 单独流式传输剪辑,但我想将它们作为单个剪辑流式传输。

我了解 Azure 媒体服务目前不提供合并/拼接功能,因此替代方法是使用复合流清单文件 (*.csm) 并引用那里所有单个剪辑的路径。

我遇到的问题是:

  1. 我在互联网上找不到一个可播放的 *.csm 文件作为参考

  2. 我使用此工具http://code.msdn.microsoft.com/wpapps/Smooth-Streaming-Manifest-b1c3c9f9/view/SourceCode根据现有/可播放 ism/manifest 生成 .csm,但我不知道怎么玩。

ism 流式传输 url 类似于:

http://.origin.mediaservices.windows.net/dd754ce8-3de8-457f-9e57-380723794e66/clipName.ism/Manifest

并存储在媒体服务中,实际文件 .ism 和 .ismv 文件存储在像asset-1707d318-0484-4f8c-8f66-890786ccb1e3 这样的存储容器中

我应该将 *.csm 文件存储在 Azure 的什么位置?是否有任何正在运行的带有可用示例的 .csm 播放器,以便我可以测试生成的 .csm?

谢谢,

弗罗林

0 投票
0 回答
1280 浏览

ffmpeg - ffmpeg - 创建清单文件以实现流畅的流式传输

我是 ffmpeg (和视频编码)的新手,我试图了解如何为 IIS 创建清单文件我尝试创建 .ismv 文件但它没有创建清单文件,我已经看到ffmpeg工具文件夹下的ismindex工具,但是不太明白怎么用。