Сообщения

Сообщения за Март, 2012

Разрезаем lossless. Часть 2: непосредственно нарезка.

Итак, у нас есть cue файл с кодировкой utf-8 и один flac/tta файл. Что будем делать дальше, как это нарезать? Все очень просто. Воспользуемся для этого прекрасным набором утилит shnutils. Скачать их можно тут http://www.etree.org/shnutils/shntool/ . Для Windows сборки находятся тут - http://www.etree.org/shnutils/shntool/dist/win32/ . Заодно на сайте есть список форматов, поддерживаемых приложением, но, насколько я помню, этим дело не ограничивается и к приложению можно прикрутить свой decoder/encoder по типу ffmpeg'a. Выполняем:
cuebreakpoints file.cue | shnsplit -o flac -a prefix file.flac  Проще некуда, и на выходе у нас получаются файлы flac с префиксом prefix, которые, собственно, являются вашими треками. Как разобраться с тегами рассмотрим в следующей части статьи.

Разрезаем lossless. Часть 1: японский tta/cue.

Тем кому доводилось слушать музыку с японских comiket'ов наверняка доводилось сталкиваться с форматом tta. Ничего в нем сверхъестественного нет, это такой же lossless кодек как и тот же flac только со своими плюшками. Но в этой статье будет рассмотрен вопрос иного рода, а именно, как подготовить cue-файл, содержащий японские теги треков перед нарезкой.
Отмечу сразу, что у японцев, как и у нас та же cp1251 или koi8-r, есть своя, родная, кодировка SHIFT-JIS, и большинство cue файлов записаны именно в ней. Перекодируем файлы в стандартный UTF-8: iconv -f SHIFT-JIS -t UTF-8 input.cue > export.cue Готово. Но что если возникает ошибка "недопустимой последовательности символов" на какой либо из строк? В свое время пришлось долгу гуглить на эту тему, пока я не нашел решение проблемы. Для начала стоит убедиться что перед нами файл именно с японскими тегами, и вы уверены в том то кодировка выбрана верно. Так в чем же проблема? Скорей всего заумные авторы песен использовали в на…

Qt. Небольшое замечание по поводу работы QSortFilterProxyModel.

В первую очередь при работе с QSortFilterProxyModel не нужно забывать что этот класс образует лишь прослойку между реальной моделью и представлением. Официальная документация и книги обычно останавливается на том, что для того чтобы работать с этим классом, достаточно переопределить 2 метода:virtual boollessThan ( const QModelIndex & left, const QModelIndex & right ) const для сортировки. А так же virtual boolfilterAcceptsRow ( int source_row, const QModelIndex & source_parent ) const для фильтрации. Но о чем еще не стоит забывать, и о чем забыл я? Важно заметить что любое изменение исходной модели должно отражать изменение QSortFilterProxyModel. В частности, при изменении данных в исходной модели обязательно посылайте сигнал voiddataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ) иначе ваше приложение не только не отобразит изменения, но и попросту может работать неверно из-за несоответствии данных. Используйте другие методы оповещения кажд…

Работа с mkvmerge, или как добавить звуковые дорожки в видео.

Казалось бы, вполне обыденный вопрос, с которым может столкнуться любой желающий посмотреть или сохранить фильм/мультфильм/аниме у себя на компьютере. Вроде, зашел на rutracker, скачал фильм - наслаждайся. Но что если вы столкнетесь с вполне частой надписью в описании - external (ext)? Легко ли подключить звуковой файл, "врезать" звук?
А что если звуковых дорожек к файлу несколько, да ещё и к каждой серии (прим. аниме из 50 серии или больше :) ). Что делать с этим лесом файлов, все делать вручную для каждого файла в течении дня?
Как раз тут я и затрону некоторые из этих вопросов, потому что не раз появлялась нужда проделывать подобную операцию "слияния".
Это не будет слишком длинная статья, и постараюсь по-быстрому разложить все поставленные вопросы по полочкам.

Наш главный инструмент статьи - программа для работы с контейнером mkv: mkvmerge (утиты из набора mkvtoolnix). Советую обзавестись как консольным вариантом, так и графическим.
http://www.bunkus.org/videotoo…

Старт

Решил все таки завести небольшой блог, где буду описывать ряд проблем (их решения), событий и т.п. Так, собственно, в блогах и принято. По большей части всякое разное будет касаться вопросов программирования, администрирования, автоматизации, IT сферы, но вопросы жизни, своей страны тоже грех упускать. Так что понеслась :).