Хорошо, это заставило меня почесать голову - тем более, что я пишу сценарий nOOb, и мой опыт * nix является базовым, если не сказать больше.
Резюме
Необходимо определить, почему сценарий оболочки для преобразования файловых файлов из одного медиа-контейнера в другой генерирует ошибки и проблемы.
скрипт
У меня есть сценарий оболочки, предоставленный другом. Сценарий используется на компьютере с Ubuntu 10.10 для преобразования видеофайлов MKV в MP4 (MPEG-4). Рассматриваемый сценарий выглядит следующим образом (простите за отсутствие комментариев):
#!/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
проблема
пропустить ошибки при запуске a52dec
Первая ошибка возникает только на выбранных файлах MKV, где при выполнении a52dec выполняется процесс преобразования звука.
Что происходит, так это то, что ошибка пропускается снова и снова в окне консоли / терминала. Процесс a52dec создал ожидаемое имя файла (filename.wav), но продолжает генерировать эти пропускаемые сообщения и больше не продолжает (несмотря на то, что он ушел на полчаса в одну точку, чтобы посмотреть, удастся ли решить проблему)
Если посмотреть на вывод Mediainfo для нескольких разных файлов, то кажется, что все идет не так, как этот файл включает 5.1-канальное аудио. Я, конечно, понятия не имею, как бы я преодолел эту проблему.
IsoMedia: команда не найдена
Это происходит все время, когда скрипт завершает работу, что говорит о том, что n00b не может найти нужное приложение.
Тем не менее, я не могу найти этот пакет, или если часть более крупного пакета, который он должен установить.
Еще более запутанно то, что этот файл не вызывается во время выполнения скрипта, а вызывается только после запуска команды rm для очистки.
Дополнительная информация
Пример вывода Mediainfo для файла MKV, который транскодирует без проблем
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 : High@L4.1
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%)
Пример вывода Mediainfo для файла MKV, который вызывает проблемы 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 : High@L3.1
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%)