问题标签 [bento4]
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.
media - mp4fragment 减少视频文件的持续时间
尝试通过命令从非分段的 MP4 文件创建分段的 MP4 文件
但是得到的媒体持续时间不正确,为2880000毫秒(约 48 分钟)
持续时间=2880000
宽度=848
高度=480 比特率=1099968 VideoId=1
AspectRatio=1.767
Language_3=
原始媒体文件持续时间为2880040:
持续时间=2880040
宽度=640
高度=360
比特率=800000
VideoId=1
AspectRatio=1.778
Language_3=
ffmpeg - MP4 视频文件中的标准化“跳过介绍”?
是否有一种标准化的方法可以在文件本身的元数据中将包含 MP4 的视频的特定部分标记为可跳过,例如预告片、重述、介绍/结尾、开场/闭幕演职员表?如果可能的话,我想用 FFmpeg 或 MP4box 来设置它。
我知道mvhd
MOV 文件中的框可以指定单个预览。我假设 Netflix 等使用特殊命名或提示的章节(来自文件内部元数据或来自中央数据库)来提供此功能。我现在想将此添加到我个人库中的视频中,以防万一 Kodi、VLC 或其他播放器和媒体中心添加对此功能的支持。
编辑列表框elst
正如第一条评论中提到的,编辑列表可能是一个解决方案。它们在ISO/IEC 14496-12:2015 (ISOBMFF)的第 8.6.6 节中指定,我在下面部分引用。
moov
> trak
+ > edts
? > elst
*
[
elst
] 包含一个明确的时间线图。每个条目定义轨道时间线
的一部分:通过映射媒体时间线的一部分,
或通过指示“空”时间,
或通过定义“驻留”,其中媒体中的单个时间点被保持一段时间时期。
version
是一个整数,指定此框的版本(0 或 1)entry_count
是一个整数,给出下表中的条目数segment_duration
是一个整数,以电影标题框中的时间刻度为单位指定此编辑段的持续时间media_time
是一个整数,包含此编辑段的媒体内的开始时间(以媒体时间尺度单位,以合成时间为单位)。如果此字段设置为 –1,则为空编辑。轨道中的最后一个编辑永远不会是空编辑。电影标题框中的持续时间与轨道的持续时间之间的任何差异都表示为结尾处的隐式空编辑。media_rate
指定播放与此编辑段对应的媒体的相对速率。如果此值为 0,则编辑指定“驻留”:媒体时间的媒体呈现为片段持续时间。否则,该字段应包含值 1。
encryption - 如何使用任何工具将十秒的静止图像添加到 mp4 文件?
有没有办法将一些图像或视频插入 mp4 10 秒,然后冻结视频的其余部分,使其不会被媒体播放器读取?我不确定我是否能正确解释这一点,但我一直在搜索 mp4 结构,似乎没有太多资料可以解释它。我已阅读有关 moov/trak/mdat 和其他一些原子(构成 mp4 文件的基本元素)的信息。所以问题应该是如何将 Trak atom 配置为仅在 mdat atom 内播放 10 秒的数据,而其他数据应在 mdat atom 内但不可播放,直到您再次以编程方式删除或禁用 10 秒数据并将 trak 配置为播放文件的其余部分。然而那' 我认为这是可能的,所以如果有人知道任何其他方式来做几乎相同的事情(可能是加密),请分享。而且我对视频代码和东西并不多,所以如果你认为任何对视频知识较少的人来说可能是陌生的名字,请也解释一下。
firefox - 使用 dash.js 进行 CBCS 加密无法在 Mozilla Firefox 上运行?
我正在使用bento4 mp4dash
,我使用--encryption-cenc-scheme=cbcs
选项。我的解密适用于 google chrome、microsoft edge 和 opera 浏览器。
我正在使用带有 dash.js 的明文密钥加密。
android-ndk - Android NDK 和 Bento4 - 对“AP4_Ac4SampleDescription::_class_AP4_Ac4SampleDescription”的未定义引用
当我从 Android Studio 构建 Bento4 库时,我得到一个未定义的对“AP4_Ac4SampleDescription::_class_AP4_Ac4SampleDescription”错误的引用。
总的来说,Bento4 有 5 个用于不同平台的 cmake 命令。以下是适用于 Linux 和 Android 的 2 个:
基础 Linux:
cmake -DCMAKE_BUILT_TYPE=Release ..
安卓 NDK:cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=$ABI -DANDROID_NATIVE_API_LEVEL=$MINSDKVERSION ..
它与基本的 Linux 版本一起构建得很好。
Android版本无法正常工作的原因可能是什么?请注意:我尝试了几个不同版本的 Android NDK。我收到版本 16 和 17 的一个错误,以及版本 18 到 21 的另一个错误。
html - 使用 Bento4 打包 MPD 文件后无法播放(Dash.js 错误 25)
我有这个使用 Bento4 创建的 MPD 文件。
我将它上传到我的服务器,不幸的是我收到了视频不可用的消息。
我正在使用这个播放器https://reference.dashif.org/dash.js/latest/samples/dash-if-reference-player/index.html。
希望得到您的回应。
谢谢你。
encryption - 如何为 Widevine DRM 生成自定义许可证
我一直在研究 DRM 视频加密。我发现互联网上的所有示例都需要一个 lincense 链接,以及一个“X-AxDRM-Message”加密消息作为标头请求。但是当我使用bento4 生成widevine 加密视频文件时,它没有为我提供任何生成lincese 链接的资源,它为我提供了KID 和Key。这两件事我该怎么办?我可以用 php 或 python 或 js 创建许可证链接吗?或者我怎样才能免费获得链接?