Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 当逐行读取文件时,我只能在第一行执行ffmpeg_Bash_Video_Ffmpeg - Fatal编程技术网

Bash 当逐行读取文件时,我只能在第一行执行ffmpeg

Bash 当逐行读取文件时,我只能在第一行执行ffmpeg,bash,video,ffmpeg,Bash,Video,Ffmpeg,我正在编写一个Bash脚本,其中我逐行读取文件(这是一个常见的问题,是由ffmpeg的特殊行为引起的(在ssh中也会发生) 引用的内容处理您的案件几乎完全符合: 这里发生了什么?让我们看第一个例子。read从标准输入(fd0)读取一行,将其放入file参数中,然后执行ffmpeg。与从BASH执行的任何程序一样,ffmpeg继承了标准输入,出于某种原因,它会读取。我不知道为什么。但在任何情况下,当ffmpeg读取stdin时,会从find命令中吸取所有输入,使循环陷入饥饿状态 医生太长了,读不下

我正在编写一个Bash脚本,其中我逐行读取文件(这是一个常见的问题,是由
ffmpeg
的特殊行为引起的(在
ssh
中也会发生)

引用的内容处理您的案件几乎完全符合

这里发生了什么?让我们看第一个例子。read从标准输入(fd0)读取一行,将其放入file参数中,然后执行ffmpeg。与从BASH执行的任何程序一样,ffmpeg继承了标准输入,出于某种原因,它会读取。我不知道为什么。但在任何情况下,当ffmpeg读取stdin时,会从find命令中吸取所有输入,使循环陷入饥饿状态

医生太长了,读不下去了。 主要有两种选择:


  • 添加
    尝试在
    ffmpeg
    行上方的循环中添加另一行…
    echo Processing$line
    。或者尝试将shebang行更改为
    #!/bin/bash-xv
    while read -r line; do
        ffmpeg -i "$line" [ MORE OPTIONS ... ]
    done < <(find /home/user/ -iname "*.MP4")
    
       while IFS= read -r line <&3; do
           # Here read is reading from FD 3, to which 'file' is redirected.
       done 3<file