问题标签 [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.
ffmpeg - 使用 ffmpeg/mp4box 从传输流 UDP 输入生成 mpeg-dash 实时内容
我正在接收 mpeg-2 传输流 UDP 输入。我想使用 HTTP 服务器提供此内容。
我知道 mp4box 可用于抓取 udp 并将其转储到文件中。
mp4box 可以使用-dash
参数生成 mpeg-dash 内容
是否可以将-grab-ts
参数与-dash-live
实时破折号内容相结合并生成?
video-streaming - GPAC/mp4box mpeg-dash 分段不起作用
我正在接收来自 UDP 源的 mpeg-2 传输流输入。我需要使用 mpeg-dash 规范将此内容流式传输到 Web 客户端。
在一个过程中,我使用 mp4box 将 udp 内容转储到 ts 文件。
在第二个过程中,我使用这个不断增长的 ts 文件来生成实时破折号块。
当我使用一个简单的 HTTP 服务器播放生成的破折号段时,我在我的 js 控制台上得到以下输出:
我正在使用 DASH IF 客户端播放器https://github.com/Dash-Industry-Forum/dash.js
我是dash的新手,如果我做错了什么,请告诉我?
除了https://gpac.wp.imt.fr/mp4box/dash之外,还有其他合适的 mp4box 文档吗?
或者有没有其他合适的方法来实现这个?
ffmpeg - 如何制作在第一段中间开始播放的 MPEG-DASH MPD?
以下是重现步骤:
标准化 H.264 视频流
ffmpeg -i 2.h264 -c:v libx264 -intra -r 25 -vf scale=640x360,setdar=16:9 2@25fps@intra@640x360.h264
(*) 之后,我得到一个 H.264 流,其中所有图片都是 H.264 IDR 帧,fps 为 25,分辨率为 640x360,纵横比为 16:9。
生成 MP4 文件
MP4Box -add 2@25fps@intra@640x360.h264:timescale=1000 -fps 25 2@25fps@intra@640x360.mp4
制作 dash MP4 碎片化内容,包括 init mp4、.m4s 文件和一个 .mpd 文件
MP4Box -dash 5000 -frag 5000 -dash-scale 1000 -frag-rap -segment-name 'seg_second$Number$' -segment-timeline -profile live 2@25fps@intra@640x360.mp4
- 将所有这些文件复制并发布到一台 HTTPD 服务器下的文件夹中
我想从第一段的 4s 开始播放,并且在 4s 之前不显示任何帧,所以我更改了 .MPD 文件以修改字段“SegmentTemplate@presentationTimeOffset”、“SegmentTimeline:S@d/t”,如:
<?xml version="1.0"?> <MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M26.000S" maxSegmentDuration="PT0H0M5.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011"> <Period duration="PT0H0M26.000S"> <AdaptationSet segmentAlignment="true" maxWidth="640" maxHeight="360" maxFrameRate="25" par="16:9" lang="und"> <SegmentTemplate presentationTimeOffset="4000" media="seg_second$Number$.m4s" timescale="1000" startNumber="1" initialization="seg_secondinit.mp4"> <SegmentTimeline> <S d="1000" t="4000"/> <S d="5000" r="4"/> </SegmentTimeline> </SegmentTemplate> <Representation id="1" mimeType="video/mp4" codecs="avc3.64101E" width="640" height="360" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="2261831"> </Representation> </AdaptationSet> </Period> </MPD>
从 VLC 播放器或 Edge 浏览器播放 MPD url,总是从第一段的第一帧开始,0s ~ 4s 之间的帧也意外显示。
我的步骤有什么问题?或者有其他选择吗?
c++ - 如何将 GPAC(MP4Box) 库添加到 Qt 项目?
我正在使用 Qt 5.11 和 Mac OS (High Sierra)。尝试添加 GPAC (MP4Box),我编译从 Git 下载的库,然后将其路径包含在.pro
文件中,如下所示:
然后我在中包含一个头文件main.cpp
:
这样做我得到以下错误:
“/Users/stellar/Desktop/gpac/include/gpac/configuration.h:163:错误:“未知目标平台与静态配置文件一起使用”
如何解决?
video - mp4box 可变片段长度
是否可以使用 mp4box 以不同方式分割我的视频?我希望初始段较短,而所有其他段较长。
第一个和第二个关键帧之间有 1 秒,然后每 5 秒有一个关键帧/片段。
encryption - 如何在 exoplayer2 中播放加密的破折号块
我已经尝试过播放未加密的破折号流,在 exoplayer2 中出现任何问题时都可以顺利运行 ..
但我不知道如何解密流并且完美无瑕,因为它可以在没有加密的情况下工作。
我没有尝试使用 exoplayer 解密代码需要建议这样做。
我已经使用 ffmpeg 和 mp4box 来做到这一点
intercept.mp4 --> 是原始源视频文件
// -- 视频和音频分离和分辨率脚本
//---------------- AES CTR 模式下带有密钥和 IV 的 XML 文件-----------
// -- 加密脚本
// -- 解密脚本 --
// -- 加密段的主要内容 --
// -- 非加密段的主要内容 --
http://localhost:8085/test23/output e .mpd --> 加密网址
http://localhost:8085/test23/output u .mpd --> 非加密 url
未加密的 url 与 exoplayer 代码完美配合,即使 2 小时的视频也没有搜索时间
安卓的代码
SimpleExoPlayerView 组件
爪哇代码
需要建议解密片段并直接播放。
ffmpeg - How to split a mp4 file into multiple .m4s chunks with one init.mp4 file
I am trying to split one audio.mp4 into multiple chunks(each of 10 seconds) with file format of .m4s or .mpd and one init.mp4 .
1>I have successfully made chunks of 10 secs with one m3u8 file by this command-
ffmpeg -i song.mp3 -c:a aac -b:a 64k -vn -hls_time 10 -hls_list_size 0 abc.m3u8
2>Tried this command also
MP4Box -dash 10000 -frag 1000 -rap -segment-name myDash -subsegs-per-sidx 5 -url-template test.mp4
But not able to make .m4s chunks with one init.mp4.
python - 在哪里存储 .mpd 文件在 django 上以在破折号播放器上播放?
我正在尝试在 django 上构建视频播放器。我正在使用 MPEG-DASH 进行视频文件的自适应流式传输。我在一开始就选择了一个示例视频。然后,使用 ffmpeg 命令,我将视频编码为 240p、360p、480p 和 720p 视频。也有单独编码的音频。
然后,使用 mp4box,我生成了 .mpd 文件。我读过 mpd 文件不能从本地文件系统运行,需要托管在服务器上。我有一个破折号播放器设置如下:
src 字段中的 url 是我用来测试播放器的随机清单文件。它工作正常。
然后,在我的 django 项目中,我创建了一个媒体文件夹,用于存储通过表单上传的媒体文件(根目录包含在 中settings.py
)。我的问题是我在哪里存储视频、音频和 .mpd 文件,以便我可以使用位于模板文件夹中的 html 代码播放它们。我尝试在源中使用 .mpd 文件的媒体 url,但无法播放视频。
这是生成的mpd文件供参考:
ffmpeg - 如何生成与 fmp4 兼容的文件 M3U8?
我有一个使用 MPEG-Dash 协议的流媒体解决方案,我想在 hls 上为 IOS 设备公开相同的文件。
我读到 fmp4 现在与 hls 兼容,所以我认为可以这样做
当我使用此命令生成可能的 mpd 文件时:
MP4Box -dash 33000 -frag 33000 -out video.mpd -profile dashavc264:onDemand original.mp4#audio original.mp4#video
我想要的是不重复文件,并将我生成的 Dash 文件与 HLS 清单文件一起使用。
video - 使用 MP4box 的 MPD 中的自适应部分
我已使用 ffmpeg 为破折号播放器编码我的视频 sample.mp4 的音频和视频文件。命令如下:
我生成了 240p、360p、480p 和 720p 视频和音频文件。
然后我使用 mp4box 使用以下命令生成 mpd 文件:
我正在使用 dash.js 播放器播放视频。问题是,DASH 的自适应部分不起作用。播放器仅使用 240p 视频,即使有适当的带宽,也不会切换到更好的格式。我正在使用 chrome 开发工具的网络选项卡进行检查。
我究竟做错了什么?请帮忙。
这是mpd文件供参考: