标签: mpd

什么是 .MPD 文件?

在 DASH(基于 HTTP 的动态自适应流媒体)的背景下,MPD 文件究竟是什么?

它的格式是正式指定的吗?如果是这样,它在哪里可用?

它在查看加密媒体的上下文中扮演什么角色?

(具有关于文件各自字段是什么以及它们做什么的描述性评论的示例文件将不胜感激,最好以比正式规范更易于访问和简洁的方式)。

mpd mpeg-dash

8
推荐指数
2
解决办法
2万
查看次数

mpd mpc查询语言

我无法弄清楚如何从mpc正确查询mpd.

例如:我知道如何列出所有专辑

mpc list album
Run Code Online (Sandbox Code Playgroud)

但是我希望得到更多的名字.

如何查询mpd的专辑名称,专辑路径,艺术家,曲目编号,长度等.优选地,在一个查询中,但是多个查询也是可以的.

我试着阅读mpc手册页和mpd的官方文档但是无法弄明白.

mpd

6
推荐指数
2
解决办法
2610
查看次数

MPD:使用Linux bash脚本接收实际的mpd-status

我想知道如何使用linux bash脚本接收mpd播放器的实际状态.我知道如何开始和停止播放器......

#!/bin/bash
mpc play
mpc volume +1
mpc stop
Run Code Online (Sandbox Code Playgroud)

...但我需要知道mpd是否正在播放一首歌.此外,当前的音量设置很有趣.

我尝试接收它mpcstatus=cat /var/tmp/mpd_statusactvol=cat /var/tmp/mpd_volume但文件不存在.我正在使用RaspberryPi上的Volumio/Debian.

linux bash raspberry-pi mpd

5
推荐指数
1
解决办法
2727
查看次数

Fish Shell:检查并运行进程(如果未运行)

我想在打开终端时启动一个进程 [mpd],并在打开第二个选项卡时检查它是否已经在运行,这样它就不会尝试再次运行它。这是我的 .bashrc 中的内容:

#start mpd automatically if not yet running.
if [[ -z "$(pgrep mpd)" ]]; then
  mpd
fi
Run Code Online (Sandbox Code Playgroud)

我想是这样的,或者可能使用test -f,但我不知道如何让它工作:

# MPD
if pgrep mpd > /dev/null 
  command mpd
end
Run Code Online (Sandbox Code Playgroud)

[这位于我的 config.fish 文件中]。

terminal fish mpd

3
推荐指数
1
解决办法
1226
查看次数

如何连续轮询当前播放的歌曲的mpd并将结果写入文件?

我唯一需要从 mpd 中提取的是当前播放的歌曲/曲目。我必须确保这在输出文件中始终是最新的。

mpd

2
推荐指数
1
解决办法
2253
查看次数

在contextmanager中使用yield两次

我试图用contextmanager隐藏一些try/except复杂性.这是一个简单的例子:

from contextlib import contextmanager
import mpd

mpdclient = mpd.MPDClient()
mpdclient.connect("localhost", 6600)

@contextmanager
def mpdcontext():
  try:
    yield
  except mpd.ConnectionError:
    mpdclient.connect("localhost", 6600)

with mpdcontext():
  mpdclient.status()

with mpdcontext():
  mpdclient.lsinfo()
Run Code Online (Sandbox Code Playgroud)

现在,正如我所理解的那样,在调用yield时执行with语句中的块.在我的情况下,如果这引发异常,我重新连接到mpd.重新连接后,我可以以某种方式再次执行with-block吗?

谢谢

python yield contextmanager mpd

2
推荐指数
1
解决办法
1494
查看次数

使用 ffmpeg 将多个音轨和字幕添加到 dash 清单 (mpd)

我正在尝试创建一个网站来播放一些视频。对于每个视频,我将视频、音频和字幕提取到 3 个不同的文件夹中。碰巧一个视频有多个音轨和多个字幕。我做了很多研究,但我不知道如何将它们全部添加到清单中。现在,我使用这个命令:

ffmpeg -f webm_dash_manifest \
-i video1.mp4 -f webm_dash_manifest \
-i video2.mp4 -f webm_dash_manifest \
-i audio1.webm -f webm_dash_manifest \
-i audio2.webm -f webm_dash_manifest \
-i subtitles.vtt \
-c copy -map 0 -map 1 -map 2 -map 3 \
-f webm_dash_manifest -adaptation_sets "id=0,streams=v id=1,streams=a" manifest.mpd
Run Code Online (Sandbox Code Playgroud)

我的两个视频具有不同的分辨率和比特率,但效果很好。但我没有得到任何字幕,并且我的两个音轨被视为具有两种不同比特率的同一个音轨(就像视频一样)。我认为我应该有很多适应集,但我不知道如何创建它们。

我怎样才能以正确的方式创建清单?

ffmpeg manifest stream mpd mpeg-dash

2
推荐指数
1
解决办法
4909
查看次数