问题标签 [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.
video - 在 MP4 中创建定时元数据轨道
BMFF 将元数据轨道定义为除了视频和音频轨道之外还可以出现在媒体文件中的轨道。这样的轨道可以是 xml (metx)、文本 (mett) 或二进制 (urim) 的形式。
是否有能够将 mp4 文件作为输入并将元数据轨道附加到它的库?是否有示例 mp4 来检查和学习此类文件的确切结构?
具体来说,我有兴趣将这样的曲目添加到碎片化的 mp4 文件中。
mp4 - 当我使用 MP4Box 设置 -frag 和 -dash 时,结果有何不同?
我已阅读有关 Mpeg-Dash 的 MP4Box Doc,但我不清楚“MP4Box -dash 10000 -frag 2000 largeFile.mp4”和 MP4Box -dash 10000 -frag 1000 largeFile.mp4。当我打开 *.mpd 文件时,我发现 SegmentList 的持续时间是 10023(大约 10 秒)。如果-frag 2000 or 1000
没有使用?
我正在设计一个 HTML5 视频播放器(如这个示例),并且我使用 MP4Box 工具来创建 DASH 视频。但是我不清楚当我使用 -frag 2000 和 1000 转换我的视频时有什么区别。例如:我对我的视频有 10 秒片段和 1 秒片段的意思不是。也许我的视频播放器不需要设置这个选项?
video - MP4 moof 片段标头
我有一个 MP4 解析器软件,它可以获取片段.mp4
视频,解析MOOV
和片段标题并将其流式传输。我自己使用and /生成了一个.mp4
文件,但是软件在处理它时遇到了问题。FFMPEG
MP4Box
bento4
使用该MP4 Explorer
软件,我注意到在我生成的.mp4
文件中,对于所有moof.traf.trun
,样本持续时间设置为0,但在 Track Fragment Header 框中,它将 设置default_sample_duration
为 512。虽然在另一个.mp4
工作正常的文件中,没有default_sample_duration
字段,但是每个单独的样本的持续时间为 512。看起来这可能会导致问题。右图显示工作的 mp4,左图是我生成的 mp4。
这是FFMPEG
(或MP4Box
或bento4
)较新版本的更新吗?有没有办法强制设置样本中的样本持续时间?
ffmpeg - 直播多比特率视频
前言
我已经阅读了 Steamroot 在 MPEG-DASH 上的两部分教程(第 1部分和第 2 部分),以下是我的理解(如果我错了,请纠正我):
- 需要使用FFmpeg将视频编码为多种比特率。
- 编码的视频需要使用MP4Box进行转码(破折号) 。
- 可以使用网络服务器提供破折号视频。
问题
我打算直播一个活动,我需要帮助来理解以下内容:
- 我可以将 FFmpeg 和 MP4Box 命令合并到一个步骤中吗?也许通过一个包装程序,这样我就不必单独运行它们?有没有其他或更好的解决方案?
- 如何将破折号内容发送到 Web 服务器?FTP?任何香草网络服务器都可以吗?
- 最后,一位朋友暗示我也可以使用GStreamer来实现我的目标。但是,我在互联网上找不到任何好的资源。那么,GStreamer 在哪里(以及如何)适合上述过程?
audio - 如何使用 ffmpeg 从单个文件创建音频同步剪辑?
我有 1 个大文件(我们称之为 test.mp4),我想创建一个新文件(out.mp4),它需要 3 个相隔 1 秒的段:
Seg1: 00:01:00 - 00:02:00
Seg2: 00:03:00 - 00:04:00
Seg3: 00:06:00 - 00:07:00
并将它们合并到 out.mp4
我尝试了各种 concat 过滤器,或者使用带有说明的 textfile.txt:
file file-1.wav
duration 20.0
但是各种方法使用 x264 编解码器产生故障视频(绿色伪影、断断续续的不同步音频)
将每个段切割成自己的文件然后合并是不适用的,因为这种方法会产生数千个文件,而且处理起来似乎很慢。
有人对如何使用 ffmpeg 正确完成此操作有想法吗?有没有一种替代的 API/CLI 工具可以让我使用已知在这些情况下效果更好的工具?
jpeg - 使用 gpac 将 heif/heic 转换为 jpg
我正在尝试使用 GPAC/MP4Box 将 HEIC 转换为 JPG。我已经能够为单个 HEIC 文件获得小的 JPG“图块”,但我不知道如何获得一个大的 JPG。
命令类似于:
video - 使用 FFprobe 与 MP4Box 检索视频的持续时间
我正在使用 FFprobe 和 MP4Box 来检索视频流信息。我意识到返回的值存在显着差异。
以下命令用于 FFprobe:
但是,使用 MP4Box 检索同一文件的持续时间会返回不同的值。使用以下命令:
我所有的 .ts 文件都有约 3 秒的视频片段,所以这应该只返回秒数(而不是分钟或小时);现在不关心这个。
这两个值中的哪一个更准确?
此外,我还意识到 usingMP4Box -info
并不总是能检索 ts 文件的持续时间信息,而 FFprobe 迄今为止与我的所有 .ts 文件都工作得很好。
例子:
仅供参考,ffprobe(完整)视频信息1510579366733_9.ts
如下:
和1510579366733_10.ts
:
针对Mulvya 的评论进行编辑:使用 ffprobestream=duration
如下:-
ffmpeg - 如果有人持有解码的初始化数据和/或 Widevine 许可证密钥,他可以解码我的 Widevine Mpeg Dash 流吗?
假设有人下载了我的 Widevine DRM 流的多个片段:
Segment01.m4s
Segment02.m4s
段...n.m4s
他以某种方式获得了该特定流的解码初始化标头数据,他能用它做什么?他可以用它来解码他下载的片段吗?如果没有,他有什么可能的方法,以及我如何防止这种事情发生。
ffmpeg - 在 MPEG4 内容中移动音频并操纵原子
1. 切换音频
我经常使用ffmpeg / avconv ......而且通常我讨厌它。这些工具在大约 30% 的时间里执行他们被指示执行的操作。我可以给你无数的例子,但我不想开始火焰战争,所以请帮助我解决我目前的问题(真的很容易)。
我想转换音频(内容是带有 aac 和 h264 轨道的标准 mp4 文件),所以我找到了一个“高度赞成”的解决方案:
https://superuser.com/a/983153/758887
唯一的问题是它不起作用。我下载了最新的稳定 ffmpeg(即使在线程中的 Windows 上,所以它的版本是 3.4.1)并执行命令而不改变任何文字:
结果没有变化(我预计音频会晚 3.84 秒)。
2. 去除 MPEG4 原子
如果您能推荐一些从内容中删除 MPEG4 框的工具,我也将不胜感激。为了检查 MPEG4 内容,我在 Windows 上使用MP4 Explorer / Codec Visa(受限),在 Linux 上使用AtomicParsley,但是它们只打印原子,我想编辑/删除它们。例如MP4Box可以使用“-rem”选项删除整个 moov->track 但如果我只想删除 moov->track->edts 怎么办?
mpeg-dash - MP4Box -dash-live 如何处理dash.js
我正在尝试使用 mp4box 进行伪直播,并使用 apache 或 mamp 中的 dash.js 将其可视化,我的操作系统是 sierra。对于我的测试,我使用了一个已经编码了辛普森一家的视频http://www.h264info.com/clips.html,因为我知道 ffmpeg 的编码仅用于多比特率目的,目前我不需要它. Osmo 工作正常,可以快速且良好地读取清单 Dash.js 示例在 html 中的清单链接上工作正常,但它不能与我的清单一起工作。所以我知道 Dash.js 可以工作。
命令行: sudo MP4Box -dash-live 1000 -frag 1000 -profile live -subdur 1000 -mpd-refresh 1000 -time-shift 16 -bs-switching no -segment-name output-seg -out manifest.mpd video_test.mp4
我使用 sudo 因为我使用的是 osx,但我相信这不会造成任何问题。我尝试不同的浏览器,dashifk 一致性页面。我不明白为什么在 Mamp 或 Apache 上,页面无法可视化我为伪实时使用而生成的清单。我哪里错了?你可以帮帮我吗?谢谢!马西莫
显现:
用于测试的基本 HTML