Ok, esse aqui me faz coçar a cabeça - especialmente porque sou um nOOb de script, e minha experiência * nix é básica para dizer o mínimo.
Resumo
É necessário identificar por que o script de shell para conversão de arquivadores de um contêiner de mídia para outro está gerando erros e problemas.
Script
Eu tenho um script de shell fornecido por um amigo. O script é usado em uma máquina Ubuntu 10.10 para converter arquivos de vídeo MKV para MP4 (MPEG-4). O roteiro em questão é o seguinte (perdoe a falta de comentários):
#!/usr/bin/env bash
if [ -f $1 ] ; then
filename=$(basename $1)
extension=${filename##*.}
name=${filename%.*}
fname=$1
video='mediainfo --Inform=Video\;%ID% "${fname}"'
audio='mediainfo --Inform=Audio\;%ID% "${fname}"'
fps='mediainfo --Inform=Video\;%FrameRate% "${fname}"'
'mkvextract tracks ${fname} 1:${name}.h264 2:${name}.ac3'
'a52dec ${name}.ac3 -o wavdolby > ${name}.wav'
'faac ${name}.wav -o ${name}.m4a'
'MP4Box -add ${name}.m4a -add ${name}.h264 -fps $fps ${name}.mp4'
'rm ${name}.m4a ${name}.ac3 ${name}.h264 ${name}.wav'
fi
Problema
pula erros ao executar a52dec
O primeiro erro ocorre apenas em arquivos MKV selecionados, onde é executada a52dec como parte do processo de conversão de áudio.
O que acontece é que um erro de pulo continua aparecendo repetidamente na janela do console / terminal. O processo a52dec criou o nome do arquivo esperado (filename.wav), mas continua gerando essas mensagens ignoradas e não prossegue mais (apesar de ter saído por meia hora em um ponto apenas para ver se o problema ocorreria)
Olhando para a saída do Mediainfo em alguns arquivos diferentes, parece que as coisas estão se soltando onde o arquivo inclui áudio de 5.1 canais. É claro que não tenho idéia de como superar esse problema.
IsoMedia: comando não encontrado
Isso acontece o tempo todo quando o script termina a execução, o que, para este n00b, sugere que não é possível encontrar o aplicativo em questão.
No entanto, eu não consigo encontrar este pacote, ou se parte de um pacote maior que um é para instalar.
Mais confuso, esse arquivo não é chamado em nenhum ponto durante o script e só é chamado depois que o comando rm para limpeza é executado.
Informações adicionais
Exemplo de saída do Mediainfo para um arquivo MKV que transcodifica sem problemas
General
Unique ID : 233323168834975742075458986504469215458 (0xAF886862D1B0BB1B9427E04C90A1F8E2)
Complete name : \192.168.2.5\video\sorted\CSI NY\CSI.New.York.S07E10.720p.HDTV.X264-DIMENSION.mkv
Format : Matroska
File size : 1.09 GiB
Duration : 41mn 30s
Overall bit rate : 3 768 Kbps
Encoded date : UTC 2010-12-03 20:40:51
Writing application : mkvmerge v3.1.0 ('Happy up here') built on Jan 19 2010 12:09:24
Writing library : libebml v0.7.9 + libmatroska v0.8.1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 8 frames
Format settings, GOP : M=6, N=12
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 30s
Bit rate : 3 381 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.153
Stream size : 982 MiB (88%)
Writing library : x264 core 110 r1804 e89c4cf
Encoding settings : cabac=1 / ref=8 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=5 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=3381 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Language : English
Audio
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 41mn 30s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 114 MiB (10%)
Exemplo de saída do Mediainfo para um arquivo MKV que causa problemas de a52dec
General
Unique ID : 173353892635048029459501626055714892286 (0x826ABECAAEC6D2638DD0EC376D6369FE)
Complete name : \192.168.2.5\video\sorted\Conan\conan.2010.11.25.jim.parsons.720p.hdtv.x264-bff.mkv
Format : Matroska
File size : 1.09 GiB
Duration : 42mn 1s
Overall bit rate : 3 720 Kbps
Encoded date : UTC 2010-11-26 05:45:43
Writing application : mkvmerge v3.1.0 ('Happy up here') built on Jan 19 2010 12:09:24
Writing library : libebml v0.7.9 + libmatroska v0.8.1
Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 42mn 1s
Bit rate : 3 272 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.118
Stream size : 961 MiB (86%)
Writing library : x264 core 85 r1442tw
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=30 / sliced_threads=0 / nr=0 / decimate=1 / mbaff=0 / constrained_intra=0 / bframes=6 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / wpredb=1 / wpredp=0 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=2pass / mbtree=1 / bitrate=3272 / ratetol=1.0 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00
Language : English
Audio
ID : 1
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 42mn 1s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 135 MiB (12%)