Отправить свои ответы вы можете на сайте laborant.auditory.ru. У вас будет только одна попытка для отправки ответов. Внимательно читайте задания: ответы проверяются скриптом, поэтому важна каждая мелочь.
В некоторых руководствах вы можете встретить старую нотацию, например, использование acodec, vcodec и codec. Вместо них стоит использовать c:a, c:v и c. Старая нотация не принимается. Не пишите в команды ничего лишнего, если этого не требуется.
Пожалуйста, не набирайте свои ответы в Ворде, Гуглодоках и прочих “умных” текстовых редакторах: они заменяют кавычки и дефисы на другие, после чего ни командная строка, ни скрипт не могут распарсить ваши команды.
Для всех заданий указывайте имя входного файла input.ext, а выходного — output.ext, где ext — нужное расширение.
Установка и запуск
Ffmpeg — консольный видеоредактор, обладающий обширным функционалом. Для начала работы необходимо скачать архив на официальном сайте http://ffmpeg.zeranoe.com/builds/ (static-версия), затем извлечь исполняемый файл с названием ffmpeg в удобную папку. После этого запустить командную строку, перейти в папку с исполняемым файлом. Запуск производится командой
> ffmpegСинтаксис
Команды ffmpeg строятся следующим образом:
> ffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_options] output_file} …
здесь:
input_file_options - параметры, относящиеся к входным файлам,-i - ключ, указывающий на то, что далее следует путь к входному файлу,input_file - путь к входному файлу,output_file_options - параметры, относящиеся к выходному файлу,output_file - путь к выходному файлу.При работе с видеофайлами обычно не требуется вводить параметры для входного файла. К параметрам выходного видео относятся, например: формат (-f), видео и аудио кодеки (-c:v и -c:a), общий битрейт, аудио и видео битрейт (-b, -b:a, -b:v), частота кадров в секунду (-r), параметры кодека такие как уровень (-level:v, -level:a), количество B-кадров (-bf) и прочие.
Получение информации о файле
Чтобы получить информацию о видео или аудио файле (длительность, кодеки, битрейт, частота кадров, разрешение, соотношение сторон, частоту субдискретизации аудио и пр.) достаточно просто передать его на вход ffmpeg, не указывая параметров и выходного файла:
> ffmpeg -i input_fileПри помощи ffmpeg вывести данные о любом видео, найти информацию о размере кадра, битрейте, количестве аудиодорожек, частоте кадров, удостовериться в их правильности (свериться можно с системной информацией, предоставляемой системой).
Изменение длительности видео
Ffmpeg позволяет изменять длительность видео, вырезать из него отдельные фрагменты. Начальная точка, с которой будет записываться выходное видео, задается параметром -ss hh:mm:ss (в случае записи с начала этот параметр не нужен).
Желаемая длительность интервала задается параметром -t hh:mm:ss. Вместо длительности можно указать конечную точку ключом -to hh:mm:ss.
Вырежьте из видеоролика фрагмент длительностью 10 секунд, начинающийся со второй секунды. Здесь и далее, если не сказано обратного, имеется в виду видео в формате mp4. Учтите это при отправке ответов (и не забудьте про указанные в начале имена файлов). Укажите строку, которую вы ввели в консоль (начиная с “ffmpeg”, напр.: ffmpeg -i input.avi).
Изменение битрейта видео
Один из наиболее важных параметров, характеризующих видео — битрейт. В Ffmpeg битрейт изменяется следующими командами:
-b:v задает битрейт видеодорожек,-b:a задает битрейт аудио,-b задает общий битрейт ролика (аудио+видео),-minrate, -maxrate задают соответственно максимальный и минимальный битрейты аудио и видео вместе взятых.Ffmpeg принимает битрейт не в Кбит/с, а в бит/с. Он понимает директивы k и M: 1000k = 1M = 1000 Кбит/с = 1 Мбит/с = 1000000 бит/с.
Например:
> ffmpeg -i input.avi -b:v 1250k output.aviЧасть 1 (1 балл): Вам предложен вывод ffmpeg о некотором видео (Рис. 1). Укажите его битрейт. Закодируйте ролик с в два раза меньшим битрейтом. Приложите строку, которую вы выполняли.
Рис. 1
Часть 2 (1 балл): Закодируйте исходный ролик, не изменяя битрейт видео и понизив битрейт аудио в два раза. Укажите исходный битрейт аудио и исполняемую строку.
Изменение аудио и видео кодека
Ffmpeg позволяет изменять формат видео, аудио и видео кодеки. Формат видео изменяется командой -f format_name. Видео и аудио кодеки — соответственно командами -c:v и -c:a codec_name. Полный список форматов доступен по команде -formats, полный список кодеков — по команде -codecs.
По умолчанию ffmpeg будет перекодировать аудио и видео на свое усмотрение, обычно сжимая видео в несколько раз, что приводит к потере качества. Чтобы этого избежать, следует вызвать команды -c, -c:v или -c:a (в зависимости от того, какой из потоков вы хотите оставить прежним) с аргументом copy.
!Важно: не используйте старую нотацию для -c, -c:v и -c:a.
Перекодируйте звук в видеофайле кодеком mp3 так, чтобы качество видео не изменилось (не перекодируя видео). Укажите выполняемую команду.
Изменение размера (разрешения) видео
Изменить размер видео можно параметром -s WIDTHxHEIGHT
Сохранение фрагмента видео в виде gif-изображения
Ffmpeg позволяет сохранять фрагменты видео в анимированные gif-изображения. Для этого надо указать ему формат gif.
Сохраните десятисекундный фрагмент видео в gif-изображение, предварительно изменив размер на соответствующий стандарту EDTV 480p 4:3 (статья в Вики). Приложите исполняемую команду.
Разбиение видео на картинки и составление видео из картинок
Любое видео можно сохранить в виде отдельных кадров, указав ffmpeg формат выходных файлов image2 и задав имя файла примерно таким образом: name%d.png. Вместо %d ffmpeg будет подставлять по порядку натуральные числа от 1, таким образом нумеруя кадры.
Составление видео из отдельных кадров — тот случай, когда требуется указывать параметры для входных файлов. Для того, чтобы “собрать” видео из кадров необходимо указать входной формат image2. А затем указать ffmpeg путь ко всем кадрам. Один из способов это сделать — указать ffmpeg путь к последовательно пронумерованным кадрам в виде name%d.jpg. Если ffmpeg не сможет найти картинки с заданным именем в диапазоне чисел от 1 до 4 (вместо %d), он выведет ошибку. Процесс останавливается, как только ffmpeg не находит картинки, имеющей номер на единицу больше предыдущей (даже если имеется картинка с номером на 2 больше предыдущей).
Изменение частоты кадров
Для указания частоты кадров используется ключ -r, например: -r 25.
Часть 1 (0.7 балла): фрагмент видео длиной в секунду (укажите только длительность) разбейте на png-изображения (именуйте их output%номер%, где вместо %номер% будет стоять порядковый номер изображения. Не забудьте расширение). Укажите исполняемую команду.
Часть 2 (1.3 балла): далее соберите из этих картинок (именуйте их input%номер%) новый ролик с частотой кадров 25 к/с, кодеком H.264 и битрейтом 1024 кбит/с. Укажите команду, которой вы склеивали видео.
Вас оторвали от просмотра пятой серии любимого сериала и вам необходимо уехать, однако вы очень хотите его досмотреть и планируете записать на телефон, чтобы досмотреть по пути. Однако, на вашем телефоне очень мало места. Кроме того, он поддерживает только видео, закодированное кодеком MPEG-2 и аудио в формате mp3. Также ваш телефон поддерживает только видео разрешения 640x360.
Подготовьте видео к перемещению на телефон так, чтобы оно не сильно потеряло в качестве (укажите битрейт, равный битрейту исходного видео и не перепутайте -b и -b:v), учитывая, что места на телефоне хватит только на одну серию. (Серия начинается с кусочка ДО заставки и идет до финальных титров).
Укажите исполняемую команду.
TIP: Видео, сжатое MPEG-2, принято хранить с разрешением .avi, а не .mp4.
Каждый параметр, указанный в таблице, дает определенное количество баллов. Если все задание выполнено правильно, ответ проверяется на наличие лишних параметров. Если лишних параметров не обнаружено, к оценке прибавляется еще 0.1 балла. Сумма баллов является итоговой оценкой за работу.