
ファイルがいくつかあります。
Joapira___BERLINA_DEL_HIERRO.mp4
Joapira___EL_BAILE_DEL_VIVO.mp4
Joapira___EL_CONDE_CABRA.mp4
Joapira___FLAIRE.mp4
Joapira___MAZULKA_DEL_HIERRO.mp4
Joapira___MEDA_A_MANOLITO_DIAZ_ARTESANO_TALLISTA.mp4
ffmpeg
GNUを使って別の形式に変換したいですparallel
。たとえば、flacに変換します。
parallel --bar ffmpeg -i "{}" -map_metadata 0 "{/.}.flac" ::: *
それともmp3に変換するには
parallel --bar ffmpeg -i "{}" -vn -ar 44100 -ab 128k -map_metadata 0 "{/.}.mp3" ::: $@
ただし、このプロセスは永久に続行され、最初のファイルは常に失われます。なぜ?
情報
Fedora 22を使用しています
GNU パラレル 20160222
そして
ffmpeg バージョン N-80953-gd4c8e93-statichttp://johnvansickle.com/ffmpeg/
修正する
不思議です。試してみました。ffmpeg バージョン 2.6.8(Fedoraに付属)動作します!最新の静的ビルドであるgitを使用してもそうではありません。 :-(
アップデート2
ffmpegを実行してps auxwww
検索すると、状態のあるすべてのジョブが表示されます。リエル、状態が次のような欠落ファイルコマンドを除いて時間。
GNU パラレル状態の保存S+しかし、時には次のように変更されます。右+。
マニュアルページにはps
次の内容が記載されています。
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped by job control signal
t stopped by debugger during the tracing
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by its parent
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group
たぶんこれが問題を理解するのに役立ちます。
答え1
解決策は、@OleTangeがコメントで提案したようにParallelの新しいバージョンに更新することです。つまり、GNU parallel 20161122
すべてが再びうまく機能します。
一重引用符を使用してシェルの対話からコマンドを保護するのが最善です。例:
parallel --bar 'ffmpeg -i {} -map_metadata 0 {/.}.flac' ::: *
そして
parallel --bar 'ffmpeg -i {} -vn -ar 44100 -ab 128k -map_metadata 0 {/.}.mp3' ::: $@