gnu paralelamente ao ffmpeg não processa o primeiro arquivo

3

Eu tenho alguns arquivos

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

que eu quero converter para alguns outros formatos com ffmpeg e GNU parallel . Por exemplo, para convertê-los em flac eu faço

parallel --bar ffmpeg -i "{}" -map_metadata 0 "{/.}.flac" ::: *

ou para convertê-los para mp3 eu faço

parallel --bar ffmpeg -i "{}" -vn -ar 44100 -ab 128k -map_metadata 0 "{/.}.mp3" ::: $@

mas o processo continua para sempre e o primeiro arquivo está sempre ausente. Por quê?

Info

Eu estou no Fedora 22 usando

GNU paralelo 20160222

e

ffmpeg versão N-80953-gd4c8e93-static link

Atualizar

Fascinante, eu tentei com o ffmpeg versão 2.6.8 (vem com o Fedora) e funciona !! E mesmo com a construção estática mais recente do git, isso não acontece. : - (

Atualização 2

Quando eu executo ps auxwww e procuro ffmpeg eu vejo todas as tarefas com o estado Rl , exceto pelo comando do arquivo que está faltando, que possui o estado T .

O GNU paralelo tem o estado S + , mas às vezes durante o processamento das alterações dos arquivos de trabalho para R + .

A página man de ps diz o seguinte sobre os estados:

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

Talvez isso ajude a entender o problema.

    
por erik 10.09.2016 / 13:35

1 resposta

1

A solução é - como sugerido por @OleTange em um comentário - para atualizar para uma versão mais nova de paralelo, ou seja, GNU parallel 20161122 . Tudo funciona de novo.

E é melhor proteger os comandos da interação de shell com aspas simples, ou seja:

parallel --bar 'ffmpeg -i {} -map_metadata 0 {/.}.flac' ::: *

e

parallel --bar 'ffmpeg -i {} -vn -ar 44100 -ab 128k -map_metadata 0 {/.}.mp3' ::: $@
    
por 04.12.2016 / 17:39