问题标签 [mp4box]

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 投票
0 回答
609 浏览

ffmpeg - 使用 ffmpeg 的 mpeg-dash 流的最小延迟

我正在尝试使用 MP4Box 和 ffmpeg 并使用 mpeg-dash 流式传输我的视频文件,我使用以下命令对视频进行了转码:

这对于音频

这是为了制作mpeg-dash文件:

但我没有得到一个快速的流并且它有一些延迟,关于如何降低这个延迟的任何建议?

0 投票
0 回答
947 浏览

ffmpeg - 使用 FFMPEG+MP4Box+Dash.js 进行直播的工作示例

我在这个问题上停留了几天,找不到一个完美的工作示例。

这是我目前的方法:

步骤1。

第2步。

步骤 3。

我播放了使用 Dash.js 生成的 live.mpd,播放器在实际播放之前暂停了很长时间,每次获取新的 m4s 文件时都会卡顿。

我的命令有什么问题吗?或者,如果能提供任何其他好的例子,那就太好了。

0 投票
0 回答
190 浏览

javascript - MPEG DASH:在附加到 SourceBuffer 时尽快(和多次)播放片段

是否有可能让 HTML5 视频标签在我将它们附加到 SourceBuffer 时尽可能多地播放片段?因此,例如,如果我附加片段 2 - 即使没有片段 1,我希望它立即播放片段 2,如果我再次附加片段 2 - 我希望它再次播放片段 2。

我已经尝试向 MediaSource 传递一个没有 fragment1 的初始段 + fragment2,但我发现它不是立即播放它,而是用它填充时间线的相应部分。因此,如果我寻找相应的位置 - 它会开始播放它,但如果我不这样做 - 它不会(除非我也通过 fragment1,ofk)。更不用说即使我再次将 fragment2 附加到 SourceBuffer,它也不会自动再次播放,直到我寻找。

这是我用来生成 MP4/DASH 流的一种方式:

这是相应的 HTML5/JavaScript 代码:

有可能做我想做的事吗?此外,如果有人能建议我一个正确的词如何称呼它,我将不胜感激 - 我将其称为“直播”,但我不确定。

0 投票
5 回答
5368 浏览

centos - 如何在 CentOS7.3 上安装 MP4Box

我无法在 CentOS7.3 上安装 MP4Box。CentOS Linux 版本 7.3.1611(核心)

我尝试参考以下 URL 进行安装。 https://www.24x7serversolutions.com/blog/install-mp4box-on-centos/

但是,在执行此命令时,

我试图将 ln 设置如下。

但是,显示了相同的错误。

我该如何处理?

0 投票
1 回答
1253 浏览

centos - GPAC MP4Box ZLIB Error

I've been trying to get MP4Box installed on my CentOS 7 box using the following instructions:

Everything works fine until I get to ./configure which gives me an error:

I've removed and reinstalled ZLIB and still no luck. I'm pretty new to CentOS so I'm not sure if the problem is with MP4Box or my CentOS installation. I did read that is could be a location issue, here is what I get when I run a whereis /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz. Thoughts?

0 投票
1 回答
681 浏览

video-streaming - MPEG-DASH - 破折号无效!错误

我一直在尝试学习 MP4Box 和 Dash,我正在取得一些进展,但我似乎无法让我的视频正常工作。我按照说明将播放器添加到一个简单的 html 页面,并用它测试了 Dash 测试页面中已知的 MPD,一切都与播放器完美配合,因此我缩小了 MPD 文件的范围。

我通过 Dash 验证器运行了我的 MPD 文件,但它失败了。我收到以下错误:

我正在使用 MP4Box 对 mp4 进行分段,因此它可能是一个不正确的命令。我正在使用,这是我正在使用的命令:

当我查看 MPD 文件时,我不确定我在寻找什么,但我确实通过它查看是否可以找到任何明显的错误,但它看起来不错。这是我的 MPD 文件:

0 投票
2 回答
1634 浏览

ffmpeg - MPEG-DASH - 多路复用表示问题

我正在尝试学习 ffmpeg、MP4Box 和 MPEG-DASH,但我遇到了我正在使用的 .mp4 的问题。我正在使用 ffmpeg 通过以下命令对 mp4 进行解复用:

创建这两个文件后,我使用 MP4Box 使用以下命令为破折号播放器分段文件:

它确实创建了我认为我需要的所有文件。然后我将播放器指向 output_dash.mpd,除了控制台中的大量消息外,什么也没有发生:

这是我正在使用的视频的 MP4Box 信息:

我知道我需要将视频和音频分开,我认为这就是我的问题所在。我正在使用的命令可能没有做正确的事情。

有没有更好的命令来解复用我的 mp4?我使用的 MP4Box 命令最适合分割文件吗?如果我使用不同的文件,它们是否总是需要解复用?

有一件事要提,如果我使用以下命令一切正常,但没有音频,因为-an这意味着它只是视频:

更新

我注意到视频没有音频流,但音频有视频流,这就是我收到多路复用器错误的原因。我认为这可能是一个问题,因此我运行了此命令以将不需要的流排除在输出之外:

然后我运行:

现在我不再得到有意不支持多路复用表示...消息,但现在我得到:

我尝试通过 Chrome 独立播放视频和音频,它们都可以工作,只是不能通过破折号播放器。呃,这学起来很痛苦,但我觉得我正在取得进步。

0 投票
1 回答
1796 浏览

file - 删除 SRT 文件中的特定行

我目前正在编写一个 PS 脚本,它将遍历我的整个库,找到所有包含字幕的 mp4 文件,并将它们剥离为与视频文件同名的 SRT 文件。

我在命令行级别上做所有事情,但我遇到了一组特定文件的问题。每当我从 MP4 文件中剥离 SRT 文件时,它都会添加额外的行,这会弄乱视频播放器中的字幕。

我已经尝试了所有方法(MP4Box、FFMpeg 等),但我不断收到额外的线路。

这就是你们进来的地方:我需要你们帮我弄清楚如何删除特定的行。让我告诉你我的意思:

原始文件:
[已删除] 编辑:再往下看,我已经粘贴了代码

需要的输出:
[删除]编辑:进一步看下面,我已经粘贴了代码

注意到更少的换行符了吗?

关于我如何使用 BAT 脚本、powershell 或类似工具的任何想法?

并且解决方案不能是如果新行不以数字开头,则不应该有换行符。因为 SRT 文件中的文本(实际的字幕文本)可能以数字开头。

在此先感谢 - 我感谢我能得到的任何帮助。并且不时为一些语法错误感到抱歉。第二语言。

--

编辑 我被要求粘贴文本,而不是屏幕截图:

原来的

我想要的输出

--

第二次编辑

我知道这不是免费的脚本服务,而且我已经在以前的个人资料中提供了知识 - 但是好的,请随时不帮助我。

我被告知要显示代码的“相关部分”。我不知道该怎么做——我可以告诉你我是如何提取字幕的。我尝试了以下两个:

$subtitle-value 只是输入文件名,以 SRT 结尾

$subid 是使用 MediaInfoCLI 的工具找到的

$ffmpegsubid 与 $subid 相同,只是减 1,因为 MP4Box 和 FFMpeg 对流的计数不同

并且 subtest 变成 subid,这取决于你的目标是什么语言。它有超过 200 行的“elseif”,以确保我击中了所有不同的组合。(如 en / sp / po 和 en / po /sp )

但这一切都与问题无关。如何从输出文件中删除不需要的行?我做了一个脚本删除行,如果下一个不以数字开头,但这对我现在没有帮助,所以没有理由发布它。

无论如何-提前感谢-感谢:)

--

第三次编辑

有人在删除之前发布了以下解决方案:

但是,所有这一切都会产生以下错误:

Powershell 错误消息

0 投票
0 回答
1625 浏览

video - MP4Box - 创建包含多个视频的单个 MPD 文件

我正在解决一个问题,我必须使用 DASH 一个接一个地播放多个视频。我不希望将它们组合成一个 MP4。每个视频(每个表示)都有自己的片段文件(单个片段)。然后我使用 MP4Box 创建一个具有多个句点的 mpd 文件,以便 video1 在 Period 1 中, video2 在 Period 2 中,希望它们会一个接一个地运行。MP4Box命令如下

这会生成一个带有 2 个句点的单个 mod 文件。但是,当我使用 SHAKA 播放器https://shaka-player-demo.appspot.com/demo/#lang=en-GB运行视频时,视频会在从一个时期切换到另一个时期时挂起。

有人可以帮我在这里做错什么吗?

谢谢

0 投票
2 回答
6816 浏览

ffmpeg - 如何从 MPEG DASH 段创建 HLS 清单?

既然,Apple 已经宣布支持分段 MP4,是否可以为同一组片段(用于单独的音频和视频)创建 DASH 清单 (.mpd) 和 HLS 清单 (.m3u8)。怎么做?