Змінна швидкість передачі бітів з налаштуваннями "-vb" та "minrate" / "maxrate" у FFmpeg


12

Для візуалізації час, який потрібно, дуже різний.

  • -b 3500K -minrate 0K -maxrate 8000K займає 1ч 17хв
  • vb=3000k займає 2,5 години

Що таке vb 3000kі чим він відрізняється -b 3500K -minrate 0K -maxrate 8000K? Це налаштування змінної швидкості передачі?

Якщо я змінився -b 3500K -minrate 3500K -maxrate 3500K, чи є це постійною швидкістю передачі бітів?

Відповіді:


16

Будь ласка , прочитайте документацію для FFmpeg, і запустити ffmpeg -h fullв списку опцій. Також подивіться цю статтю, яку я написав, яка показує відмінності між режимами контролю швидкості в кодерах, таких як x264 та x265.

Як правило, ось що означають варіанти:

  • -b:v(або -vbте саме) визначає цільову середню швидкість передачі бітів для використання кодера:

    -b <int> E..VA. встановити бітрейт (у бітах / с) (від 0 до INT_MAX)

  • -minrate визначає мінімальний допуск, який слід використовувати:

    -minrate <int> E..VA. Встановити мінімальний допуск бітрейта (у бітах / с). Найбільш корисно для налаштування коду CBR. Інакше мало користі. (від INT_MIN до INT_MAX)

  • -maxrateвказує максимальний допуск. Однак, як вказує документація, це використовується лише у поєднанні з bufsize:

    -maxrate <int> E..VA. Встановити максимальний допуск бітрейта (у бітах / с). Потрібно bufsizeвстановити. (від INT_MIN до INT_MAX)

    -bufsize <int> E..VA. встановити розмір буфера управління контролем швидкості (у бітах) (від INT_MIN до INT_MAX)

    Це має сенс лише для кодування змінної бітової швидкості, де замість використання постійної бітової швидкості або моделі постійної якості кодер імітує передачу з віртуальним буфером на декодер. В -minrate/ -maxrate/ -bufsizeопції управління , що розмір буфера. Зазвичай цей режим використовується тільки для потокової передачі, оскільки техніка обмежує швидкість передачі бітів, щоб не перевищувати певне значення, яке може спричинити переповнення або перелив буфера декодера.

Підводячи підсумок, у вас є кілька варіантів обмеження бітрейта:

  1. Щоб налаштувати процес CBR, ви повинні перевірити, що пропонує енкодер. Зазвичай ви не можете досягти "ідеального" постійного бітрейта, оскільки кодер не витрачає біти. Якщо встановити -b:v, -minrateі -maxrateна тих самих рівнях, ви досягнете цього, наприклад, для libx264:

    ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
    

    Попередження: Це може призвести до низької якості для відео, які важко кодувати, і це витратить біти. Якщо вам абсолютно не потрібно досягти постійної швидкості виходу, не використовуйте цю опцію.

  2. Налаштування обмеженого / змінної швидкості передачі бітів для потокового передавання. Використовуйте -b:v 3500K -maxrate 3500K -bufsize 1000K, наприклад. Вам доведеться, очевидно, скорегувати швидкість і розміри буфера під контекст. Чим більший розмір буфера, тим вище допустима зміна бітрейта.

  3. Використовуйте постійну ціль якості та обмежте бітрейт лише для лову шипів. Наприклад, використовуйте -c:v libx264 -crf 23 -maxrate 4M -bufsize 4Mдля кодування за змінною бітрейтом з цільовим CRF 23, але обмежте висновок максимум до 4 Мбіт / с.


1
Як би це кодувати за допомогою змінної швидкості передачі? як у синтаксисі використовувати?
Скотт Дауні

Який кодер ви бажаєте використовувати?
slhck

ffmpeg, я вважаю, що використовується в kdenlive
Скотт Дауні

Ні, я мав на увазі, як: x264 для відео H.264 / MPEG-4 AVC або XviD для MPEG-4, або Ogg Theora тощо, просто кажучи: який файл ви хочете? MP4?
slhck

3
Дивіться тут для отримання додаткової інформації про кодування з x264 у FFmpeg; особливо це стосується пресетів (я, як правило, використовую дуже швидкий пресет, у моїх тестах найбільший спад у розмірі файлів був між надшвидким та дуже швидким - після цього різниці були набагато більш інкрементальними. YMMV, звичайно).
злий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.