понедельник, 30 апреля 2012 г.

TRP to MPG: перекодирование записей в формате Mpeg-2

Что нам понадобиться


a) Программы для работы с контейнерами:

TSDoctor [скачать]
DVR Studio Pro [скачать]
tsMuxeR [скачать]
TMPGEnc MPEG Editor [скачать]

b) Программы для обработки звука:

Adobe Audition
WAV to AC3 Encoder [скачать] (если отредактированный звук нужно сохранить в AC3)
OJOsoft Audio Converter [скачать] (если отредактированный звук нужно сохранить в MP2)

Порядок действий


1) Конвертируем TRP в TS.
Вопреки расхожему в интернете мнению, TS - это не тоже самое, что TRP. Поэтому просто переименовать TRP в TS - это не решение. Существует много транспортных контейнеров таких как TS, M2TS, TRP, REC и т. д., все они имеют отличия, хотя цель их использования одна - исправления ошибок транспортных средств, будь то плохой сигнал со спутника или царапины на Blu-ray диске. Поэтому в транспортные контейнеры добавлено много дополнительных meta-данных, значительно увеличивающих их объем по сравнению с другими контейнерами типа AVI или MKV.
По идее, перевести TRP в TS (т. е. сделать remux) - задача не сложная, но почему то я кроме программ H.264TS Cutter и TS Doctor больше нигде такой функции не нашел (для Mpeg-2 в контейнере TRP, вроде, еще программа Mpeg-VCR подходит, не проверял). В нашем случае этого достаточно, поскольку для TRP, содержащего видео в H.264, подходит H.264TS Cutter, а для TRP, содержащего видео в Mpeg-2, подходит TS Doctor. Наоборот сделать, причем, не сработает.
Примечание. Если не нужно редактировать звук, а обрезка видео производится только вначале и в конце записи, можно сразу сохранять TS в MPG и наслаждаться просмотром.
2) Извлечь звуковой поток из TS и положить его в MPA.
3) Перекодировать TS в MPG.
4) Редактируем звук (если нужно): заглушаем ненужные фрагменты (с рекламой и т. п.), увеличиваем амплитуду, конвертируем звук в монотонный. В результате сохраняем без сжатия (PCM) в контейнере WAV.

5) Кодируем звук в AC3 или MP2.

6) Собираем MPG-файл с отредактированной звуковой дорожкой.
7) Вырезаем ненужные фрагменты. Сохраняем конечный MPG-файл.
 

Инструкция


1) 
a) Запускаем TSDoctor. Выбираем File->Open. Выбираем наш TRP-файл.

 
b) Обрезаем наше видео по краям (в начале и в конце): нажимаем кнопку Prepare cutting, указываем время, с которого начать видео ("Begin at") и которым закончить ("End at"). Нажимаем OK. Если во время этого дела вдруг появилось сообщение "DirectX error: Failed to render file", не надо обращать на него внимания.


c) Указываем место для сохранения файла TS. 
Примечание: если надо отредактировать видео, вырезая части не только с начала и с конца, то в этом случае не стоит усердствовать с обрезанием видео в программе TSDoctor, нужно лишь отрезать пару секунд в начале записи (т. к. именно в начале иногда бывают ошибки, которые в дальнейшем приводят к таким неприятным вещам как отставание звука), о таких ошибках TSDoctor, если что, сообщает после создания TS-файла ("Process successfully completed! But errors occured, please check log!" - вот такие сообщения частенько возникают из-за ошибок, возникших обычно на самой первой секунде изображения (на какой секунде произошла ошибка также указывается после подтверждения сообщения), так что эти первые секунды лучше просто отрезать, и, соответственно, начинать запись на ресивере нужно тоже не впритык, а заранее). 

2) Запускаем TSMuxer GUI. Нажимаем кнопку Add, выбираем наш TS-файл. В списке "Tracks" оставляем галочку только на звуковой дорожке (там где кодек "MPEG Audio"). Параметр "Output" выбираем "Demux". Выбираем путь для сохранения файла, нажимаем кнопку "Start muxing". В итоге имеем MPA-файл.


3) Запускаем DVR Studio Pro. Добавляем наш TS-файл. 
Прежде чем перекодировать, нужно уменьшить номинальный битрейт. Ресивер автоматом выставляет значение 15 MBit/s, хотя реально битрейт редко когда перешагивает и за 6 MBit/s. Такое превышение плохо сказывается на воспроизведении "железными" плеерами, да и вообще ни к чему. Я бы рекомендовал остановиться на значении 8 MBit/s. Заходим в меню View->Settings, на вкладке Coversion должна стоять галочка на пункте "Patch bitrate (recommended)", ставим значение "8 MBit/s". 
На вкладке Directories and Paths (всё там же - View->Settings) первый параметр ("Output path...") определяет куда будут сохраняться конечные файлы, выберите нужную папку.
Выбираем "Functions->Create MPEG File". Получаем MPG-файл (промежуточный).
Примечание 1. Если не нужно редактировать звук, а обрезка видео производится только вначале и в конце записи, то на этом всё заканчивается. Полученный MPG-файл можно уже смотреть.
Примечание 2. DVR-StudioPro , которая использовалась при написания этой статьи внезапно перестала работать (т.е. вообще отказалась запускаться). Пришлось в дальнейшем использовать версию 1.56, там есть нужные функции. Скриншоты приводятся для версии 1.56. 


4) Запускаем Adobe Audition. У меня в списке на открытие файлов MPA-файл почему-то не отобразился. При этом через выделение файла, а затем "Открыть с помощью..." файл открылся без проблем.

a) Увеличиваем амплитуду. Выбираем Effects->Amplitude->Amplify. Выбираем нужное количество децибел. Чтобы узнать сколько децибел добавить, лучше всего выбрать фрагмент с самой большой амплитудой и поэкспериментировать добавления децибел к нему, верхний предел в основном окне программы (на графике) обозначен линией, после этого всё отменить и добавить децибелы уже ко всей записи.



b) Заглушка ненужных фрагментов. Имейте ввиду, речь НЕ ОБ УДАЛЕНИИ фрагментов! Удалим мы их потом, когда вместе с видеопотоком будем редактированием заниматься. Выделяем то, что надо заглушить, выбираем Effects->Mute.


НЕ КОНВЕРТИРУЙТЕ ЗВУК В МОНО, В MPG ЕГО НЕ ЗАПИХНЕТЕ ПОТОМ!

Сохраняем результат в WAV-файл. Формат: PCM (несжатый), если будем кодировать в AC3 и Microsoft ADPCM, если будем кодировать в MP2 (простой PCM программа OJOsoft Audio Converter не понимает).

5) 
5.1) Если кодируем звук в AC3
Запускаем WAV to AC3 Encoder. Нажимаем кнопку "Add files", выбираем наш WAV-файл.Справа вверху ставим галочку на "VBR", качество (Quality) оставляем на 240. Нажимаем кнопку "Encode".


5.2) Если кодируем звук в MP2.
Запускаем OJOsoft Audio Converter. Нажимаем верхнюю кнопку "Browse", выбираем наш WAV-файл. Указываем куда сохранить резултат ("Output file name"). MP2 Profile ставим в Custom. Нажимаем кнопку "Advanced". Ставим параметры 44100 Hz, Stereo, 128 KBit/s. Нажимаем кнопку "Convert". Имеем MP2-файл.

6) Запускаем TMPGEnc MPEG Editor. Нажимаем кнопку MPEG-Tools. Нам нужна первая вкладка (Multiplexer). Указываем параметры:
Format: MPEG-2 Program (VBR)
Video input: выбираем наш MPG-файл, полученный в п.3
Audio input: выбираем наш MP2-файл или AC3-файл
Output file: выбираем путь для сохранения MPG-файла

Нажимаем кнопку Start.


7) В главном окне TMPGEnc MPEG Editor нажимаем вверху "Source". Добавляем (Add file) наш MPG-файл из п.6.



В появившемся окне "Clip editions" нажимаем кнопку "Cut-edit". Удаляем ненужные фрагменты. Для выделения удаляемых фрагментов используем кнопки Sets the start frame и Sets the end frame. Удаляем фрагмент кнопкой Cuts the current selection. Нажимаем OK
Нажимаем вверху кнопку Format. Параметр Rate Control Mode должен быть установлен на "VBR (Transcode)".
Нажимаем кнопку Output. Выбираем путь для сохранения конечного MPG-файла и жмем кнопку "Start output".
Программа TMPGEnc MPEG Editor удобно редактирует видео, перекодируя лишь маленькие фрагменты, для которых вырезали ключевые кадры. В результате этого становится возможно быстро и без вреда для качества вырезать фрагменты, начиная с абсолютно любого кадра.
В итоге имеем MPG-файл с MPEG-2 неперекодированным видеопотоком, (т. е. как со спутника, без лишних потерь) и звуком AC3.

Если в дальнейшем появится желание перевести полученный результат в формат DivX посредством VirtualDub/VirtualDubMod, лучше не открывать MPG-файл через скрипт AVISynth (как это делается, рассказано, например, в п.6 инструкции из этой статьи), а лучше использовать специальную программу VirtualDub-MPEG2, она сделана на основе VirtualDub и позволяет пользоваться теми же инструментами (за исключением добавления нескольких звуковых дорожек, которые можно присоединить и потом).

воскресенье, 29 апреля 2012 г.

TRP to MKV: перекодирование записей в формате Mpeg-4

Что нам понадобиться


a) Программы для работы с контейнерами:

H.264TS Cutter [скачать]
tsMuxeR [скачать]
MKVToolNix [скачать]
Haali Matroska Splitter [скачать] (точнее, входящую в ее комплект утилиту GDSMux)

b) Программы для обработки звука:

Adobe Audition (хотя, в принципе, хватило бы и Cool Edit'a)
Total Audio Converter [скачать]

c) Вспомогательные программы:
Avisynth [скачать]
VirtualDub [скачать] или VirtualDubMod [скачать]

Порядок действий


1) Конвертируем TRP в TS.
Вопреки расхожему в интернете мнению, TS - это не тоже самое, что TRP. Поэтому просто переименовать TRP в TS - это не решение. Существует много транспортных контейнеров таких как TS, M2TS, TRP, REC и т. д., все они имеют отличия, хотя цель их использования одна - исправления ошибок транспортных средств, будь то плохой сигнал со спутника или царапины на Blu-ray диске. Поэтому в транспортные контейнеры добавлено много дополнительных meta-данных, значительно увеличивающих их объем по сравнению с другими контейнерами типа AVI или MKV.
По идее, перевести TRP в TS (т. е. сделать remux) - задача не сложная, но почему-то я кроме программ H.264TS Cutter и TS Doctor больше нигде такой функции не нашел (для Mpeg-2 в контейнере TRP, вроде, еще программа Mpeg-VCR подходит, не проверял). В нашем случае этого достаточно, поскольку для TRP, содержащего видео в H.264, подходит H.264TS Cutter, а для TRP, содержащего видео в Mpeg-2, подходит TS Doctor. Наоборот сделать, причем, не сработает.

2) Извлечь звуковой поток из TS и положить его в MPA.

3) Извлечь видеопоток из TS и положить его в MKV.
Дело в том, что MKVMerge (из пакета MKVToolNix), которой собирается конечный MKV-файл, не работает с файлами TS, поэтому нужно создать промежуточный MKV с исходным видеопотоком. В принципе, если Вы ничего не собираетесь делать со звуком, пункт 2 можно было бы пропустить, а в промежуточный MKV-файл добавить и звуковой поток.

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

5) Кодируем звук в AAC

6) Собираем MKV-файл.

Инструкция


1) Запускаем H.264TS Cutter. Выбираем Tools->"Convert TRP/REC -> TS". Выбираем наш TRP-файл. Программа попросит выбрать аудио и видеопотоки, нужно просто всё подтвердить и указать место для сохранения файла TS.





2) Запускаем TSMuxer GUI. Нажимаем кнопку Add, выбираем наш TS-файл. В списке "Tracks" оставляем галочку только на звуковой дорожке (там где кодек "MPEG Audio"). Параметр "Output" выбираем "Demux". Выбираем путь для сохранения файла, нажимаем кнопку "Start muxing". В итоге имеем MPA-файл.


3) Запускаем gdsmux.exe (находится в папке, куда была установлена программа Haali Matroska Splitter). В рабочем поле программы нажимаем правую кнопку мыши, выбираем "Add source...". В появившемся списке оставляем галочку только на видеопотоке (с MP2 галочку снять). Выбираем путь для сохранения файла, нажимаем кнопку "Start". В итоге имеем MKV-файл с исходным изображением.



4) (необязательно) Запускаем Adobe Audition. У меня в списке на открытие файлов MPA-файл почему-то не отобразился. При этом через выделение файла, а затем "Открыть с помощью..." файл открылся без проблем.



a) Конвертирование в моно. Нажимаем клавишу F11, выбираем параметры (звук mono, взять с левого канала 100%, с правого 0%, 16 бит (хотя можно и 32 бита оставить).



b) Увеличиваем амплитуду. Выбираем Effects->Amplitude and Compression->Amplify. Выбираем нужное количество децибел. Чтобы узнать сколько децибел добавить, лучше всего выбрать фрагмент с самой большой амплитудой и поэкспериментировать добавления децибел к нему, верхний предел в основном окне программы (на графике) обозначен линией, после этого всё отменить и добавить децибелы уже ко всей записи.



c) Заглушка ненужных фрагментов. Имейте ввиду, речь НЕ ОБ УДАЛЕНИИ фрагментов! Удалим мы их потом, когда вместе с видеопотоком будем редактированием заниматься. Выделяем то, что надо заглушить, выбираем Effects->Mute



Сохраняем результат в WAV файл (звук несжатый - PCM).

5) Запускаем Total Audio Converter. Если делали пункт 4, тогда перекодируем WAV-файл, если нет - MPA-файл.



6)
Примечание. Здесь нам нужно будет точно узнавать какие участки видео надо вырезать, поэтому нам понадобится программа VirtualDub (или VirtualDubMod, всё равно какая). Ею мы будем открывать наши MKV-файлы, перематывать на нужные кадры и смотреть на какой секунде кадр находится. По идее, VirtualDubMod может сам открыть MKV-файлы, но у меня он чо-то заругался, поэтому лучше установить программу Avisynth. Программа эта является интерпретатором скриптового языка, так что надо блокнотом создать файл с таким текстом:

DirectShowSource("F:\Temp\1.mkv")

В кавычках, естественно, напишите путь к своему MKV-файлу. Файл надо будет переименовать из TXT в AVS. Такой файл и откроет без проблем VirtualDub.



Запускаем mkvmerge GUI (MKVToolNix). Добавляем (кнопка "Add") наш промежуточный MKV-файл (где видео лежит) и AAC-файл.



На вкладке Global ставим галочку "Enable Splitting...", выбираем "...after Timecodes", указываем время в виде 00:00:00.000 (часы:минуты:секунды.милисекунды). Время (границы между нужными и ненужными фрагментами) мы узнаем из VirtualDub.




Если мы поставим, например, 00:00:05, это значит что в результате мы получим 2 MKV-файла - один с первыми пятью секундами видео, другой - со всем остальным. Время пишется через запятую, т.е. видео можно сразу разбить на много фрагментов. Выбираем путь для сохранения файла (файлОВ на самом деле), нажимаем кнопку "Start muxing". Получаем кучу MKV-файлов вида "...-001.mkv", "...-002.mkv" и т. д. После этого все ненужные MKV-файлы удаляем, вновь открываем mkvmerge, добавляем ("Add") первый фрагмент, затем к нему присоединяем ("Append") последующие фрагменты. Выбираем путь для сохранения файла, нажимаем кнопку "Start muxing".

В итоге имеем MKV-файл с неперекодированным видеопотоком H.264 (т. е. как со спутника, без лишних потерь) и звуком AAC.