1

我们建立了一个类似于 youtube 的服务。使用此处另一篇文章中的此脚本,使用 ffmpeg 进行转换也可以正常运行:

如何设置 ffmpeg 队列?

#!/bin/bash

pipe=/tmp/ffmpeg

trap "rm -f $pipe" EXIT

# creating the FIFO    
[[ -p $pipe ]] || mkfifo $pipe

while true; do
# can't just use "while read line" if we 
# want this script to continue running.
read line < $pipe

# now implementing a bit of security,
# feel free to improve it.
# we ensure that the command is a ffmpeg one.
[[ $line =~ ^ffmpeg ]] && bash <<< "$line"
done

当我一一发送到命名管道时,这非常有效。当我同时发送多个时,第二个将终端排队到第一个完成的点。如果尝试超过 2 次,则第三次将不会被转码。

因此,我尝试使用后台发送解决方法以释放终端(只需删除 echo 命令并关闭 ssh 连接)但这不起作用,然后我使用 screen -X 但也没有运气。也许有人有一个好主意来处理这个问题。

我想做的是:每个需要转码的上传视频都会向命名管道发送回声。FIFO 应该匹配但不阻塞终端。所以我认为我需要一些东西来真正排队 ffmpeg 输入。

最亲切的问候弗朗索瓦

4

0 回答 0