Конвертируем видео автоматически

Раз уж мы научились качать сериалы автоматически, для многих будет актуальным ещё и автоматическое сжатие/конвертирование видео.

Представим ситуацию, у вас есть ваш любимый iPod Touch на котором вы и смотрите свеженькие серии, конечно каждый раз проверять когда сериал скачался, закидывать его куда то в программу для конвертирования, потом в iTunes что бы синхронизировать с плеером...слишком много действий, будем учиться лениться и заставим компьютер самостоятельно выполнять часть работы за нас. Для работы нам понадобится ffmpeg
korp # emerge fmpeg
korp # yum install fmpeg
или как это делается на той системе, на который вы работаете. После установки нам остаётся написать лишь простой скрипт:

#!/bin/bash
video_folder="/home/share/torrent/download/"
films_folder="/home/share/films/iPad/"

resolution="1280x720"

file_mask="LostFilm.TV"

for i in $video_folder/*$file_mask*.mkv
do
i=$(echo $i | sed 's/.mkv//' | sed 's%^.*/%%')
if [ ! -e "${films_folder}$i.mp4" ]
	then
	echo "Converting "$i
	ffmpeg -i ${video_folder}$i.mkv -acodec aac -strict experimental -ab 128k -ac 2 -vcodec libx264 -b 1200k -s $resolution -r 30 -threads 0 ${films_folder}$i.mp4
fi
done

А теперь появнения:
video_folder - директория, в которую наш торрент клиент кладёт готовые закачки, т.е. папка, которую наш конвертер будет мониторить, для автоматического конвертирования.
films_folder - директория, куда будут складываться сконвертированные видео файлы.
resolution - разрешение готового видео файла, либо сжимаете до размеров, вам необходимых (iPhone 3G(s) - 480x270, iPhone 4 - 960x540), либо оставляете оригинальное (624x352), если вы качаете обычные (не HD), релизы, а смотрите их например на iPad с разрешением 1280x720 (т.е. что бы не апскейлить (растягивать) картинку).
file_mask - здесь мы задаём регулярное выражение, которое будет помогать нашему скрипту отыскивать нужное для кодирования видео. Например *720p.LostFilm.TV*, если вы качаете релизы с lostfilm в HD качестве.

На этом в принципе можно закончить. Оcобо нетерпеливые могут дополнить скрипт отправкой уведомления не e-mail о том, что конвертирование закончено, для этого перед fi done нужно добавить:
mail -s "Convert "$i".mp4 is done!" user@host. Остаётс этот скрипт добавить в cron и он будет замечательно выполнять возложенные на него обязанности.

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