如何将 find 命令的输出作为输入传送到 ffmpeg

如何将 find 命令的输出作为输入传送到 ffmpeg

我有一个视频档案,我需要在档案中找到该文件,然后必须将该文件的输出用作输入ffmpeg

find /mnt/video-archieve -name 'file'.mov | ffmpeg -i - ...

我知道-它主要用于管道输入,ffmpeg但我缺少一些其他参数来使其工作。

我尝试了几种选择但都无法使其起作用。

答案1

简短回答:

find /mnt/video-archieve -name "file.mov" -exec ffmpeg -i {} \;

或者

find /mnt/video-archieve -name "file.mov" -print0 | xargs -0 -I{} ffmpeg -i {}

或者

find /mnt/video-archieve -name "file.mov" -print0 | \
    while read -d $'\0' file; do \
        ffmpeg -i "$file"; \
    done

或者

find /mnt/video-archieve -name "file.mov" -print0 | \
    while IFS= read -d '' file; do \
        ffmpeg -i "$file"; \
done

答案2

另一个简短的回答:

for f in "/mnt/video-archieve/file.mov" ; do ffmpeg -i "$f" ... ; done

相关内容