Конвертирование видео для XBOX360 на Linux

Недавно, столкнулся со следующей задачей.

Есть роутер которые с подключенного винчестера в локальную сеть шарит медиа-данные: музыку, видео, фото и прочее. Сам роутер не обладает функцией транскодирования видео потоков, а не все девайсы умеют показывать видео в HD. Xbox 360 не стал исключением.

Изучив документацию по поддерживаемым форматам, было решено подготавливать видео для приставки закодированное h264 кодеком. Конвертировать будем на машине с установленным Linux. Для этого необходимо установить пакет ffmpeg. 

Видео будем брать в формате mkv, хотя принципиальной разницы нет, есть разница в скорости кодирования и копирования файлов.

Вся работа сводится к одной команде:

ffmpeg -i inFile.mkv -vcodec copy -acodec aac -ac 2 -strict -2 outFile.mp4

Это для случая когда внутри mkv видео закодировано h264 кодеком, если же там другой кодек допустим mpeg, то команда немного измениться, нужно указать кодек для кодирования видео  в параметре -vcodec, пример команды в этом случае:

ffmpeg -i inFile.mpeg -vcodec h264 -acodec aac -ac 2 -strict -2 outFile.mp4

Если файлов много, допустим нужно подготовить сезон любимого сериала, то набивать вручную и контролировать завершение не очень удобно. Поэтому можно написать простой скрипт на bash которые все сделает за нас, пока мы будем спать. На скорую руку вышло следующее:

#!/bin/bash

for filename in *.mkv 
do
	newFileName=$filename'.mp4'
	convertCommand="ffmpeg -i $filename -vcodec copy -acodec aac -ac 2 -strict -2 $newFileName"
	eval $convertCommand
done

Что он делает?
Берет каждый mkv файл в папке, копирует видео дорожку в новый файл без конвертации (потому что в mkv, как правило, внутри лежит видео закодированное необходимым нам кодеком h264), конвертирует аудио дорожку в aac и также записывает в новый файл. Все просто.
Этот скрипт закидываем в необходимую папку, даем права на запуск chmod +x script и запускаем. Немного ожидания и можно смотреть 😉

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *