bash并行编码和上传

bash并行编码和上传

我正在编写一个 bash 脚本,用于使用 ffmpeg 以特殊格式对视频进行编码。为了保存生成的视频,我想在编码完成后立即上传视频。因此我想在我的脚本中使用并行处理。

一个简短的例子:

 #!/bin/bash

 uploading() {
 upload $1
 }

 encoding() {
 ffmpeg video video_encoded

 uploading $video_encoded
 }

如果我的编码比上传功能更快,它将创建一个新的后台进程。这不是我想要的。想要的行为是,如果上传过程仍然存在,我的编码函数应该将所需的参数(例如视频路径)保存在某种队列中,以便上传函数在其末尾检查队列是否为空并推送和弹出按要求。

bash 中可能有这样的事情吗?

先谢谢了!

答案1

有两个脚本。一种用于管理视频编码,另一种用于上传。编码完成后,使用放置文件的假脱机目录(如果仅需要视频本身,则使用符号链接;如果需要存储更多信息,则使用文本文件)。

上传脚本应每 n 秒检查一次 spool 目录中是否有新文件要上传。成功上传后,上传脚本将从假脱机目录中删除文件。

从主/编码脚本生成上传脚本。所有文件上传成功后,您可以安全地终止卸载器脚本(spool 目录为空;非空目录意味着上传尚未完成/成功)。

相关内容