Команды FFmpeg: различия между версиями

Материал из ALT Linux Wiki
(не показано 17 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Avconv''' - библиотека для преобразования, воспроизведения, потоковой передачи и обработки аудио и видео.
'''Avconv''' - библиотека для преобразования, воспроизведения, потоковой передачи и обработки аудио и видео.
{{note|В P8 пакет и команда называются avconv, в P9 ffmpeg}}
==Какой Avconv? Что с FFmpeg?==
==Какой Avconv? Что с FFmpeg?==
Если вы помните ранее везде использовался проект FFmpeg. Но что случилось, что теперь используют Avconv? Между разработчиками произошел конфликт и проект раскололся. Об этом рассказывает один из разработчиков в [http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html своем блоге]. [http://archive.is/OZVId (архив)] Но ничего страшного, для нас, обычных пользователей это все тот же FFmpeg, но с другим названием.
Если вы помните ранее везде использовался проект FFmpeg. Но что случилось, что теперь используют Avconv? Между разработчиками произошел конфликт и проект раскололся. Об этом рассказывает один из разработчиков в [http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html своем блоге]. [http://archive.is/OZVId (архив)] Но ничего страшного, для нас, обычных пользователей это все тот же FFmpeg, но с другим названием.
Строка 8: Строка 9:
==Возможности==
==Возможности==
===Конвертирование видео===
===Конвертирование видео===
Для aac нужно указать параметр '''-strict experimental'''.
====AVI====
avconv -i '/run/media/petr/TRANSCEND/Видео/TVRips/Наши кассеты/Спокойной+ночи%2C+малыши+2001+%28Крот+и+зеленая+звезда%29_VHSRip+by+hukin07.mpg' -vcodec libx264 spok.avi
====MP4====
avconv -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' -vcodec libx264 /home/petr/karlson.mp4
====WMV====
avconv -i '/run/media/petr/TRANSCEND/Видео/Ролики/Первая попытка виндузятника подружиться с linux -D.avi' -vcodec wmv2 -acodec wmav2 linux.wmv


===Конвертирование аудио===
===Конвертирование аудио===
Строка 16: Строка 26:
  avconv -i '/run/media/petr/Transcend/Документы/Музыка/Песни/Вадим Козин/Ленинград мой.mp3' -strict experimental /home/petr/leningrad.aac
  avconv -i '/run/media/petr/Transcend/Документы/Музыка/Песни/Вадим Козин/Ленинград мой.mp3' -strict experimental /home/petr/leningrad.aac
===Изменение разрешения видео===
===Изменение разрешения видео===
Я хочу скинуть на телефон видео. Экран там небольшой. Разрешение видео можно сжать, чтобы видео занимало меньше места.
avconv -i '/run/media/petr/TRANSCEND/Видео/Фильмы/Отечественное кино/Котёнок (1996).avi' -strict experimental -s 320x240 /home/petr/Котенок.mp4
И в итоге видео становится с меньшим разрешением, но и с меньшим весом 1,6 Гб -> 218,4 мб. Весит меньше, а на маленьком экране не заметно разницы.
===Обрезка видео===
avconv -t 00:05:00 -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Большой УХ.avi' -vcodec copy -acodec copy kozinaki.avi
-t - длина фрагмента, copy - копирование кодеков видео и аудио
Баг: когда вы делаете обрезку не сначала (-ss 00:02:00 -t 00:05:00), то вместо того, чтобы начать с 2-х минут и обрезать 5 минут видео, avconv начинает c 2-х минут и обрезает 7 минут видео.
===Извлечение аудиодорожки===
===Извлечение аудиодорожки===
Например, я хочу нарезать звуков из Карлсона типа "Так это вы таскали мои плюшки?!" или "Фу, как не культурно!". Я беру мультик, avi, и применяю следующую команду:
Например, я хочу нарезать звуков из Карлсона типа "Так это вы таскали мои плюшки?!" или "Фу, как не культурно!". Я беру мультик, avi, и применяю следующую команду:
  avconv -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' /home/petr/karlson.mp3
  avconv -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' /home/petr/karlson.mp3
Получаю mp3-файл, аудиодорожку из мультфильма, открываю Audacity и вырезаю нужные моменты.
Получаю mp3-файл, аудиодорожку из мультфильма, открываю Audacity и вырезаю нужные моменты.
Хотя, если хотите, можно сделать это сразу. С помощью ключей -ss (начало) и -t (продолжительность) можно вырезать конкретную фразу.
avconv -ss 0:07:27 -t 0:00:07 -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' /home/petr/karlson.mp3
Так мы получим фразу "Убедительно просим увести ваших детей от наших голубых экранов."
===Конвертация видео в изображения===
Например, мне нужны кадры "Кузи" с 4 минуты в течении 16 секунд:<br>
1.Создайте каталог для картинок
mkdir ~ images
2.Переведите видео в изображения
avconv -ss 0:04:00 -t 0:00:16 -i "/run/media/petr/TRANSCEND/Видео/Мультфильмы/Домовенок Кузя/1 Приключения домовенка.avi" -vf fps=10 /home/petr/images/kuzya%03d.png


===Создание GIF из видео===
===Создание GIF из видео===
====Часть I====
1.Создайте каталог для временных картинок
1.Создайте каталог для временных картинок
  ~mkdir /frames
  mkdir ~ frames
2. Сконвертируйте видео на маленькое разрешение и вырежьте приблизительный кусок (-ss - начало видео, -t - продолжительность.)<br>
2. Сконвертируйте видео на маленькое разрешение и вырежьте приблизительный кусок (-ss - начало видео, -t - продолжительность.)<br>
  avconv -ss 0:04:00 -t 0:00:16 -i "/run/media/petr/TRANSCEND/Видео/Ч_б мультфильмы/Советские 1920-е/Одна из многих (1927).mp4" -strict experimental -vf scale=320:240 /home/petr/ffout.mp4
  avconv -ss 0:04:00 -t 0:00:16 -i "/run/media/petr/TRANSCEND/Видео/Ч_б мультфильмы/Советские 1920-е/Одна из многих (1927).mp4" -strict experimental -vf scale=320:240 /home/petr/ffout.mp4
Строка 29: Строка 61:
  avconv -i "/home/petr/ffout.mp4" -vf fps=10 /home/petr/frames/ffout%03d.png
  avconv -i "/home/petr/ffout.mp4" -vf fps=10 /home/petr/frames/ffout%03d.png
Данная команда сконверитрует видео в изображения.<br>
Данная команда сконверитрует видео в изображения.<br>
3.Перейдите в папку и если надо, удалите лишние кадры.<br>
4.Перейдите в папку и если надо, удалите лишние кадры.<br>
4.Создайте gif:
====Часть II====
convert -loop 0 frames/ffout0*.png chaplin.gif
*[[ImageMagick - обработка изображений#Часть II|С помощью ImageMagick]]
У меня получилась [https://www.dropbox.com/s/bhpjsp506drhjji/chaplin.gif?dl=0 такая GIF-ка].
[[Категория:HOWTO]]
 
{{Category navigation|title=Документация|category=Documentation|sortkey={{SUBPAGENAME}}}}
======
{{Category navigation|title=Консольные утилиты|category=Консольные утилиты|sortkey={{SUBPAGENAME}}}}

Версия от 16:01, 2 апреля 2020

Avconv - библиотека для преобразования, воспроизведения, потоковой передачи и обработки аудио и видео.

Примечание: В P8 пакет и команда называются avconv, в P9 ffmpeg

Какой Avconv? Что с FFmpeg?

Если вы помните ранее везде использовался проект FFmpeg. Но что случилось, что теперь используют Avconv? Между разработчиками произошел конфликт и проект раскололся. Об этом рассказывает один из разработчиков в своем блоге. (архив) Но ничего страшного, для нас, обычных пользователей это все тот же FFmpeg, но с другим названием.

Для чего эта статья?

Когда я начал пользоваться Linux я искал различные GUI-утилиты для выполнения различных задач (установка программ, обновление системы, конвертация видео и пр.). Но, со временем мне показалось удобнее и практичнее выполнять их через консоль. Практически все конвертеры для Linux - оболочки для Avconv/FFmpeg. Но GUI либо ограничивает их возможность, либо (как в случае с WinFF) реализован в Альтах некорректно (профили работают криво и конвертация не идет). В данной статье я хотел бы рассмотреть использование Avconv в ALT Linux.

Возможности

Конвертирование видео

Для aac нужно указать параметр -strict experimental.

AVI

avconv -i '/run/media/petr/TRANSCEND/Видео/TVRips/Наши кассеты/Спокойной+ночи%2C+малыши+2001+%28Крот+и+зеленая+звезда%29_VHSRip+by+hukin07.mpg' -vcodec libx264 spok.avi

MP4

avconv -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' -vcodec libx264 /home/petr/karlson.mp4

WMV

avconv -i '/run/media/petr/TRANSCEND/Видео/Ролики/Первая попытка виндузятника подружиться с linux -D.avi' -vcodec wmv2 -acodec wmav2 linux.wmv

Конвертирование аудио

avconv -i '/run/media/petr/Transcend/Документы/Музыка/Песни/Вадим Козин/Ленинград мой.mp3' /home/petr/leningrad.ogg

Где -i входной файл, а следующий путь выходной. Окончание выходного файла (mp3, wav, ogg, wma, aac, flac)

Для aac нужно указать параметр -strict experimental.

avconv -i '/run/media/petr/Transcend/Документы/Музыка/Песни/Вадим Козин/Ленинград мой.mp3' -strict experimental /home/petr/leningrad.aac

Изменение разрешения видео

Я хочу скинуть на телефон видео. Экран там небольшой. Разрешение видео можно сжать, чтобы видео занимало меньше места.

avconv -i '/run/media/petr/TRANSCEND/Видео/Фильмы/Отечественное кино/Котёнок (1996).avi' -strict experimental -s 320x240 /home/petr/Котенок.mp4

И в итоге видео становится с меньшим разрешением, но и с меньшим весом 1,6 Гб -> 218,4 мб. Весит меньше, а на маленьком экране не заметно разницы.

Обрезка видео

avconv -t 00:05:00 -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Большой УХ.avi' -vcodec copy -acodec copy kozinaki.avi

-t - длина фрагмента, copy - копирование кодеков видео и аудио

Баг: когда вы делаете обрезку не сначала (-ss 00:02:00 -t 00:05:00), то вместо того, чтобы начать с 2-х минут и обрезать 5 минут видео, avconv начинает c 2-х минут и обрезает 7 минут видео.

Извлечение аудиодорожки

Например, я хочу нарезать звуков из Карлсона типа "Так это вы таскали мои плюшки?!" или "Фу, как не культурно!". Я беру мультик, avi, и применяю следующую команду:

avconv -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' /home/petr/karlson.mp3

Получаю mp3-файл, аудиодорожку из мультфильма, открываю Audacity и вырезаю нужные моменты.

Хотя, если хотите, можно сделать это сразу. С помощью ключей -ss (начало) и -t (продолжительность) можно вырезать конкретную фразу.

avconv -ss 0:07:27 -t 0:00:07 -i '/run/media/petr/TRANSCEND/Видео/Мультфильмы/Малыш и Карлсон/2 Карлсон вернулся.avi' /home/petr/karlson.mp3

Так мы получим фразу "Убедительно просим увести ваших детей от наших голубых экранов."

Конвертация видео в изображения

Например, мне нужны кадры "Кузи" с 4 минуты в течении 16 секунд:
1.Создайте каталог для картинок

mkdir ~ images

2.Переведите видео в изображения

avconv -ss 0:04:00 -t 0:00:16 -i "/run/media/petr/TRANSCEND/Видео/Мультфильмы/Домовенок Кузя/1 Приключения домовенка.avi" -vf fps=10 /home/petr/images/kuzya%03d.png

Создание GIF из видео

Часть I

1.Создайте каталог для временных картинок

mkdir ~ frames

2. Сконвертируйте видео на маленькое разрешение и вырежьте приблизительный кусок (-ss - начало видео, -t - продолжительность.)

avconv -ss 0:04:00 -t 0:00:16 -i "/run/media/petr/TRANSCEND/Видео/Ч_б мультфильмы/Советские 1920-е/Одна из многих (1927).mp4" -strict experimental -vf scale=320:240 /home/petr/ffout.mp4

3.Переведите видео в изображения

avconv -i "/home/petr/ffout.mp4" -vf fps=10 /home/petr/frames/ffout%03d.png

Данная команда сконверитрует видео в изображения.
4.Перейдите в папку и если надо, удалите лишние кадры.

Часть II