- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我目前正在向 Chrome 发送视频流,以通过 MediaSource API 播放。
据我了解,MediaSource 仅支持使用 MPEG-DASH 编码的 MP4 文件,或具有以关键帧开头的簇的 WebM 文件(否则会引发错误:媒体片段不以关键帧开头)。
有没有办法使用 FFMPEG 实时编码 MPEG-DASH 或关键帧 WebM 格式?
编辑:
我刚刚用 ffmpeg ... -f webm -vcodec vp8 -g 1
试了一下,这样每一帧都是关键帧。不是理想的解决方案。不过,它现在可以与 MediaStream 一起使用。有什么方法可以将片段与 WebM 中的关键帧同步,这样不是每个帧都需要是关键帧吗?
关于WebM/MP4和MediaSource的引用问题:
Media Source Api not working for a custom webm file (Chrome Version 23.0.1271.97 m)
最佳答案
目前 FFMPEG 不支持 DASH 编码。您可以使用 FFMPEG ( https://www.ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment ) 进行分段,但我建议结合使用 FFMPEG 和 MP4Box。使用 FFMPEG 转码您的直播视频,然后使用 MP4Box 进行分段并创建 .mpd 索引。
MP4Box 是 GPAC ( http://gpac.wp.mines-telecom.fr/ ) 的一部分。
这是一个使用 h264 的例子:
ffmpeg -threads 4 -f v4l2 -i /dev/video0 -acodec libfaac -ar 44100 -ab 128k -ac 2 -vcodec libx264 -r 30 -s 1280x720 -f mp4 -y "$movie" > temp1.mp4 && MP4Box -dash 10000 -frag 1000 -rap "$movie"
如果您需要 VP8 (WebM),请使用:-vcodec libvpx
和 -f webm
或 -f ts
。
关于html - 将 FFMPEG 编码为 MPEG-DASH - 或带有关键帧集群的 WebM - 用于 MediaSource API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24152810/
所以我正在尝试构建一个直播应用程序,但遇到了一个奇怪的问题。 所以我使用 getUserMedia 来捕获用户的视频,然后将该用户标记为广播者。然后我使用 MediaRecorder 从 MediaS
我想测试我用Python编写的一些FFT分析代码是否与Javascript MediaSource FFT节点完全相同。 (参见此处的示例 Web Audio API Analyser Node No
我认为这可能与Changing with HTML5 Audio works in Chrome but not Safari有关 我遇到的问题是,将 MediaSource 附加到后台选项卡中的
我可以通过使用 GET 请求和 Range header 请求数据 block 来播放 mp4 视频。 var FILE = 'Momokuri_Ep_09-10_SUB_ITA_dashinit.m
使用 QT 4.6,我试图访问我的 QResource 文件中的 wav 文件以用作媒体播放器的媒体源,但它不起作用: Phonon::MediaObject *music; music=Phono
我正在尝试在 HTML5/JS 中实现可靠、无缝的视频播放列表。为此,我想在内存中缓冲一个动态播放列表,然后将缓冲区发送到 HTML5 视频元素。 我可以选择视频的编码方式,这只能在 Chrome 浏
我正在尝试使用 MediaSource 播放两个单独的流(音频和视频)。我已经成功地按任意大小的顺序附加了它们的缓冲区(通过 XHR 检索的 ArrayBuffer 类型): 大小相同的 XXX 字节
我有一个服务器应用程序,它呈现一个 30 FPS 的视频流,然后将其实时编码和多路复用到一个 WebM Byte Stream 中。 . 在客户端,HTML5 页面向服务器打开一个 WebSocket
想知道是否有人知道 Chrome 移动设备是否/何时会实现 MediaSource Extension (MSE)?我的 iphone 5 上安装了 30.0 版本,但未能通过演示测试 ( http:
我尝试使用 MediaSource 播放两个视频,但只有一个有效。两者都将编解码器设置为 avc1.4d401f 和 mp4a.40.2,但其中一个播放得很好,另一个在我调用 SourceBuffer
所以我有一个正在下载的 .mp4 文件。我想使用 MediaSource API 将下载文件流式传输到视频元素中。我该怎么做? const NUM_CHUNKS = 5; var video = do
所以我有一个使用 Google 的 Shaka player 的网络应用程序用于视频播放。它使用 MediaSource用于流式传输音频和视频片段的 API。 我想对音轨的原始 PCM 数据进行一些音
我坚持在 Exoplayer 中播放并行的不同媒体流 场景: 我有一个音频媒体源。和一个视频媒体源。 我想在 ExoPlayer 中同时播放这两个媒体源 经过大量的研发我发现 > https://gi
我对 mediastream 和 mediasource api 的经验有限,您认为从 getusermedia 获取数据然后将该数据附加到 mediasource 的最佳方法是什么。现在我正在使用
就 HTML5 而言,我是新手。我正在查看 this link 上给出的 MediaSource API 文档 我访问了 this link 上给出的演示链接 但是它不起作用(在chrome下)。当我
MediaSource.isTypeSupported('audio/ogg; codecs="vorbis"') 返回 false - 这是否意味着我无法将 ogg 作为 POST 的响应进行流式传
假设我有一个页面允许用户选择宽度、高度、颜色和持续时间。我希望该页面随后生成具有这些尺寸和持续时间的视频,该视频只是该颜色的静态帧,然后将在该页面的 标记中播放。我可以使用 HTML5 MediaSo
更新: 所以我能够通过使用 offsetTimestamp 属性(在附加每个视频后增加它)来让它工作。 我现在的问题:1) 为什么在将 MediaSource.mode 设置为序列时没有正确完成? 2
我正在使用 HTML5 VideoSource 扩展,我需要知道 'updateend' 上如何报告时间事件。当我将事件记录到 Chrome 控制台时,我得到以下数据: 如屏幕截图所示,有一个时间戳值
我在玩 MediaSource API。代码直接取自 Mozilla 的示例页面:https://developer.mozilla.org/en-US/docs/Web/API/MediaSourc
我是一名优秀的程序员,十分优秀!