要以预定义的排序顺序观看带有 mpv 的所有视频,可以执行以下操作
mpv /path/to/videos/*
因为mpv
可以接受多个文件作为其参数并依次播放它们。
我想将这些文件传递给 mpv,但它们是随机排序的,因此每次我开始观看时都会出现一些意想不到的情况。
这是我到目前为止所尝试过的
ls /path/to/videos/* | sort -R | while read file; do mpv $file; done
这个变体不能满足我的需求,因为它为每个视频启动新实例,并且新窗口总是获得焦点。
答案1
使用子 shell 将随机行收集回 的参数中mpv
。echo
如果试运行看起来不错,请删除调试。
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/*