在一个 mpv 实例中观看随机排序的视频

在一个 mpv 实例中观看随机排序的视频

要以预定义的排序顺序观看带有 mpv 的所有视频,可以执行以下操作

mpv /path/to/videos/*

因为mpv可以接受多个文件作为其参数并依次播放它们。

我想将这些文件传递给 mpv,但它们是随机排序的,因此每次我开始观看时都会出现一些意想不到的情况。

这是我到目前为止所尝试过的

ls /path/to/videos/* | sort -R | while read file; do mpv $file; done

这个变体不能满足我的需求,因为它为每个视频启动新实例,并且新窗口总是获得焦点。

答案1

使用子 shell 将随机行收集回 的参数中mpvecho如果试运行看起来不错,请删除调试。

echo mpv $(print -l /path/to/videos/* | sort -R)

(也没有必要使用,ls因为这比简单地使用 逐行打印全局扩展的结果更昂贵print -l。)

在 ZSH 内部,尝试一个聪明的 glob 技巧来打乱列表:

echo mpv *(oe:REPLY=\$RANDOM:)

答案2

mpv有一个内置选项用于随机播放文件的顺序 ( --shuffle)

你可以使用mpv --shuffle /path/to/videos/*

相关内容