问题标签 [mediastreamsource]
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.
silverlight-4.0 - Internet Explorer 9 Silverlight 4 内存泄漏
我们正在将视频从实现 IHttpAsyncHandler 的 ashx 流式传输到 Silverlight 客户端。
在客户端,异步处理程序正在 MediaStreamSource 的实现中使用。
它在最新的 Firefox、chrome 和 Internet Explorer 8 中运行良好。
但是在 Internet Explorer 9 中,我们看到了内存泄漏。我一直在使用 umdh 来调试内存,并找到了一个调用堆栈,它在内存转储之间使用了 127mb。所以我想我已经把它缩小到这个调用堆栈。
但现在我不知道现在继续我的调试。这是 umdh 信息:
首先是第一次和第二次的比较
第二次运行调用栈
c# - 如何使用 MediaStreamSource 播放原始广告 AAC 流?
有人有这个工作吗?我相信我的 CodecPrivateData 搞砸了,但我找不到任何似乎有效的 WAVEFORMTEX FormatTags。我尝试了 0xFF00、0x1016 和 0x0116。我使用 MSDN 文档来完成字符串的其余部分。
我在 MMReg.h (WAVE_FORMAT_MPEG_ADTS_AAC 0x1600) 中找到了这个,它有一个 FormatTag(0x0016)。你会认为这是我应该使用的,但这也不起作用。
使用 0xFF 时,如果我避免重复调用流 GetSampleAsync 中的 adts 标头但没有播放。我知道流很好,因为我可以在 FooBar、VLC 和 Window Media Player 中播放它。当我将原始 AAC 粘贴到 MP4 容器中时,它在 silverlight 中运行良好,所以我知道 silverlight 支持 AAC 设置。
有人可以为我提供一个对他们有用的十六进制 CodecPrivateData 字符串吗?
编辑:
这是我认为应该工作的 PrivateCodecData 十六进制字符串的示例:
0x1016010080BB0000E02E0000010000000E000100FE0000000000000000001190
这个字符串直接从 OpenMediaAsync() 到 CloseMedia() 甚至没有尝试样本。MSDN 文档示例执行与此处相同的操作。我希望它至少在关闭之前尝试一个样本。
html - HTML 5:关于流和 Chrome
对不起,我的英语很差,所以请注意我的拼写:)
我正在寻找一个 HTML5 的录像机,我发现我对 HTML5 的 getUserMedia 很满意。
问题是getUserMedia
要求用户MediaStream
在界面上激活(对于 webRTC)Chrome's
:chrome://flags/
我的问题是:是否可以通过在 javascript 中使用类似 urlchrome::/flags/mediastream=true
或类似函数的方式询问用户来激活此选项setUserMedia
?
谢谢
windows-phone-7 - WP7 mp3 波形
有没有办法在 WP7 中显示 mp3 歌曲的波形?我尝试使用 MediaStreamSource,但没有真正解决。
谢谢, 迈克尔
silverlight - 从私有数据中查找 SPS 和 PPS
我有网络服务,它为我提供了包含 H.264 NAL 单元的自定义格式的容器。我想使用自定义 MediaStreamSource 通过 Silverlight 中的 MediaElement 播放它们。
根据这篇文章,我需要设置私有编解码器数据。Web 服务为我提供了 configCodec,但采用 base64 格式(看起来像“AUIAHv/hABhnQsAe2gMg7+IhAAADAAEAAAAMAMo8WLqABAARozgvI”)
因此,在其他平台(iOS、Android)中,我需要的只是设置为编解码器的额外数据属性。
但在 Windows Phone 中,我应该提供类似 00000001 [SPS] 00000001 [PPS] 这样的信息。那么,有人可以告诉我如何解析来自 Web 服务的提供的私有数据以从中获取 SPS 和 PPS 值吗?
silverlight - 同步音视频
我需要在 Windwso Phone 应用程序中使用 MediaElement 显示流视频。
我从 web 服务获取一个流,其中包含 H264 格式的帧和原始 AAC 字节(奇怪,但ffmpeg
只能使用参数解析-f ac3
)。
因此,如果尝试仅播放其中一个流(音频或视频),它会播放得很好。但是我在尝试两者时都有问题。
例如,如果我报告没有时间戳的视频样本并报告带有时间戳的音频,我的视频播放速度会比我需要的快 3 到 5 倍。
从我的网络服务中,我获得了以下格式的视频和音频帧的 DTS 和 PTS:
120665029179960
但是当我将它设置为样本时,我的音频流播放速度太慢并且有延迟。
时基为 90khz。
那么,有人可以告诉我如何解决它吗?也许我应该为样本计算其他时间戳?如果是这样,请给我指路。
谢谢。
c# - 在进程之间发送消息
我正在创建一个带有背景音频播放器的应用程序。根据 MS 的要求,播放器被实现为一个单独的 DLL,并存在于另一个进程中。
我可以通过更新BackgroundAudioPlayer.Instance.Track
对象将曲目名称传回我的 UI 进程。
但是,我希望我的 UI 也报告我的下载缓冲区的状态。
我可以在 WP7 上使用什么 IPC 方法来通知我的 GUI 进程?
更新:我考虑使用 4 个命名手动重置事件来传递 4 位数据 - 失败,WP7 仅支持仅适用于同一进程内的线程同步的未命名事件。
我考虑过 System.Windows.Messaging - 失败,SendCompletedCallback 引发“LocalMessage_CouldNotDeliverMessage”,并且文档说 WP7 不支持本地消息传递。
到目前为止,我只知道一种方法 - 将文件写入隔离存储,并使用命名互斥锁保护它们。我真的不想因为这样做而耗尽 NAND 闪存。有没有更好的方法?WP7 下面有 WinCE 内核,它有很多可用的方法——邮槽、LPC、RPC、COM、管道、共享内存等等——我不敢相信它们都没有暴露给 Silverlight……
windows-phone-7 - WP7 Background Audio - Memory Leak or Not?
I'm creating an app that plays background audio.
Here's the RAM usage of my background audio playing process:
Is this a memory leak or no?
I'm concerned because if / when it exceeds 15MB, the OS will silently kill my player, which is undesirable.
Is there a way to view what occupies that memory? My MediaStreamSource implementation only allocates single 512kb buffer on the startup, and never allocates a single byte while playing. BTW, the stream bitrate is 96 kbit/sec, which is the same as memory allocation rate of the app.
Is there a way to make the GC to be less lazy, and sleep for less then 8 minutes? I don't really like those spikes…
Update 2013-04-21: looks like some OS update (most likely the 7.8) has fixed the issue. Thanks for that, Microsoft! However, next time please note it in the update history :-)
media - 公共保管箱链接上的 mediastreamsegmenter 不起作用
我的保管箱公共链接中有一个可流式传输的网址: https ://dl.dropboxusercontent.com/1/view/taf4hn5q1lbppmx/Public/01Track1.mp3
我想将其流式传输到我的 ios 设备,因此我阅读了 Apple 的 HTTP Live Streaming 文档。
所以,我正在尝试使用 mediastreamsegmenter 来获取 .m3u8 格式的索引文件。
上面给了我一个无效的端口错误,所以我列出了:8080 并尝试了,但它仍然不起作用。
mediastreamsegmenter 是否适用于 https/TCP?还是仅使用 UDP?我在哪里错了?
c# - 在 Silverlight (Windows Phone) 上播放 AAC 原始数据时出现问题
我需要播放来自实时流的 AAC LC 音频。为了实现这一点,我已经实现了 MediaStreamSource。
当我收到第一个流数据包时,我将 MediaElement 的源设置为我的 MediaStreamSource。似乎一切正常:调用 OpenMediaAsync -> 使用 ReportOpenMediaCompleted 报告,然后调用 GetSampleAsync -> 使用 ReportGetSampleCompleted 报告,但是,在第 10 次调用 GetSampleAsync 时,ReportGetSampleCompleted 抛出 NullReferenceException。
这是我的 CodecPrivateData:
流的第一个数据包始终是 AACSequenceHeader - 我在其中读取我的 CodecPrivateData 和 AudioSpecificConfig。其余的都是 AACraw。
我的 CodecPrivateData 看起来像
FF00020044AC000010B102000400100002001210
.
我的 GetSampleAsync
这里的问题是我不知道任何时间戳,也不知道这是否是个问题。
最后,什么是Data
场?Data
字段包含Byte[]
我从 AudioTag 中提取的所有接收到的 RawAAC 音频。E.4.2.2 AACAUDIODATA
(参见http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf)