问题标签 [matroska]

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

xml - 是否有任何工具可以将 matroska (mkv) 转换为文本文件?

例如,能够将 mkv 文件转储到某些文本(如 in mkvinfo -v)、编辑它并重新构建回来,将二进制数据保留为十六进制转储,这将很有用。

就像是:

这对于简化编写 [调试] 工具处理视频很有用,而无需真正弄乱复用/解复用细节,只需查看输出即可。

0 投票
1 回答
2722 浏览

javascript - 从浏览器以编程方式打开 VLC 媒体播放器

我在我的网站上使用 .mkv 视频,但用于浏览器的 VLC 媒体插件实际上毫无用处。

但是,VLC 媒体播放器可以选择打开网络流,该流是指向我的视频的直接链接。

通过指定视频的直接 HTTP 链接,我可以拥有在 VLC 媒体播放器中观看该 .mkv 视频所需的一切。

现在,如何在某人的计算机上启动 VLC 媒体播放器并自动让 VLC 加载网络链接?

我使用 JavaScript、HTML 吗?如何让客户端的计算机应用程序从浏览器启动?

谢谢,

0 投票
1 回答
562 浏览

ogg - 在没有 Ogg 的情况下使用 Vorbis?

我想知道为什么 Vorbis 需要任何容器?我知道您可以将 Vorbis 放在 Ogg 容器或 Matroska 容器中,但如果我不打算将它与任何视频或任何其他多媒体捆绑在一起,为什么 Vorbis 数据不能单独存在于自己的文件中?

有没有人有这样做的经验?我在搜索之前用谷歌搜索,我只在 oggvorbis 邮件列表中找到了一个没有详细信息的提及。

0 投票
1 回答
848 浏览

gstreamer - Gstreamer 多路复用器,大写被拒绝

我在 Win 7 x64 上的 Gstreamer OSS Build 0.10.7 中使用以下管道(简化):

该管道通过 Gstreamer-Sharp 启动。这是管道的控制台输出:

只要我不使用复用器,视频和音频都可以正常播放。当在管道中包含多路复用器时,视频立即冻结并且听不到声音。什么是错的,为什么混音器拒绝盖帽?

0 投票
1 回答
1543 浏览

gstreamer - GStreamer 和动态字幕

我是 GStreamer 的新手,我正在尝试使用字幕流对视频流(现在是 v4l2src)进行编码并混合到 matroska 容器中。我可以传入带有字幕的 .srt 文件,然后将其编码到文本流中。但是,我想使用字幕流对录制视频时生成的“元数据”进行编码。我可以使用 textoverlay 但不想将元数据刻录到图像上。我想稍后再做(经过各种后期制作效果)。

随着时间的推移,有没有办法可以将字幕添加到 matroskamux 中?字幕文本的内容事先是未知的,例如移动摄像机的 GPS 坐标。

这是在 matroska 流中记录元数据的最佳方法吗?

这是我的 GStreamer 管道,形成 gst-launch 的 pov:

gst-launch-0.10 matroskamux 名称=mux !文件接收器位置=test.mkv \ v4l2src !x264enc !多路复用器。\filesrc 位置=subtest.txt !亚解析!kateenc 类别=SUB !多路复用器。

感谢您的时间。

0 投票
1 回答
1513 浏览

h.264 - Converting between SDP's sprop-parameter-sets and mkv's CodecPrivate

Is there some easy way to convert between h264 settings as stored in Matroska file:

and the same settings when streaming that matroska file using RTSP?:

Base-64 strings decodes to this:

which partially matches the data in mkv's CodecPrivate.

0 投票
1 回答
4704 浏览

ffmpeg - 从不完整的视频文件中提取元数据

谁能告诉我元数据以常见的视频文件格式存储在哪里?如果它位于文件的开头,或者分散在整个文件中。

我正在使用包含大量视频文件的远程对象存储,并且我想从这些文件中提取元数据,特别是视频持续时间和视频尺寸,而不是将整个文件内容流式传输到本地计算机。

我希望此元数据将存储在文件的前 X 个字节中,因此我可以只获取从开头开始的字节范围而不是整个文件,将部分文件数据传递给ffprobe.

出于测试目的,我创建了一个 22MB MP4 文件,并使用以下命令仅向 ffprobe 提供前 1MB 数据:

它打印:

所以我看到前 1MB 足以提取 9.84 秒的视频持续时间和 1920x1080 的视频尺寸,即使 ffprobe 打印了关于检测部分文件的警告。如果我提供少于 1MB,它会完全失败。

这种方法是否适用于其他常见的视频文件格式以可靠地提取元数据,或者任何常见的格式是否会在整个文件中分散元数据?

我知道容器格式的概念,并且可以使用各种编解码器来表示这些容器内的音频/视频数据。虽然我不熟悉细节。所以我猜这个问题可能适用于容器+编解码器的常见组合?提前致谢。

0 投票
1 回答
1864 浏览

c++ - 使用 gstreamer 将 jpeg 复用到 mkv

情况:

当我尝试将 jpeg 多路复用到 mkv 文件时,我会得到一个零大小的文件。我必须在解析器和复用器之间放置编码和解码元素以获得正确的输出。当我用相同的代码混合 h264 视频时,我会得到正确的视频文件,这意味着缓冲区的时间设置应该是好的(持续时间和 pts 参数)。无论如何,在缓冲区设置错误之后,文件的大小不为零。Matroskamux 只需要接收器上的“image/jpeg”“宽度”和“高度”功能,但看起来这还不够。Jpegparse 提供了正确的值,并且在手动设置此功能后程序也无法运行。

管道示例:

此管道不起作用

但这有效

代码示例:

工作代码,但需要重新编码

问题:

我做错了什么?有什么想法可以解决这个问题吗?

0 投票
1 回答
3426 浏览

c# - 解码 .mkv (Matroska) 视频格式

我有一个使用 c# 制作的媒体播放器,我想解码 mkv 格式,但我找不到任何关于编解码器或如何编码/解码 mkv 文件的好信息。如何解码 matroska (mkv) 视频格式?

0 投票
1 回答
840 浏览

video - 使用复用器会破坏来自 ALSA 的输入

我正在尝试制作一个简单的 GStreamer 程序,将来自 v4l2 相机的视频和 ALSA 音频混合在一起。但是,我在使用复用器时遇到了很多问题。这是我正在使用的命令:

创建的文件具有完美的视频,但控制台输出如下消息:

并且视频是无声的。将“alsasrc”替换为“audiotestsrc”可以生成具有相同完美视频和无错误测试音调的文件。如果我使用“videotestsrc”而不是“v4l2src”并尝试再次使用 alsasrc 录制,我可以看到测试视频并且没有错误提示,但声音已损坏;它分段演奏,随意跳跃,经常保持沉默。如果我使用 avimux 而不是 Matroska,也会出现这些问题。alsasrc 没有问题,因为我可以很好地录制音频

我试过在 alsasrc 之后添加一个队列,但没有帮助。一个audiorate也没有。我能做些什么来修复这个管道?