问题标签 [mediastreamsegmenter]

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 回答
379 浏览

video-streaming - hls 分段器,接受要分段的关键帧列表

我正在使用 x264 创建变体 h.264 流。使用 qpfile (http://mewiki.project357.com/wiki/X264_Settings#qpfile) 我确保我的变体流具有共同的关键帧。但是,如果编码器优化器需要,它们可以在流之间具有不同的其他关键帧,因为我没有在 qpfile 中指定视频的每一帧。

是否有可用的分段器允许我指定允许哪些关键帧开始新分段?否则,如果我仅按目标持续时间进行分段,我的变体流很可能会被分段不同步。

我问是因为我想将 hls 添加到我当前的编码过程中而不更改它。我还没有看到任何允许这样做的分段器或类似的东西。

0 投票
2 回答
2929 浏览

http-live-streaming - 适用于 Windows 的 HLS 变量播放列表创建器

我最初的任务是为 Windows 找到一个分段器,它可以在不更改其编解码器的情况下拆分 h264\aac 视频文件并使其可通过 HLS 播放。

对我有用的最好方法是像这样使用 ffmpeg:

现在,这或多或少正确地拆分了文件,尽管mediastreamvalidator引发了一些警告,但我仍然能够播放视频。

但是,棘手的部分是:ffmpeg 无法为您创建 .m3u8 文件。这不是问题,除非您需要创建我需要的变体播放列表文件。所以现在我需要找到或编写一个模仿 Windows 的应用程序varianplaylistcreator

因此,假设您为每个不同的带宽编码了相同的视频:64、150、300、500、800、1200 和 2400。现在,在分割每个视频之后,您可能希望将这些片段放入单独的文件夹中,包括播放列表文件对于每个演绎。

现在我们可以创建一个变体播放列表文件,在其中列出所有再现,并说明哪些带宽服务器应该自动切换为不同的再现提供服务。

通常变体播放列表如下所示:

注意 BANDWITH 属性值。我怀疑这些是由varinatplaylistcreator.

我不知道它是怎么做到的。我想以某种方式它需要每个再现的视频(片段)的平均比特率,并以此为基础。

所以我的问题是:这些是如何计算的。或者,也许有人已经创建了一个可以在 Windows 上运行并创建变体播放列表的工具。

0 投票
1 回答
1461 浏览

ruby-on-rails - 即时转码/重新混合 FLV 和流式传输

我正在尝试自学一些有关视频流和转码的知识,同时进行一些 Roku 应用程序开发。我有许多视频文件(主要是 FLV 格式(H.264/AAC)),我想流式传输到客户端,在这种情况下是 Roku 盒子(接受 MP4(H.264/AAC)和HTTP 实时流 (HLS))。我想知道是否可以对 FLV 文件进行转码/重新混合并将它们即时流式传输到客户端,也许是通过 HLS?

我曾尝试使用 ffmpeg 重新混合文件并在转码过程中立即提供它们,但在写入过程完成之前它们无法播放。我可以通过 Apache/Rails 让 Roku 播放我完成的 MP4 文件。

但我想知道......是否可以设置服务器来转码/重新混合文件并立即将输出文件(来自 ffmpeg/我正在使用的任何工具)流式传输到客户端?如果是这样,需要哪些工具来完成这项工作?是否可以在文件被转码或重新混合时使用媒体文件分段器来分割文件?

我很清楚转码过程是 CPU 密集型的,但我不太担心转码和流式传输的实用性,因为这只是一个个人教育项目(而且我有一个空闲的系统,如果处理这个)。

抱歉,如果我在这里离开基地,只是想通过这个破解我的方式。

谢谢!

0 投票
1 回答
399 浏览

video - Apple 分段器“优化”选项实际上对 AAC 音频有什么作用?

我正在编写一个 Flash 视频播放器来播放 Apple HLS 视频流,我发现任何带有 AAC 音轨的内容都已被 Apple 工具分段并-optimize启用了该选项(现在是默认设置)有一个音轨,我无法解码(同步字节不在我认为应该在的位置)。

优化选项对音频有什么作用?它是重新编码还是只是以不同的方式包装它?

最重要的是,我需要做什么才能正确读取音轨?

我已经搜索了几个月,但似乎没有人对此有技术上有用的答案(即除了“它使文件更小”之外的任何东西)。

这似乎只影响音轨,如果我禁用音频解码,视频在所有情况下都可以正常播放,至少到目前为止我所看到的 - 苹果工具、ffmpeg、商业编码器等。

0 投票
1 回答
7345 浏览

video - ffmpeg:无效的段文件名模板'stream05d.ts'

我曾尝试使用http live streamingWindowsffmpeg构建(http://ffmpeg.zeranoe.com/builds/

这是命令

但出现错误消息,

此错误消息是什么意思以及如何解决?

0 投票
0 回答
1131 浏览

ffmpeg - mediastreamsegmenter 停止使用 HLS 发送 id3 元数据

我正在使用ffmpeg和 Apple 的组合,mediastreamsegmenterid3taggenerator创建一个 HLS 流,其中嵌入了元数据 (ID3)。我让所有应用程序都在运行,并且能够从客户端的流中检索元数据,但问题是,在看似随机的时间之后,客户端停止接收流上的元数据。

这是我现在的工作:

这是ffmpegmediastreamsegmenter部分:

这是在 localhost 的 5010 端口上获取 udp 流,并将视频和音频分别编码为 H.264 和 AAC。它将 MPEG-2 传输流段传输到mediastreamsegmenter.,然后生成.M3U8文件和相关.ts文件并将它们放置在NGINX网络服务器上。它还在端口 4242上mediastreamsegmenter监听 tcp 流量id3taggenerator,我将展示我现在如何使用它:

如您所见,我正在将 JSON 中的一些简单 xy 坐标作为文本发送到mediastreamsegmenter端口 4242 上的侦听。我实际上正在使用 Python 脚本来发送一些测试数据。这是脚本:

id3taggenerator该脚本只是使用CLI发送一堆 xy 坐标。我已将sleep金额从 0.1 调整为 15,但似乎没有任何区别。从流中获取元数据的客户端应用程序只打印 4 到 35 个点,但它从未收到所有 xy 坐标。

我想知道每帧可以发送的元数据量是否有限制,但我似乎找不到任何为这些工具中的任何一个指定硬限制值的东西......

0 投票
0 回答
241 浏览

media - 公共保管箱链接上的 mediastreamsegmenter 不起作用

我的保管箱公共链接中有一个可流式传输的网址: https ://dl.dropboxusercontent.com/1/view/taf4hn5q1lbppmx/Public/01Track1.mp3

我想将其流式传输到我的 ios 设备,因此我阅读了 Apple 的 HTTP Live Streaming 文档。

所以,我正在尝试使用 mediastreamsegmenter 来获取 .m3u8 格式的索引文件。

上面给了我一个无效的端口错误,所以我列出了:8080 并尝试了,但它仍然不起作用。

mediastreamsegmenter 是否适用于 https/TCP?还是仅使用 UDP?我在哪里错了?

0 投票
2 回答
4483 浏览

ffmpeg - 需要帮助将 Red5 RTMP 流转码为 MPEG2-TS

我和我的朋友要进行现场表演,为此我在我的旧 2006 Intel Core Duo Mac mini 上设置了一个 Red5 服务器,运行 Mac OS X Snow Leopard Server 10.6.8。

我使用 Flash Media Live Encoder 向 Red5 的 oflaDemo 应用程序广播,并且流效果很好,除了我希望流与 iOS 一起使用。我正在为它开发一个应用程序,但我仍然需要将我的流转换为 Apple 的 HTTP Live Streaming 协议才能使其工作。谁能帮我将 RTMP 流转换为 MPEG2-TS,因为那是 mediastreamsegmenter 支持的格式?我已经在服务器上安装了 Apple 的 HTTP Live Streaming Tools,所以分段器不是问题。

FFmpeg 不起作用,至少对于我在这里找到的代码不起作用。有了它,总是会出现“不允许操作”错误。Xuggler 不起作用,即使是 Linux 机器也不行。有人可以帮我吗?我真的,真的很感激。

——雷尼尔·阿隆

0 投票
0 回答
917 浏览

ios - 持续时间很长的 hls(m3u8 播放列表文件)在 ipad 上失败

我正在使用 mediastreamsegmenter(在 osx 上)对流进行编码,一切正常,直到大约 15-20 小时的视频,之后流变得无法播放。我保留所有的 semgents 用于 VOD 目的。我已经尝试在 ipad 上的我自己的应用程序(使用 AVPlayer)以及 ipad 上的 safari 中播放它 - 都失败(尝试了不同的 ipad):AVPlayer 播放前几帧然后停止并且 safari 说“操作无法完成”。.m3u8 播放列表看起来不错,没有问题。我还从同一流中创建了一个 mp4 文件(使用 ffmpeg),该文件可以正常播放。

这是 .m3u8 文件的示例:

这是我用来创建 HLS 流的命令:

我还尝试在 mac OS X (Mavericks) 上的 safari 中播放它 - 效果很好。有人知道这个问题的任何解决方案/解决方法吗?

0 投票
2 回答
1123 浏览

audio - 带有 ffmpeg 和 mediastreamsegmenter 以及 vlc 的 Apple HLS

我正在尝试使用 Windows 框中的 ffmpeg 流进行流式传输。这是我在 windows 框上运行的命令

ffmpeg -f dshow -i audio=”Wave In 2 32130101 (Orban Optim” -acodec libmp3lame -ab 64k -f mpegts udp://172.30.16.181:2222?pkt_size=188?buffer_size=128000

这部分有效,我可以通过 VLC 在我的 Mac 上收听它,我将它从 VLC 流式传输到端口 20103

但是当我使用 mediasegmenter mediastreamsegmenter -s 3 -f /Users/vickkrish/ 127.0.0.1:2222

这就是 2014 年 3 月 6 日 04:11:02.926 发生的情况:音频 pid 设置为 2014 年 3 月 6 日 44 日 04:11:03.165:音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:03.328:音频 pid 更改为 2014 年 3 月 6 日 44 日 04 :11:03.583: 音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:03.745: 音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:03.989: 音频 pid 更改为 2014 年 3 月 6 日 44 04:11:04.151: 音频 pid 更改至 2014 年 3 月 6 日 44 日 04:11:04.316:音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:04.492:音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:04.740:音频 pid 更改为 2014 年 3 月 6 日 44:11 :04.887: 音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:05.175: 音频 pid 更改为 2014 年 3 月 6 日 44 日 04:11:05.338: 音频 pid 更改为 2014 年 3 月 6 日 44 04:11:05.582: 音频 pid 更改为 44

并且没有创建 .ts 文件。