如何从控制台播放 mpeg-dash 音频流?

问题描述 投票:0回答:3

有没有办法从控制台播放 mpeg-dash 音频流?这是一个示例stream

能够强制指定特定的流质量也很好。

我尝试过

mpv
cvlc
,但他们似乎无法解析播放列表并组装块。

streaming vlc mpeg-dash mpv
3个回答
3
投票

正如我的评论中提到的,现在可以使用 ffmpeg 的

ffplay
实用程序从命令行播放 DASH 内容。在 ffmpeg 的早期版本中,DASH 播放并不总是启用 - 请参阅我的相关问题了解详细信息,例如:

ffplay  http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd

还可以使用

ffmpeg
处理 DASH 媒体 - 因此您可以轻松地使用它来下载(或转换)DASH 内容,例如:

ffmpeg -i http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd exMPD_BIP_TC1.mp4

0
投票

更新:
VLC
支持破折号流媒体

最新版本的 VLC 能够处理破折号流,因此终端调用将是:

cvlc https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/dash/nonuk/dash_low/aks/bbc_world_service.mpd

Osmo4(gpac)

osmo4
gpac
项目的一部分,可以播放dash MPD文件,但不幸的是,它不能在纯音频流的无头模式下工作。

dash.js

这是官方的 dash.js 库,需要浏览器。是否可以在nodejs下工作还不清楚

这是播放音频/视频 Dash 流的最小实现,改编自 dash.js 自述文件

<!doctype html>
<html>
<head>
    <title>Dash.js</title>
    <style>
        video {
            width: 640px;
            height: 360px;
        }
    </style>
</head>
<body>
<video id="videoPlayer" data-dashjs-player autoplay controls src="https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/dash/nonuk/dash_low/aks/bbc_world_service.mpd">
</video>

<script src="//cdn.dashjs.org/latest/dash.all.min.js"></script>
</body>
</html>

注意:通过

file:///
协议从本地文件系统打开时,上述文件将不起作用。它需要一个网络服务器; 此处列出的任何 oneliner 都可以。

使用 Chrome/Chromium Headless

从版本 59 开始,Google Chrome/Chromium 可以在无头模式下运行,这意味着它可以在无头系统上使用。由于 dash.js 没有“官方”文本模式客户端,因此在终端中播放 dash 音频的一种重量级方法是使用无头 chrome/chromium 打开它:

chromium-browser --headless --disable-gpu --repl https://a.files.bbci.co.uk/media/live/manifesto/audio/simulcast/dash/nonuk/dash_low/aks/bbc_world_service.mpd

有时 chrome/chromium 会在第一次调用时无法播放,

--repl
选项似乎允许它最终开始播放。 repl 还允许您输入任意 javascript,例如
document.location.reload()


0
投票

关于 Pierz 的回答 - 最好在 ffmpeg 命令中添加 '-c copy' 参数 - 那么下载会更快(因为不会进行转码):

ffmpeg -i http://dash.edgesuite.net/dash264/TestCases/1a/netflix/exMPD_BIP_TC1.mpd -c copy exMPD_BIP_TC1.mp4
© www.soinside.com 2019 - 2024. All rights reserved.