O lote FFMPEG converte a saída antes de processar todos os arquivos

0

Eu tenho um audiobook que consiste em mais de 700 arquivos ra (RealAudio) que estou tentando converter em lote em mp3 usando o ffmpeg. Os arquivos RA são nomeados como chapter-verse.ra (por exemplo, 13-01.ra)

Eu corro um script e ele chega ao processamento de 32 arquivos e depois para. Para cada arquivo, ele exibe um erro, mas o converte mesmo assim.

Aqui está meu script:

#!/bin/bash
#

outdir=/data/sounds/output
srcdir=/data/sounds

# Cleanup first
rm -f /data/sounds/output/*

ls -1 ${srcdir}/*.ra | while read file
do
    infile=$(basename $file)
    chapter=$(echo $infile | cut -f1 -d"-")
    verse=$(echo $infile | cut -f2 -d"-")
    verse=$(echo $verse | cut -f1 -d".")
    echo "File $file | Target: Chapter $chapter Verse $verse"
    echo
    ffmpeg -i $file -loglevel error -acodec libmp3lame ${outdir}/Chapter${chapter}_Verse${verse}.mp3
done

Aqui está um extrato da saída que estou recebendo:

[ac3 @ 0x221e520] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
/data/sounds/13-02.ra: Input/output error
File data/sounds/13-03.ra | Target: Chapter 13 Verse 03
data/sounds/13-03.ra: No such file or directory
File /data/sounds/13-04.ra | Target: Chapter 13 Verse 04
[ac3 @ 0x1a4d520] frame sync error
Error while decoding stream #0:0: Invalid data found when processing input
/data/sounds/13-04.ra: Input/output error
File data/sounds/13-05.ra | Target: Chapter 13 Verse 05
data/sounds/13-05.ra: No such file or directory
File /data/sounds/13-06.ra | Target: Chapter 13 Verse 06

O que é intrigante é que ele se queixa de "nenhum tal arquivo ou diretório", mas se eu simplesmente fizer o eco do comando ffmpeg (sem executá-lo), o script é executado corretamente até o final.

Quando o script é abortado, eu acho que o meu diretório de saída tem alguns arquivos nele que funcionam bem, eu só queria processar todos eles ?! Meu ambiente:

Estação de trabalho do Fedora 21

ffmpeg versão 2.4.8 Copyright (c) 2000-2015 os desenvolvedores do FFmpeg

    
por Aditya K 05.05.2015 / 16:48

1 resposta

1

Descobri isso. Isso já foi respondido aqui

A linha ffmpeg agora lê:

   < /dev/null  ffmpeg -i $file -loglevel error -acodec libmp3lame ${outdir}/Chapter${chapter}_Verse${verse}.mp3

E vai todo o caminho até o fim.

    
por 05.05.2015 / 17:29

Tags