我有一个支持CENC的MPD剪辑,如何在不使用任何特定DRM引擎的情况下解密和播放?是否有任何解密算法可用于解密AES CTR 128位?如果有,它将用于解密MPEG-DASH内容吗?网络中有一些第三方库,如NACL,Openssl,crypto ++,可以进行AES ctr 128解密.我可以使用其中一个来解密DASH内容(支持CENC)吗?
是否有一些免费的代码转换器可以在飞行中将视频打包成hls或mpeg-dash?
我不想使用直播,但我想创建vod流媒体.
transcoding video-encoding video-streaming http-live-streaming mpeg-dash
我目前正在研究在浏览器中加密和播放加密视频的主题。在使用 Widevine 的同时,我已经通过castlabs 的 DRMToday 和 Shaka Player 取得了一些成功。
现在我正在尝试使用 ClearKey 在没有外部服务的情况下加密视频,并在 Chrome 中播放它(使用任何可以处理的 js 播放器)。
我确实设法使用 MP4Box(以及用于创建 crypt 配置的 mse-eme)加密单个 mp4 文件,但我不知道如何在浏览器中播放它。HTML5 的视频甚至没有触发“加密”事件。加密本身工作得很好 - 我能够使用相同的工具和正确的密钥将其解密。
我尝试用这个加密文件创建一个 DASH 并在 Shaka Player 中播放它。我使用 MP4Box 创建了清单。我必须手动将缺少的 xmlns 添加到此文件 (xmlns:cenc="urn:mpeg:cenc:2013"),以便 DOMParser 正确解析它。我不知道我该如何处理许可证。
我发现了一些播放编码 webm 文件的工作示例(包括 Shaka Player 的演示页面)。如何加密 webm 文件?我确实找到了https://github.com/webmproject/webm-tools但它似乎需要构建整个 Chromium 才能工作。
还有其他可以加密 webm 文件的工具吗?
首先,我有一个文件夹,其中包含以 DASH 视频形式直播的视频的大约 200 个视频和音频片段(m4v 和 m4a)。现在 - 没有原始文件 - 我想将这些部分连接到一个可播放的视频文件。
提一下我已经测试过的:
我绝对不是专家(否则我可能不会问),但问题也可能是缺少 mpd 和/或 init 文件(据我可以浏览标准)。
不要误会我的意思:我不想得到与原始文件完全相同的结果。我想要实现的只是上述视频的单个可播放 mp4 文件。
我还尝试制作自己的 mpd 文件,但“流”无法播放。仅供参考,我尝试在当前的 VLC 3.0.0 git 中播放它,因为当前的稳定版本似乎不支持 DASH。如果有帮助,这里是视频编解码器:
id="live-hd_H264"
mimeType="video/mp4"
codecs="avc1.4d401f"
width="396"
height="704"
Run Code Online (Sandbox Code Playgroud)
那么,有人可以帮助我吗?
亲切的问候!
自从苹果公司宣布支持分段MP4以来,是否可以为同一段片段(分别用于音频和视频)创建DASH清单(.mpd)和HLS清单(.m3u8)。怎么做?
所以我正在尝试设置自适应流,我认为已经解决了 80-90% 的问题。现在,我提取源视频,将其转码为 5 种分辨率,每种分辨率具有 3 种比特率(低、中、高),然后将所有这些视频分成 5 秒的块,以便用户始终能够获得最佳观看效果。现在我需要生成/创建我的 MPD 清单文件,但我很难弄清楚如何生成/创建我的 MPD 清单文件。几乎每个人都说要使用 MP4Box,但他们的许可证对于我的项目来说限制太多。
当我分割视频时,是否可以使用 FFMPEG 生成 MPD 文件?或者也许生成一个 HLS,然后我可以将其转换为 MPD 清单?任何信息都会很棒,这是我当前的 FFMPEG 命令(工作)
请注意,$变量是 bash 脚本的输入,用于设置输入文件、比特率和比例。
/usr/bin/ffmpeg \
-re \
-i $1 \
-an \
-c:v libx264 \
-b:v $7 \
-b:a 196k \
-strict -2 \
-movflags faststart \
-pix_fmt yuv420p \
-vf "scale='$4:trunc(ow/a/2)*2'" \
-flags -global_header \
-map 0 \
-f segment \
-segment_time 5 \
-segment_list test.m3u8 \
-segment_format mpegts \
$2%05d.mp4
Run Code Online (Sandbox Code Playgroud) 我希望Widevine服务器对请求的用户进行身份验证并登录到我的Web应用程序。
我可以使自己的API服务器以某种方式提供DRM密钥吗?我知道它们已经过加密处理,因此有没有办法创建自己的LA服务器?
还是我必须使用现有的?如果是这样-如何使我的用户身份验证以确保他们已登录?(并检查该用户是否可以观看视频)。
我想确保允许观看视频的用户不会抓住mpd链接,并将其放入具有相同Widevine服务器的其他播放器中。过程的哪一部分使它真正安全?
与URL称为代理//192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLSPlaylist.m3u8 HTTP 调用代理与URL 的http://192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_540_v4.m3u8 调用与URL代理HTTP:// 192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_AUDIO_160_K_v4.m3u8 称为URL的代理http://192.168.xx.xx:8080 / 3hyw7hwoajn21 / HLS_224_v4.m3u8
这是Reddit视频的示例:https : //www.reddit.com/r/me_irl/comments/b3vrs4/me_irl
查看JSON,它有一些视频源选项:
"reddit_video": {
"dash_url": "https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd",
"duration": 76,
"fallback_url": "https://v.redd.it/3hyw7hwoajn21/DASH_720?source=fallback",
"height": 720,
"hls_url": "https://v.redd.it/3hyw7hwoajn21/HLSPlaylist.m3u8",
"is_gif": false,
"scrubber_media_url": "https://v.redd.it/3hyw7hwoajn21/DASH_240",
"transcoding_status": "completed",
"width": 1280
}
Run Code Online (Sandbox Code Playgroud)
虽然我似乎可以使其他HLS / m3u8视频与Chromecast SDK配合使用(例如Google自己的示例HLS视频),但似乎无法使所有这些资源都可以使用。
我尝试将流类型设置为“实时”或“缓冲”的https://v.redd.it/3hyw7hwoajn21/HLSPlaylist.m3u8,我尝试将内容类型设置为“ application / x-mpegURL”,并且我对内容URL 为“ application / dash + xml” 的破折号网址https://v.redd.it/3hyw7hwoajn21/DASHPlaylist.mpd尝试了相同的操作,但也无济于事。我发现这个问题似乎暗示了某种可能性?
我还注意到DASH文件中存在单独的视频和音频流(https://v.redd.it/3hyw7hwoajn21/DASH_720和 …
http-live-streaming google-cast chromecast mpeg-dash google-cast-sdk
我正在尝试从网络服务器提供一些视频内容,目的是支持相当广泛的浏览器。
对于 iOS,据我所知,最好的方法是使用 HLS(HTTP Live Streaming),而在桌面上(我猜是 Android?),MPEG-DASH 是最先进的。作为备用,我可以提供一些静态视频。
我已经在带有 HLS 的 iOS 和桌面上的 Chrome、Firefox、Opera 和 Edge 上运行了此功能,但 Mac 上的 Safari 在我按下播放时仅显示活动微调器。据我所知,这是因为 Safari 尝试使用 DASH 作为播放方法,但失败了,尽管缺乏 Webm 支持并且 HLS 列在第一位。
对于 MPEG-DASH,我将 Webm 与 VP9 和 Opus 结合使用,我的<video>标签如下所示:
<video controls style="display:inline-block;max-width:174.22vh;max-height:98vh;width:98vw;height:55.125vw;background-color:#ccc;" preload="auto" poster="my-preview-image.jpg" data-dashjs-player>
<source src="myvideo/hls/playlist.m3u8" type="application/x-mpegURL">
<source src="myvideo/dash/manifest.mpd" type="application/dash+xml">
<source src="myvideo/myvideo-vp9.webm" type="video/webm; codecs=vp9,opus">
<source src="myvideo/myvideo-vp8.webm" type="video/webm; codecs=vp8,vorbis">
<source src="myvideo/myvideo-h264.m4v" type="video/mp4; codecs=h264,aac">
</video>
Run Code Online (Sandbox Code Playgroud)
我只是使用以下命令导入参考 DASH 实现
<script src="dash.all.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
ffmpeg我正在使用从 Final Cut Pro 导出的高质量主视频生成 HLS 和 DASH 流。静态 Webm …
此用例是一项服务,手动将一系列未压缩的 .wav 媒体片段编码为.m4s片段,以便通过MPEG-DASH广播,使用ffmpeg将 .wav 压缩为 .aac,并使用sannies/mp4parser将 aac 音频组装为 .m4s 片段。 m4s媒体片段。
我创建了这个公共 GitHub 项目来完整重现该问题。
例如,下面是自定义CustomFragmentMp4Builder.java类。
至关重要的是,我们能够使用序列号(索引)来指定这个单个 .m4s 片段,我们将为每个媒体片段手动递增该序列号。
目标是构建一个包含框类型、和 的.m4s片段。作为参考,我使用mp4parser来检查通过 生成的.m4s片段。该规范可在此处以 .yaml 文件形式提供SegmentTypeBoxSegmentIndexBoxMovieFragmentBoxffmpeg -f hls
我的实现创建 MP4 时没有错误。但是,当单元测试尝试读取 ChunkMp4Builder 刚刚写入临时文件夹的文件时:
java.lang.RuntimeException: A cast to int has gone wrong. Please contact the mp4parser discussion group (3724673092)
at org.mp4parser.tools.CastUtils.l2i(CastUtils.java:30)
at org.mp4parser.support.AbstractBox.parse(AbstractBox.java:97)
at org.mp4parser.AbstractBoxParser.parseBox(AbstractBoxParser.java:116)
at org.mp4parser.BasicContainer.initContainer(BasicContainer.java:107)
at …Run Code Online (Sandbox Code Playgroud) mpeg-dash ×10
ffmpeg ×4
drm ×2
html5-video ×2
video ×2
chromecast ×1
ffmpeg-php ×1
fmp4 ×1
google-cast ×1
html ×1
mp4 ×1
mp4box ×1
mp4parser ×1
php ×1
safari ×1
transcoding ×1
webm ×1
widevine ×1