LINUX.ORG.RU

Снова AAC


0

0

Проблема такая - при проигрывании файлов со звуком в ААС - каналы перемешаны, в остальных - все нормально. На что думать - не знаю, дистрибутив Kubuntu 7.04. От проигрывателя не зависит - каналы не по порядку везде и всегда одинаково.

Используя Mplayer и тестовый файл в ААС изобрел - такую вещь - channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2. Вопрос в том можно ли это каким-либо образом применять автоматически если определен кодек ААС или же как-то это развести в общем случае, чтобы при использовании этого кодека кем угодно автоматически перенаправлялись каналы.

При использовании указанного перенаправления в Mplayer звук работает совершенно нормально - то есть вариант битого файла исключается, если тольео не все ААС-файлы битые. Такая же ситуация наблюдается на ещё нескольких испробованных дистрибутивах - Gentoo, Suse 10.2. Заранее спасибо за помощь.

элементарно, в ~/.mplayer/config

afm=hwac3,channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2

С командной строки это так:

sda@black:~/video> mplayer file.mkv -afm hwac3,channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2
MPlayer dev-SVN-r23698-4.2.0 (C) 2000-2007 MPlayer Team
CPU: AMD Athlon(tm) 64 Processor 3700+ (Family: 15, Model: 39, Stepping: 1)
CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2
112 audio & 235 video codecs
mplayer: could not connect to socket
mplayer: Connection refused
Failed to open LIRC support. You will not be able to use your remote control.
Menu inited: /home/sda/.mplayer/menu.conf

Playing file.mkv.
[mkv] Track ID 1: video (V_THEORA), -vid 0
[mkv] Track ID 2: audio (A_MPEG/L3), -aid 0, -alang und
[mkv] Will play video track 1.
Matroska file format detected.
VIDEO: [theo] 1280x1024 24bpp 30.000 fps 0.0 kbps ( 0.0 kbyte/s)
Opening video filter: [screenshot]
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[theora @ 0xf045c0]Theora bitstream version 30200
[theora @ 0xf045c0]544 bits left in packet 81
[theora @ 0xf045c0]7 bits left in packet 82
Selected video codec: [fftheora] vfm: ffmpeg (FFmpeg Theora)
==========================================================================
==========================================================================
Trying to force audio codec driver family hwac3...
Trying to force audio codec driver family channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2...
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
AO: [oss] 44100Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 1280 x 1024 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.25:1 - prescaling to correct movie aspect.
[swscaler @ 0xefd5e0]SwScaler: using unscaled yuv420p -> bgr24 special converter
VO: [xv] 1280x1024 => 1280x1024 Planar YV12
No bind found for key 'MOUSE_BTN0'. 7% 19 0
A: 39.3 V: 39.3 A-V: 0.006 ct: 0.015 1181/1181 35% 6% 0.8% 19 0

sda00 ★★★
()
Ответ на: комментарий от sda00

Спасибо большое, но до этого я и сам доехал и даже перенаправление каналов настроил, только пускать mplayer из консоли каждый раз - это надо или помнить или держать под рукой настройку перенаправления, то не очень удобно - а зашить в конфиг - так это же ничего нельзя будет другого смотреть что не в ААС. Поэтому и спросил, как автоматизировать этот процес.. есть конечно вариант - написать скрипт коорый пускает Mplayer и grep-ит его вывод на предмет ААС и соответственно номер строк выводит - если ноль пускать так если не ноль - иначе. Но это тоже зверство, хоть и по-линуксовому =). А вообще - кто скажет почему они перепутаны?

Вот кстати для справки - у меня каналы переставлены так: channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2

Erelwar
() автор топика
Ответ на: комментарий от Erelwar

в принципе да, скриптик на 4 строчки... перепутаны - хз, достал двд - норм всё, хотя 5.1 у меня нет, тупое стерео, но всё же...

sda00 ★★★
()
Ответ на: комментарий от sda00

Вопрос - как сделать чтобы Mplayer дал свой вывод и завершился без проигрывания? Можно конечно -seek 20:00:00 но это уж больно по-зверски. Или как направить ему что-либо на стандартный ввод?

По поводу каналов - в ДВД у меня тоже все хорошо, такая беда только там где в ААС закодировано, часто такое встречается в Matroska-контейнерах, который мне и поясчастливилось встретить.

Erelwar
() автор топика
Ответ на: комментарий от Erelwar

Ежели желаете - я нарисую весь скрипт, а нет - так вот Вам на размышление:

ffmpeg -i file.avi 2>&1 | grep Audio

вопросы?

sda00 ★★★
()
Ответ на: комментарий от sda00

Так как аудиопоток распознался почему-то как 0x0000, что в принципе достаточно для идентификации - родился вот такой скрипт:

if [ "`ffmpeg -i "$1" 2>&1 | grep -c 0x0000`" = "0" ] then gmplayer "$1" channels=6 else gmplayer "$1" -af channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2 channels=6 fi

Может кому ещё пригодится.

Erelwar
() автор топика
Ответ на: комментарий от Erelwar

Так как аудиопоток распознался почему-то как 0x0000, что в принципе достаточно для идентификации - родился вот такой скрипт:

if [ "`ffmpeg -i "$1" 2>&1 | grep -c 0x0000`" = "0" ]

then gmplayer "$1" channels=6

else gmplayer "$1" -af channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2 channels=6

fi

Может кому ещё пригодится.

(исправленный вариант)

Erelwar
() автор топика
Ответ на: комментарий от Erelwar

Так как ffmpeg выводит уж очень много разных форматов кодирования и добавлять из в grep нет никакого резона и желания - ещё один вариант скрипта. Да, он медленный и не совсем логичный, но он работает и то как он работает - меня устраивает. Вот он:

if [ "`mplayer -vo null -ao null -ss 20:00:00 "$1" 2>&1 | grep -c

"AAC"`" = "0" ]

then gmplayer "$1" -channels 6

else gmplayer "$1" -af channels=6:6:1:0:2:1:0:4:4:3:5:5:3:2 -channels 6

fi

Не требует ничего кроме Mplayer'a.

Erelwar
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.