Перейти к публикации
Необходимость регистрации на форуме Подробнее... ×
Asterios
xEvaSaintx

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

Рекомендованные сообщения

Данный мини-гайд о том как сделать качественный и небольшого размера, средствами самого клиента, видеоролик, который большинство видео-хостингов даже не будут перекодировать (сохранится оригинальное качество).

Большая просьба всем кто записывает ролики средствами клиента, и выкладывает их на форум, обрабатывать их, это во первых даст 10-ти кратный прирост скорости как выгрузки, так и последующей загрузки контента.


вот фрагмент кадра из уже перекодированного ролика:

Скрытый текст

 

vlcsnap1.png.90799a929aa9430798504c478febd408.png

 

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

тогда читаем скрытый текст и используем:

Скрытый текст

ffmpeg -i VIDEO.AVI -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart VIDEO.mp4

в случае если у видео кадра нечётное количество пикселей можно дополнить команду до такого вида:


ffmpeg -i VIDEO.AVI -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" VIDEO.mp4

но это ухудшит (не смертельно) читаемость мелкого текста, лучше уж сделать CROP потеряв пиксель снизу/справа:


ffmpeg -i VIDEO.AVI -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0" VIDEO.mp4

 

эта команда запустит FFMPEG который перекодирует ваше видео из файла VIDEO.AVI в файл VIDEO.MP4

 

upd. Решил дополнить гайд командами нелинейного монтажа (в начальном уровне)

 

итак мы записали ролик, научились качественно кодировать и тут мы понимаем что первые 30 секунд видео нам совершенно не нужны, что делать? Обрабатывать видео сторонними средствами вырезая кусочек это недопустимо, если будет использоваться любой не "Lossless" кодек, ведь качество будет утрачено навсегда, наша задача сделать всё в 1 проход (впрочем кто мешает сделать два, но с 1 кодирующим?).

с этой задачей справится такая команда:

Скрытый текст

ffmpeg -i "VIDEO.AVI" -ss 77 -t 777 -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0" "VIDEO.MP4"

в примере параметры 77 и 777 указывают что начать кодирование нужно с 77 секунды, длительностью 777 секунд

 

upd. Решил дополнить гайд командами склейки (в начальном уровне)

 

Допустим вам понадобилось склеить 2-3 ролика в 1 без промежуточных операций кодирования, вам поможет команда подобного вида:

Скрытый текст

ffmpeg -i "VIDEO1.AVI" -i "VIDEO2.AVI" -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "VIDEO1_2.MP4"

так склеиваются 2 видеоролика в 1, а вот так 3:


ffmpeg -i "VIDEO1.AVI" -i "VIDEO2.AVI" -i "VIDEO3.AVI" -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "VIDEO1_2_3.MP4"

правда в этом случае я не в курсе как правильно прописать команды для поправки нечётных размеров кадра.

upd.

Параметры прописываются в графе фильтра, сходу вот так объяснить сложно как строится граф фильтров, приведу пример:

Скрытый текст


ffmpeg -i "VIDEO1.AVI" -i "VIDEO2.AVI" -i "VIDEO3.AVI" -filter_complex "[0:v] crop=100:100:0:0 [crope0]; [1:v] crop=100:100:0:0 [crope1]; [2:v] crop=100:100:0:0 [crope2]; [crope0] [0:a] [crope1] [1:a] [crope2] [2:a] concat=n=3:v=1:a=1 [vidc] [a]" -map "[vidc]" -map "[a]" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "VIDEO1_2_3.MP4"

в данном примере видео файлы обрезаются от левого верхнего угла до координат 100х100. также можно использовать трюк с расчётом сторон кадров в реальном времени:

Скрытый текст



ffmpeg -i "VIDEO1.AVI" -i "VIDEO2.AVI" -i "VIDEO3.AVI" -filter_complex "[0:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope0]; [1:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope1]; [2:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope2]; [crope0] [0:a] [crope1] [1:a] [crope2] [2:a] concat=n=3:v=1:a=1 [vidc] [a]" -map "[vidc]" -map "[a]" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "VIDEO1_2_3.MP4"

 

но нужно учитывать что входные файлы должны быть одинаковы по параметрам сторон.

 

 

 

Ещё полезно будет знать как "размыть" облать ника/панельки/чата (для тех кто без этого немогёт)

вот пример склейки 3х роликов, с размытием области панели скиллов:

Скрытый текст

ffmpeg -i "VIDEO1.AVI" -i "VIDEO2.AVI" -i "VIDEO3.AVI" -filter_complex "[0:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope0]; [1:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope1]; [2:v] crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0 [crope2]; [crope0] [0:a] [crope1] [1:a] [crope2] [2:a] concat=n=3:v=1:a=1 [vidc] [a]; [vidc] crop=458:174:382:574,boxblur=10:enable=1 [vidbb]; [vidc][vidbb] overlay=382:574 [outv]" -map "[outv]" -map "[a]" -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart "VIDEO1_2_3.MP4"

в данном примере 458:174:382:574 это координаты панели скиллов (ширина:высота:X:Y), в двух словах расшифрую:

потоки входящих видео данных [0:v]/[1:v]/[2:v] обрезаются по пикселю права и снизу (если нечётные стороны) и помечаются тегами crope[0/1/2=] затем соединяются в единый поток с помощью concat=n=3*** и результирующий поток помечается тегом vidc для видео и a для аудио, затем из потока вырезается часть кадра (панелька) размывается boxblur и результат помечается vidbb затем поверх vidc накладывается (overlay:382:574) размытое изображение панели и результат помечается как outv который и используется как результат для кодирования. уфф.

Удачи.

 

мини-FAQ:

Скрытый текст

A: что за команда, что нажать то?

Q:это "консольная команда" сокращённо "команда", к сожалению это гайд не по управлению консолью, просто загуглите "как выполнить консольную команду"

A:загуглил, всё равно не пойму, ничего не получается!

Q:видимо вам необходима сама утилита FFMPEG.EXE, взять её можно на одноимённом сайте-производителя или поискать на своём компьютере (она входит в состав многих пакетов обработки видео) достаточно либо полностью прописать в команде путь к ней или добавить путь к ней в переменную %PATH% (гуглим)

A:все заработало, но многие ролики не получается перекодировать, тупо сразу происходит ошибка.

Q:проверьте чтобы в имени файла-источника не было пробелов.

A:вы заявляли что хостинги не будут перекодировать ролик, но при просмотре с хостинга качество на порядок ниже!

Q:во первых убедитесь что смотрите в максимальном качестве, затем убедитесь что ваш браузер не изменяет размер кадра при просмотре, также учтите что видео-хостеры перекодируют ролик почти наверняка, если соотношение сторон/битрейт выйдут за пределы их ограничений (экспериментируйте с битрейтом/настройками клиента/параметрами фильтра crop)

A:что за "crop"

Q:это обрезание ролика, IMHO не стоит его использовать для новых роликов, по использованию гуглим "ffmpeg crop"

 

Изменено пользователем xEvaSaintx

Поделиться сообщением


Ссылка на сообщение
5 часов назад, xEvaSaintx сказал:

эта команда запустит FFMPEG который перекодирует ваше видео из файла VIDEO.AVI в файл VIDEO.MP4

Удачи.

Можно подробней. Вот есть видео записанное клиентом, что с ним дальше делать, как использовать эту команду?

Поделиться сообщением


Ссылка на сообщение

и как поставить что б оно не снимало по умолчанию 480р?

Поделиться сообщением


Ссылка на сообщение

2018, люди пишут в ави
Добавь инфу для неопытных, куда вбить команду. 

Поделиться сообщением


Ссылка на сообщение
1 час назад, Korella сказал:

2018, люди пишут в ави
Добавь инфу для неопытных, куда вбить команду. 

Ну напиши ты, я тож пример не знаю.

Поделиться сообщением


Ссылка на сообщение

мини гайд... а можно подробно для "чайников" что куда нажать))

Поделиться сообщением


Ссылка на сообщение

Еще добавьте параметр

  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2"

на случай если у видео нечетное разрешение. Иначе выдаст ошибку.

 

Удалось уменьшить видео размером 239мб до 20мб, без видимых потерь качества.

Поделиться сообщением


Ссылка на сообщение

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

https://www.asterios.tm/avi2mpeg.zip

 

PS: на всякий случай уточню: записывать видео можно через клиент, без всяких сторонних утилит, меню-запись видео.

Поделиться сообщением


Ссылка на сообщение

Совершенно не понятно тому кому действительно нужен этот гайд, тот кто понял и так это знал \ мог сам сделать. Автор, разжуй для чайников пошагово 

Поделиться сообщением


Ссылка на сообщение
41 минуту назад, Admin сказал:

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

https://www.asterios.tm/avi2mpeg.zip

 

PS: на всякий случай уточню: записывать видео можно через клиент, без всяких сторонних утилит, меню-запись видео.

спасибо

Поделиться сообщением


Ссылка на сообщение
1 час назад, Admin сказал:

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

Спрашивает про замену файла, который хочет перекодировать. :ph34r:

Создал отдельную папочку и вывесил ярлык, всё отлично прошло. ^^

Поделиться сообщением


Ссылка на сообщение

А если фоном музычку пустить клиент и её захватывает. Вообще тема. :rofl:

Только нажать записать, отменить запись. В открывшейся менюшке норм разрешение поставить, а то наснимает в 640х480.

Поделиться сообщением


Ссылка на сообщение

Дополнил гайд, исправил найденные недочёты, добавил команды склейки/нарезки в 1 проход кодирования, зацените.

 

15 часов назад, Admin сказал:

Еще добавьте параметр


  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2"

на случай если у видео нечетное разрешение. Иначе выдаст ошибку.

после тестов обнаружилось что у роликов у которых действительно нечётные стороны кадра, напрочь убивается качество теста, и мелких деталей, из за изменения размеров кадра, лучше будет использовать

-vf "crop=trunc(iw/2)*2:trunc(ih/2)*2:0:0"

потеряв в случае чего всего по пикселю справа/снизу.

Поделиться сообщением


Ссылка на сообщение
В 18.03.2018 в 13:47, Admin сказал:

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

https://www.asterios.tm/avi2mpeg.zip

 

PS: на всякий случай уточню: записывать видео можно через клиент, без всяких сторонних утилит, меню-запись видео.

пробовал перекодировать восьмиминутное видео. перекодировало около 50 сек остальное обрезало

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Noal сказал:

пробовал перекодировать восьмиминутное видео. перекодировало около 50 сек остальное обрезало

открой в блокноте convert.bat и убери из строки параметры "-ss 0 -t 47" они указывают что будут обработаны кадры с 0 по 47 секунду, также почитай про порчу кадра и модифицируй команду под свои ролики.

Поделиться сообщением


Ссылка на сообщение
52 минуты назад, xEvaSaintx сказал:

открой в блокноте convert.bat и убери из строки параметры "-ss 0 -t 47" они указывают что будут обработаны кадры с 0 по 47 секунду, также почитай про порчу кадра и модифицируй команду под свои ролики.

благодарю

Поделиться сообщением


Ссылка на сообщение

Знаю что многие без этого не могут, поэтому добавил информацию и примеры о том как "размыть" облать ника/панельки/чата и при этом совершенно не ухудшить качество результирующего ролика (нет промежуточного перекодирования)

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
1 час назад, iTesey сказал:

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

плюсану.

я вот обычно обской записываю, настроки декодера стоят такие, что ютуб обрабатывает 15-20 минутное видео после загрузки буквально минуту и качество не теряется

Поделиться сообщением


Ссылка на сообщение
4 часа назад, iTesey сказал:

а для новичков и обычных юзеров есть множество программ с графической оболочкой всего того что тут расписано...

 

Для новичков батник от Админа, в котором надо менять 1-2 цифры самое оно.

Поделиться сообщением


Ссылка на сообщение

кто знает что за проблема при записи видео через игру - пишет см картинку,что все хорошо, а в папке пусто, но если делать скрин то он там появляется!

антивирус отключал и клиент полностью обновлял

Снимок.JPG

Поделиться сообщением


Ссылка на сообщение
2 часа назад, ChaosHEAD сказал:

кто знает что за проблема при записи видео через игру - пишет см картинку,что все хорошо, а в папке пусто, но если делать скрин то он там появляется!

антивирус отключал и клиент полностью обновлял

Снимок.JPG

попробуй не держать клиент в папке, путь к которой содержит кириллицу

Поделиться сообщением


Ссылка на сообщение
10 часов назад, iTesey сказал:

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

и потом мы сморим их ролики с таким качеством что ничего не понятно...

 

зы. уверен что 100% новичков если захотят, разберутся как сделать свою коллекцию роликов компактной без потери качества, а это уже большой +

Изменено пользователем xEvaSaintx

Поделиться сообщением


Ссылка на сообщение
1 час назад, Extortioner сказал:

попробуй не держать клиент в папке, путь к которой содержит кириллицу

D:\Asterios тоже самое

Поделиться сообщением


Ссылка на сообщение
12 минуты назад, ChaosHEAD сказал:

D:\Asterios тоже самое

попробуй удалить папку Screenshot

Поделиться сообщением


Ссылка на сообщение
5 минут назад, Extortioner сказал:

попробуй удалить папку Screenshot

удалял

 

Поделиться сообщением


Ссылка на сообщение
18.03.2018 в 16:47, Admin сказал:

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

https://www.asterios.tm/avi2mpeg.zip

 

PS: на всякий случай уточню: записывать видео можно через клиент, без всяких сторонних утилит, меню-запись видео.

Похоже что файл пропал. Можно ли выложить еще раз?

Поделиться сообщением


Ссылка на сообщение
9 часов назад, XXXБАТЯXXX сказал:

Похоже что файл пропал. Можно ли выложить еще раз?

сам ffmpeg можно скачать отсюда - https://ffmpeg.zeranoe.com/builds/

параметры запуска есть в первых постах этой темы

Изменено пользователем Extortioner

Поделиться сообщением


Ссылка на сообщение
18.03.2018 в 14:47, Admin сказал:

Сделал для удобства скрипт для конвертации. Скачайте и распакуйте в папку Screenshot клиента. Когда вам нужно сконвертировать видео, просто перетаскиваете его на convert.bat и все само происходит :)

 

https://www.asterios.tm/avi2mpeg.zip

 

PS: на всякий случай уточню: записывать видео можно через клиент, без всяких сторонних утилит, меню-запись видео.

админ, востановите ссылку для загрузки скрипта, если возможно. Заранее спасибо

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×