업데이트 2

업데이트 2

파일이 몇개 있어요

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

ffmpegGNU를 사용하여 다른 형식으로 변환하고 싶습니다 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' ::: $@

관련 정보