>>6531Навіщо ж тоді використовувати VLC, якщо все одно потім будеш пропускати через ffmpeg? Не кажучи вже про те, що кодуєш у vp8 та vorbis замість набагато кращих за них vp9 та opus. Судячи з анімублядського треду, вони тут підтримуються, на відмінно від форчану.
>>6466Приклад всього однієї команди ffmpeg:
<Шлях до твого ffmpeg.exe> -ss 1:34:59 -t 20 -i "C:\Відео.mkv" -c:v libvpx-vp9 <або "-b:v 364k", або "-crf 30 -b:v 0k"> -c:a libopus -b:a 92k putinkhooilo.webm
Пояснення:
Шляхом може бути C:\User\Ololo\ffmpeg\ffmpeg.exe (або можна просто запустити дабл-кліком ffmpeg з директорії та потім замість шляху просто писати на початку ffmpeg, я не пам'ятаю як воно на вінді. Можно також додати його в PATH, але це гемор
-ss = початок у форматі ГГ:ХХ:СС.мілісекунди (мс не обов'язково)
-t = Кількість потрібних тобі секунд починаючи з часу, вказаного у ss
-i = input, Повний шлях до відео ("D:\krpva..\asdcc\123.mp4", шлях краще вказувати у лапках)
-c:v libvpx-vp9 = Енкодер відео vp9
-b:v = Бітрейт. Те, що становить вагу відео та його якість. Такою простою командою він не завжди буде відповідати тому, що ти вказав, та на виході може відрізнятися
Замість b:v можна використати -crf (0-63) -b:v 0. crf - це приблизний показник якості. 30 - стандартна обробка, нижче - краще якість та більше розмір. При користуванні crf, треба також вказувати нульовий бітрейт (-b:v 0)
-c:a libopus = Енкодер аудіо opus, який прийшов на зміну vorbis (в принципі, якщо аудіо бітрейт вище за ~128k, то можна і vorbis використовувати, але це не має сенсу)
-b:a = Очевидно, бітрейт аудіо
pootinkhooilo.webm - Назва файлу на виході. Якщо вказати без повного шляху, то файл опиниться в робочій диреторії ffmpeg
Також можна додати -vf scale=720:480 або будь-які інші виміри, щоб маленький бітрейт не так погано виглядав на великій роздільній здатності (очевидно, бітрейт у 300k буде краще виглядати на відео 480р в порівнянні із 1080р). Якщо ти, наприклад, хочеш відео на 700 пікселів горизонтально, та не хочеш вираховувати скільки треба вказати по вертикалі щоб відео зберегло співвідношення, можна вказати -2. Тобто, -vf scale=700:-2, та ffmpeg автоматично підбере вертикаль.
Вирахувати необхідний для певного розміру бітрейт дуже просто:
Наприклад, нам потрібно відео на 50 секунд та розміром 10 мегабайт. 10 мегабайт - це 10240 кілобайт. 10240*8/50 = 1638 (множимо на кількість біт у байті, та ділимо це на секунди). Віднімаємо від цього бажаний бітрейт аудіо: 1638-92 = 1546. Тобто, у команді буде -b:v 1546k. Хоча, без дворазового кодування розмір може трохи відрізнятися, тому я б рекомендував виставляти трохи менше, наприклад 1480.