ffmpeg - 对脚本输出做一些事情

标签 ffmpeg

我很懒 :) 所以我想在我的网络上自动化一些事情。目前我正在运行一个脚本,该脚本会自动下载我每周观看的系列。根据下载的内容,另一个脚本会在网络上搜索字幕。但是,有些下载带有字幕,因此无需搜索字幕。如果文件有正确的字幕,我想检查每次下载的字幕并得到通知(或更好地移动文件)。

我从以下内容开始:

find /volume2/Downloads/ -type f -mmin -30 | while IFS= read -r file; do
    ffmpeg -i "${file}"
done

这有效,并向我显示了 ffmpeg 命令对每个超过 30 分钟的文件的输出。我想使用 ffmpeg 给出的结果,以便当输出中出现某些字符时,我会通过邮件收到通知。然而,我的 Linux 脚本编写技能停留在我得到的脚本上。我是一名网络开发人员,所以我了解这样的脚本背后的逻辑,但不了解具体的代码或命令。

我正在寻找的角色:
  • (英文):字幕:
  • (dut): 字幕:

  • 这可以做到吗?

    编辑:

    我做了更多的研究并对我的脚本进行了一些更改:
    find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do
        if ffmpeg -i "${file}" | grep -q '(dut): Subtitle:'; then
            echo "matched"
        fi
    done
    

    它不是“匹配”而是显示 ffmpeg 输出,但这可能是朝着正确方向迈出的一步?

    最佳答案

    您需要将标准错误重定向到标准输出。

    find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do
       if ffprobe -i "${file}" 2>&1 | grep -q '(dut): Subtitle:'; then
           echo "matched"
       fi
    done
    

    unix stackexchange 中讨论了为您的场景使用管道的问题。

    关于ffmpeg - 对脚本输出做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47091585/

    相关文章:

    c++ - 从 C++ 程序调用 ffmpeg

    bash - FFmpeg 批量转换多个文件

    python - 在 Python 中使用 OpenCV 从文件中打开视频

    ffmpeg - 具有 LGPL 元素的 gstreamer rtsp 流媒体链

    c - 编译器会处理像 if(0) 这样无用的代码吗?

    linux - ffmpeg livestream by ip camera 有 DTS 问题

    php - ffmpeg批处理命令修剪文件夹中的所有mp3

    cocoa - 从 libswscale 中获取 PIX_FMT_YUYV422

    audio - FFmpeg 转换为 FLAC,包括艺术

    c - 使用 ffmpeg 或 OpenCV 处理 .Raw 图像