在 Linux 终端中创建 M3U 播放列表以按特定顺序播放文件 [Quick Tip]

简介:关于如何在 Linux 终端中从无序文件创建 M3U 播放列表以按顺序播放它们的快速提示。

我是外国电视剧的粉丝,将它们放在 DVD 或 Netflix 等流媒体服务上并不总是那么容易。 值得庆幸的是,您可以在 YouTube 上找到其中一些并从 YouTube 下载它们。

现在问题来了。 您的文件可能未按特定顺序排序。 在 GNU/Linux 中,文件不是按数字顺序自然排序的,所以我必须制作一个 .m3u 播放列表,以便 MPV 视频播放器按顺序播放视频,而不是乱序播放。

有时数字位于中间或末尾,例如“我的网络系列 S01E01.mkv”。 这里的剧集信息在文件名的中间,“S01E01”告诉我们,人类,这是第一集,接下来需要进入。

所以我所做的是在视频目录中生成一个 m3u 播放列表,并告诉 MPV 播放 .m3u 播放列表,它会按顺序播放它们。

什么是一 .m3u 文件?

M3U 基本上是一个文本文件,其中包含特定顺序的文件名。 当 MPV 或 VLC 等播放器打开 M3U 文件时,它会尝试按给定顺序播放指定文件。

创建 M3U 以按顺序播放音频/视频文件

就我而言,我使用了以下命令:

$/home/shirish/Videos/web-series-video/$ ls -1v |grep .mkv > /tmp/1.m3u && mv /tmp/1.m3u .

让我们把它分解一下,看看每一点意味着什么——

ls -1v = 这是使用普通的 ls 或目录中的列表条目。 -1 表示每行列出一个文件。 while -v 文本中(版本)数字的自然排序

| grep .mkv = 这基本上是在告诉 ls 查找以 .mkv 结尾的文件。 它可以是 .mp4 或您想要的任何其他媒体文件格式。

通过在控制台上运行命令来进行试运行通常是一个好主意:

ls -1v |grep .mkv My Web Series S01E01 [Episode 1 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E02 [Episode 2 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E03 [Episode 3 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E04 [Episode 4 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E05 [Episode 5 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E06 [Episode 6 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E07 [Episode 7 Name] Multi 480p WEBRip x264 - xRG.mkv My Web Series S01E08 [Episode 8 Name] Multi 480p WEBRip x264 - xRG.mkv 

这告诉我,我正在尝试做的是正确的。 现在只需要使输出采用 .m3u 播放列表的形式,这是下一部分。

ls -1v |grep .mkv > /tmp/web_playlist.m3u && mv /tmp/web_playlist.m3u .

这使得 .m3u 在当前目录中生成。 .m3u 播放列表只不过是一个 .txt 文件,其内容与上述相同,扩展名为 .m3u。 您也可以手动编辑它并按照您想要的顺序添加确切的文件名。

之后,您只需要执行以下操作:

mpv web_playlist.m3u

一般来说,MPV 和播放列表的好处在于您不必疯狂观看。 你可以一次看到你想做的任何事情,然后在下一个会话或之后的会话中看到其余部分。

我希望写一些以 MPV 为特色的文章,以及如何使 mkv 文件在媒体文件中嵌入字幕,但那是将来的事情。

注意:它的 FOSS 不鼓励盗版。