notinthewoods
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Wave_Blessed Можно легко кодировать в обычной командной строке, без всяких там гуишных поделок)) В сборке FFMPEG, как правило, есть ffprobe.exe - утилита для получения информации о медиафайлах. Возьмем для примера свежий ремукс (~ 26 GB): Цитата: ffprobe Spider-Man.No.Way.Home.2021.BDREMUX.1080p.seleZen.mkv Input #0, matroska,webm, from 'Spider-Man.No.Way.Home.2021.BDREMUX.1080p.seleZen.mkv': Duration: 02:28:10.91, start: 0.000000, bitrate: 24907 kb/s Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default) Stream #0:1(rus): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced) Stream #0:2(rus): Audio: eac3, 48000 Hz, 5.1(side), fltp, 384 kb/s Stream #0:3(eng): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s16p Stream #0:4(rus): Subtitle: subrip (default) (forced) Stream #0:5(rus): Subtitle: subrip Stream #0:6(rus): Subtitle: subrip Stream #0:7(ukr): Subtitle: subrip Stream #0:8(eng): Subtitle: subrip | В цитате отброшена лишняя инфа. Допустим, стоит такая задача: сжать до приемлемого размера. При этом нужно отрезать черные полосы сверху-снизу, получить кадр с шириной 1280 (вместо исходных 1920) и удалить дорожки: аудио - Stream #0:2(rus) и субтитры Stream #0:7(ukr). Принимая во внимание, что у вас "дешёвый ноутбук", нет смысла заморачиваться с пресетами -preset slow или, тем более, slower. Эти пресеты медленные, а выигрыш в качестве вы не сможете ощутить на небольшом экране ноутбука. Дальше, что касается качества кодирования -crf 18, опять же, для вашего случая - непозволительная роскошь. Это даже бессмысленно, проще скачать BDRip 720p с того же Кинозала или Рутрекера. Там аккурат и раздаются рипы с качеством ~ CRF 15-18. Вот примерная строка кодирования ролика продолжительностью 1 мин (взято с 00:02:30 по 00:03:30 из фильма): Код: ffmpeg -ss 00:02:30 -to 00:03:30 -i Spider-Man.No.Way.Home.2021.BDREMUX.1080p.seleZen.mkv -map 0:0 -map 0:1 -map 0:3 -map 0:4 -map 0:5 -map 0:6 -map 0:8 -map_metadata -1 -metadata title="Spider-Man.No.Way.Home.2021" -metadata:s:a:0 title="RUS Dub" -metadata:s:a:1 title="ENG Original" -metadata:s:s:0 title="RUS Forced" -metadata:s:s:1 title="RUS Full 1" -metadata:s:s:2 title="RUS Full 2" -metadata:s:s:3 title="ENG Full" -c:v libx264 -crf 21.0 -preset faster -vf crop=1920:804:0:138 -s 1280x536 -c:a aac -ac 2 -b:a 128K -ar 44100 -c:s copy output_1min.mkv | -ss --> начало временного отрезка -to --> окончание временного отрезка -i --> исходник (input) -map 0:0 --> ноль перед двоеточием - первый файл (в данном случае единственный), ноль после двоеточия - первая дорожка (в данном случае видео) -map_metadata -1 --> полное удаление метадаты из файла (напр. в нашем случае хотим обозвать дорожки по-своему, старая метадата также может вносить в инфу выходного файла неправильное (исходное) значение битрейта, соответственно пересчитает и укажет неправильную частоту кадров для роликов продолжительностью меньшей, чем весь фильм) -metadata title="..." --> общее название -metadata:s:a:0 title="RUS Dub" --> название первой аудиодорожки (s - stream, a - audio) ... -metadata:s:s:3 title="ENG Full" --> название четвертой дорожки субтитров (отсчет начинается с 0; s - stream, s - subtitle) Здесь нумерация устанавливается уже по количеству дорожек в выходном файле. В исходнике 9 дорожек, в выходном файле 7. -c:v libx264 --> видеокодек H264 (AVC) -crf 21.0 --> фактор качества 21 -preset faster --> пресет кодирования faster -vf crop=1920:804:0:138 --> фильтр обрезки кадра (удаление черных полос), слева по оси X ноль пикселей, сверху по оси Y 138 пикселей, на выходе получаем размер кадра 1920x804 -s 1280x536 --> ресайз до 1280x536 (536 получаются пропорционально: 1280x804/1920=536) -c:a aac --> аудиокодек AAC -ac 2 --> стерео (2 канала), c - channel -b:a 128K --> аудиобитрейт 128 kb/s (b - bitrate) -ar 44100 --> частота дискретизации 44100 Hz (r - rate) -c:s copy --> копирование субтитров При таких настройках тестовый минутный ролик получился ~ 14 MB. Навскидку умножим на 148 мин, получается как раз где-то 2 GB весь фильм. Разумеется, много зависит от динамичности происходящего в кадре. Одна минута видео с драками, погонями может выйти и на 20-30 MB, минута разговора в спокойной обстановке - 5-10 MB. Можно экспериментировать с CRF (Constant Rate Factor) - коэффициент постоянного качества, пробовать 22, 23... (больше 23-24 - уже начинается откровенная лажа). Т.е. для вашего случая нет смысла в двухпроходном кодировании с каким-то установленным видеобитрейтом. CRF держит заданный уровень качества на протяжении всего видео и автоматически повышает битрейт для динамичных сцен, понижает для спокойных. Также не стоит забывать, что больше битрейта требуется для зашумленного, зернистого видео, для сцен, где много мелких деталей, ярких красок и т.п. Для подбора качества CRF целесообразно не терять время на перекодирование аудио: Код: ffmpeg -ss 00:02:30 -to 00:03:30 -i input.mkv -c:v libx264 -crf 21.0 -preset faster -vf crop=1920:804:0:138 -s 1280x536 -an -sn video_only_1min.mkv | -an (audio not) -sn (subtitle not) Определившись со значением CRF, для кодирования всего фильма не забыть удалить из строки параметры -ss HH:MM:SS -to HH:MM:SS |