![如何並行運行即時 ffmpeg(管道)轉換?](https://rvso.com/image/154453/%E5%A6%82%E4%BD%95%E4%B8%A6%E8%A1%8C%E9%81%8B%E8%A1%8C%E5%8D%B3%E6%99%82%20ffmpeg%EF%BC%88%E7%AE%A1%E9%81%93%EF%BC%89%E8%BD%89%E6%8F%9B%EF%BC%9F.png)
答案1
如果您使用 GNU Parallel 那麼這有效:
parallel 'ffmpeg -i {} -f wav - | opusenc --bitrate 38 - {.}.opus' ::: *m4a
也許這已經夠好了?
它還有一個額外的好處,即每個 cpu 線程只運行 1 個作業,因此如果您有 1000 個文件,您的機器不會過載。
答案2
我想出了這個結構(... &)
,但我不確定為什麼它有效:
for f in R*.mp3
do
(time ffmpeg -loglevel 0 -i "$f" -ac 1 -y "${f%mp3}new.mp3" && date && ls -l "$f" &)
done
有 4 個文件:
real 0m0.784s
user 0m0.795s
sys 0m0.048s
So 10 Sep 2023 16:36:43 UTC
-rw-r--r-- 1 root root 1363436 10.Sep 10:04 REC-005.mp3
real 0m1.037s
user 0m1.064s
sys 0m0.040s
So 10 Sep 2023 16:36:43 UTC
-rw-r--r-- 1 root root 1540076 10.Sep 10:04 REC-003.mp3
real 0m1.822s
user 0m1.882s
sys 0m0.055s
So 10 Sep 2023 16:36:44 UTC
-rw-r--r-- 1 root root 2948588 10.Sep 10:04 REC-002.mp3
real 0m2.196s
user 0m2.253s
sys 0m0.061s
So 10 Sep 2023 16:36:44 UTC
-rw-r--r-- 1 root root 3402476 10.Sep 10:04 REC-004.mp3
最大的文件最後結束。我有time
一個bash- list
。但如果沒有 (...&) 我也會得到「停止」的作業(有未展開的變數)。