Как и обещал, попробовал обойтись без промежуточных сборок/разборок матрешки. Получилось.
Чего я добивался? В этот раз я хотел уменьшить файл MKV путем перекодирования 6-канального звука в стерео. В итоге файл сжался до приемлемых 1.5 гигов.
Итак, рецепт.
Беру исходную матрешку и узнаю номера аудиотреков (трек 0 - аглицкая озвучка, трек 1 - русская):
v:~/t$ mplayer -vo null -ao null -frames 0 -v ~/bigone/kinozal/superbad.2007.mkv | grep aid
[mkv] Track ID 2: audio (A_AC3) "English", -aid 0, -alang eng
[mkv] Track ID 4: audio (A_AC3) "Rus DD5.1", -aid 1, -alang rus
Обкурившись мануалами (mplayer man ; mencoder man) сочинил команду перекодирования. Видеопоток копирует один в один, аудио (трек 0) перекодирует кодеком vorbis. В итоге получается авишник с исходным видео и пережатым аудиотреком (таких авишников я сделаю два - один с аглицкой звуковой дорожкой, другой с русской):
mencoder ~/bigone/kinozal/superbad.2007.mkv \
-o videoout.avi \
-oac lavc \
-aid 0 \
-ofps 23.976 \
-ovc copy \
-mc 0 \
-lavcopts acodec=vorbis:abitrate=224
в выводе команды увидел слова типа "пропуск кадров!". И они мне не понравились. Не хочу пропускать кадры. Полез обратно в маны, нашел:
However, in some cases they can cause unnecessary skipping and duplication of frames, and possibly slight A/V desync, when used with proper input (of course, A/V sync issues apply only if you process or copy the audio track while transcoding the video, which is strongly encouraged). Therefore, you may have to switch to basic A/V sync with the -mc 0 option, or put this in your ~/.mplayer/mencoder config file, as long as you are only working with good sources (DVD, TV capture, high quality MPEG-4 rips, etc) and not broken ASF/RM/MOV files.
после чего прикрутил опцию-mc 0
и все заверте...
В итоге: ворбис - быстро кодирует. 500 фреймов/сек. в отличие от других кодеков, у тех до 300 фреймов/сек. максимум. Но. vorbis обламывает плеер при попытке проиграть. Хоть и не всегда - но что-то тут не так. Попробую другой кодек. AAC:
mencoder ~/bigone/kinozal/superbad.2007.mkv \
-o videoout.en.avi \
-oac faac \
-aid 0 \
-ofps 23.976 \
-ovc copy \
-mc 0 \
-faacopts br=224
Плеер играет нормально. Попробую пересобрать матрешку, через пользование mmg получил такую команду:
"mkvmerge" -o "/home/v/t/superbad.mkv" --language 1:eng --track-name 1:EngAud -a 1 -D -S /home/v/t/videoout.en.avi --language 1:rus --track-name 1:RusAud -a 1 -D -S /home/v/t/videoout.rus.avi --language 1:eng --track-name 1:vid --default-track 1:yes --display-dimensions 1:640x344 --language 3:eng --track-name 3:English --language 5:rus --track-name "5:Rus (episodes)" --default-track 5:yes -d 1 -s 3,5 -A /home/v/bigone/kinozal/superbad.2007.mkv --track-order 2:1,0:1,1:1,2:3,2:5
запустил ее и получил отлуп:
Error: '/home/v/t/videoout.en.avi' track 1: Unknown/unsupported audio format 0x706d for this audio track.
Типа, AAC не понимает. Да и хрен с ним, я как знал, что полезнее MP3 ничего нет. Еще один прогон енкодера с использованием кодека MP3 для обеих звуковых дорожек:
mencoder ~/bigone/kinozal/superbad.2007.mkv \
-o videoout.en.avi \
-oac mp3lame \
-aid 0 \
-ofps 23.976 \
-ovc copy \
-mc 0 \
-lameopts preset=standard
mencoder ~/bigone/kinozal/superbad.2007.mkv \
-o videoout.rus.avi \
-oac mp3lame \
-aid 1 \
-ofps 23.976 \
-ovc copy \
-mc 0 \
-lameopts preset=medium
Получил два авишника. Пересбор матрешки (повторяю, эту команду я не руками писал, это я нащелкал мышой в mmg) - звук возьму из двух моих авишников, видео и субтитры из исходной матрешки и склею все это в результирующую матрешку:
"mkvmerge" -o "/home/v/t/superbad.mkv" --language 1:eng --track-name 1:vid --default-track 1:yes --display-dimensions 1:640x344 --language 3:eng --track-name 3:English --language 5:rus --track-name "5:Rus (episodes)" --default-track 5:yes -d 1 -s 3,5 -A /home/v/bigone/kinozal/superbad.2007.mkv --language 1:eng --track-name 1:EngAud -a 1 -D -S /home/v/t/videoout.en.avi --language 1:rus --track-name 1:RusAud -a 1 -D -S /home/v/t/videoout.rus.avi --track-order 0:1,1:1,2:1,0:3,0:5
Просмотр в плеере показал вполне удобоваримый результат. Мне подходит.
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2008-12-30
Matroska recode
Подписаться на:
Комментарии к сообщению (Atom)
Архив блога
-
▼
2008
(192)
-
▼
декабря
(31)
- Mat{rix|roska} reloaded (again)
- Matroska recode
- HuMan: tr
- Матрешка разбирается и собирается
- Разгоняя сервис
- Рождествоновогоднее
- Закэшировал DNS
- А некоторые догадались!
- Кэширующий DNS
- Кто за кем бегать должен
- Вижу то, что готов увидеть
- Бюрократия или хаос
- Новогоднее
- Гляделки
- Калчак
- OGMRip посчупал
- ODF@WWW
- Измена!
- Разработчики
- Два ведра
- Закачалка
- Изячное решение задолбавших скругленных углов
- Тормозит "мускуль"?
- Модели данных (СУБД)
- Тяпница это святое
- Линувсякое
- Карате?
- Видео-невидимо
- Все плохо и все хорошо
- Гайдар с Шендеровичем
- Ай молодца!
-
▼
декабря
(31)
Ярлыки
linux
(241)
python
(191)
citation
(186)
web-develop
(170)
gov.ru
(159)
video
(124)
бытовуха
(115)
sysadm
(100)
GIS
(97)
Zope(Plone)
(88)
бурчалки
(84)
Book
(83)
programming
(82)
грабли
(77)
Fun
(76)
development
(73)
windsurfing
(72)
Microsoft
(64)
hiload
(62)
internet provider
(57)
opensource
(57)
security
(57)
опыт
(55)
movie
(52)
Wisdom
(51)
ML
(47)
driving
(45)
hardware
(45)
language
(45)
money
(42)
JS
(41)
curse
(40)
bigdata
(39)
DBMS
(38)
ArcGIS
(34)
history
(31)
PDA
(30)
howto
(30)
holyday
(29)
Google
(27)
Oracle
(27)
tourism
(27)
virtbox
(27)
health
(26)
vacation
(24)
AI
(23)
Autodesk
(23)
SQL
(23)
humor
(23)
Java
(22)
knowledge
(22)
translate
(20)
CSS
(19)
cheatsheet
(19)
hack
(19)
Apache
(16)
Klaipeda
(15)
Manager
(15)
web-browser
(15)
Никонов
(15)
functional programming
(14)
happiness
(14)
music
(14)
todo
(14)
PHP
(13)
course
(13)
scala
(13)
weapon
(13)
HTTP. Apache
(12)
SSH
(12)
frameworks
(12)
hero
(12)
im
(12)
settings
(12)
HTML
(11)
SciTE
(11)
USA
(11)
crypto
(11)
game
(11)
map
(11)
HTTPD
(9)
ODF
(9)
Photo
(9)
купи/продай
(9)
benchmark
(8)
documentation
(8)
3D
(7)
CS
(7)
DNS
(7)
NoSQL
(7)
cloud
(7)
django
(7)
gun
(7)
matroska
(7)
telephony
(7)
Microsoft Office
(6)
VCS
(6)
bluetooth
(6)
pidgin
(6)
proxy
(6)
Donald Knuth
(5)
ETL
(5)
NVIDIA
(5)
Palanga
(5)
REST
(5)
bash
(5)
flash
(5)
keyboard
(5)
price
(5)
samba
(5)
CGI
(4)
LISP
(4)
RoR
(4)
cache
(4)
car
(4)
display
(4)
holywar
(4)
nginx
(4)
pistol
(4)
spark
(4)
xml
(4)
Лебедев
(4)
IDE
(3)
IE8
(3)
J2EE
(3)
NTFS
(3)
RDP
(3)
holiday
(3)
mount
(3)
Гоблин
(3)
кухня
(3)
урюк
(3)
AMQP
(2)
ERP
(2)
IE7
(2)
NAS
(2)
Naudoc
(2)
PDF
(2)
address
(2)
air
(2)
british
(2)
coffee
(2)
fitness
(2)
font
(2)
ftp
(2)
fuckup
(2)
messaging
(2)
notify
(2)
sharepoint
(2)
ssl/tls
(2)
stardict
(2)
tests
(2)
tunnel
(2)
udev
(2)
APT
(1)
Baltic
(1)
CRUD
(1)
Canyonlands
(1)
Cyprus
(1)
DVDShrink
(1)
Jabber
(1)
K9Copy
(1)
Matlab
(1)
Portugal
(1)
VBA
(1)
WD My Book
(1)
autoit
(1)
bike
(1)
cannabis
(1)
chat
(1)
concurrent
(1)
dbf
(1)
ext4
(1)
idioten
(1)
join
(1)
krusader
(1)
license
(1)
life
(1)
migration
(1)
mindmap
(1)
navitel
(1)
pneumatic weapon
(1)
quiz
(1)
regexp
(1)
robot
(1)
science
(1)
seaside
(1)
serialization
(1)
shore
(1)
spatial
(1)
tie
(1)
vim
(1)
Науру
(1)
крысы
(1)
налоги
(1)
пианино
(1)
Комментариев нет:
Отправить комментарий