📜  vlc 中的快照 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:21:02.312000             🧑  作者: Mango

VLC 中的快照 - Shell/Bash

如果你需要视频/音频播放器,那么 VLC 是一个非常不错的选择。它是一个开源软件,可以在多种平台上运行。VLC 除了播放视频和音频文件之外,还具有很多其他的功能,如录制视频、屏幕录像和截图等。在本文中,我们将重点介绍如何在 VLC 中进行截图操作,并利用 Shell/Bash 脚本自动化这个过程。

VLC 的快照功能

VLC 的截图功能非常方便,只需要在播放视频时按下快照按钮(或使用快捷键 Ctrl + Alt + S),VLC 就会自动保存当前屏幕截图到默认的保存位置(Windows: %USERPROFILE%\Pictures\VLC,MacOS: ~/Pictures/VLC,Linux: ~/Pictures)。如果你需要自定义保存位置,可以在 VLC 的偏好设置中进行设置。

Shell/Bash 脚本实现自动化

如果你需要在一个视频列表中批量截图,手动一个个去截图显然不是一个好选择。因此,我们可以编写 Shell/Bash 脚本来实现自动化的批量截图操作。

以下是一个简单的 Shell/Bash 脚本:

#!/bin/bash

# 设置变量
video_dir="/home/user/Videos"
snap_dir="/home/user/Pictures/Snapshots"

# 判断快照目录是否存在,如果不存在则创建
if [ ! -d $snap_dir ]; then
    mkdir -p $snap_dir
fi

# 循环遍历视频文件,并进行截图操作
for video_file in $video_dir/*.mp4; do
    # 获取视频文件名(不含扩展名)
    video_name=$(basename "$video_file" .mp4)
    
    # 判断快照文件是否已存在,如果不存在则进行截图操作
    if [ ! -f $snap_dir/$video_name.png ]; then
        vlc -I dummy "$video_file" --video-filter=scene --vout=dummy --scene-ratio=1 --scene-prefix="$video_name" --scene-path="$snap_dir" vlc://quit
    fi
done

上述脚本中,我们首先设置了两个变量:视频目录(video_dir),快照目录(snap_dir)。然后,我们循环遍历这个视频目录下的所有.mp4文件,逐个进行截图操作。具体截图操作的命令为:

vlc -I dummy "$video_file" --video-filter=scene --vout=dummy --scene-ratio=1 --scene-prefix="$video_name" --scene-path="$snap_dir" vlc://quit

其中,$video_file 表示当前的视频文件名,$video_name 表示当前的视频名称(不包含扩展名)。我们将截图保存在快照目录下,文件名为 $video_name.png。如果文件已经存在,则跳过截图操作。

通过这个简单的 Shell/Bash 脚本,我们就可以方便地批量截图了。当然,如果你需要更加复杂的批量操作,还可以进一步完善这个脚本。