Ответы пользователя по тегу FFmpeg
  • Как ускорить аудио под необходимый длину?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А что, пропорции в школе не учили считать?
    704 -- 1
    720 -- x
    Догадаетесь что на что умножить и что на что разделить надо?
    Только вот от таких манипуляций наверняка будут искажения и ухудшится качество. Зачем такое делать? Просто для красивой длины оно того не стоит. Это как ресайзить jpeg который уже в экранном разрешении на несколько десятков пикселей. Волна искажений пройдёт по всей картинке, возможно появятся ступеньки и артефакты. Но для картинок ресайз ещё можно как-то оправдать (хотя не низкого разрешения), типа надо куда-то встроить изображение, а вот с длительностью аудио не понятно зачем эта "красота".
    Ответ написан
    Комментировать
  • Можно ли через ffmpeg создавать простую кинетическую типографику или движущийся текст?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    FFmpeg позволит вам соединить отдельные кадры в видеоролик и свести этот ролик со звуковой дорожкой, но не более.
    Сами кадры стекстом придётся чем-то рисовать. Причем не только сам текст печатать, но и покадрово раскладывать анимацию.
    Если в приведенном вами примере была "простая уинетическая анимация", то для ее отрисовки готовых стандартных утилит скорее всего нет никаких. Придётся делать модель и рендерить ее.
    В принципе, задача не сложная. В том примере. что вы привели есть две четко выраженные фазы:
    1) добавление слова
    2) анимация масштабирования всего холста так, чтобы добавленное слово заполнило по ширине основную часть экрана.

    На первой фазе слово может быть добавлено просто снизу текущей области отображения с рандомным размером шрифта. Первое слово каждой строки (или предложения) переворачивается на рандомный бок.
    На второй фазе происходит покадровая анимация перемещения, масштабирования и (если надо) поворота всего холста до заполнения центральной части только что добавленным прямоугольником. Несложная математика.
    Да, динамика процесса нелинейная, а первое слово там после немножко еще уменьшается после максимальной фазы, но это уже детали.
    Ответ написан
    4 комментария
  • Как предотвратить деформацию картинок в ролике?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Самый простой вариант - подготовить картинки заранее обрезав и качественно смасштабировав их под нужный формат кадра.
    Можно воспользоваться вот этой распространенной утилитой https://imagemagick.org
    Или любой аналогичной для командной строки.
    Фактически вам нужен ресайз под конкретный размер по вертикали. а затем кроп под конкретную ширину, однако так у вас может отрезаться часть значимого сюжета.
    Можно слишком широкие картинки (типа 16:9) снабдить предварительно сверху и снизу небольшими полями, чтобы по бокам отрезалось меньше.
    Получить рамеры картинки поможет утилита exiftool.
    Ещё цвет полей картинки можно выбрать близким к фону каринки на краях. Для этого можно сильно размыть картинку по гауссу и взять несколько проб цвета из верхней чсти изображения и из нижней. Усреднить и получится цвет полей, которые не будут сильно бросаться в глаза. Ещё можно размыть верх и низ картинки по маске и смешать с фоном.
    Для всего этого лучше, конечно, не на баше скрипт писать, а на питоне с использованием библиотеки PIL (pillow).
    Ответ написан
    Комментировать
  • Почему ffmpeg имеет высокую скорость записи?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    pojarcky, тут же не клуб экстрасенсов, как мы поймём, что дёргающиеся гифки - это у вас чатом зовётся? В указанном примере никакого чата не наблюдается.
    ок.
    Проблема может возникнуть при захвате чата и при слиянии (не понятно как вы это делаете).
    Посмотрите отдельно на поток чата до слияния. Попробуйте запустить слияние с теми же настройками с другим нормальным роликом нужных пропорций.

    Решение всех проблем всегда однотипно: разедить проблему на части и реашть их по отдельности. Если какая-то из частей слишком велика -- см пункт первый.
    Ответ написан
    Комментировать
  • Как записать логи ffmpeg в файл?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    У вас там однотипные кавычки, во-первых. Это уже не хорошо.
    Во-вторых, вы перенаправление вывода делаете не там. Портится синтаксис вызова.
    Объявите функцию, в ней делайте что вам надо с перенаправлениями и вызывайте уже её.
    Вот здесь про объявление и вызов функций: https://habr.com/ru/company/ruvds/blog/327248/
    function myfunc {
    ffmpeg ... >> out.log
    }
    Ответ написан
    1 комментарий
  • Как запустить несколько процессов в ffmpeg?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    ну я бы посмотрел в сторону линукса. в винде, говорят, сейчас можно фактичкески консоль линукса получить... не пробовал. давно не трогал винду.
    но если вам удастся, то посмотрите на xargs.
    Там есть ключ, ограничивающий к=максимальное количество запускаемых одновременно процессов.
    Так что можно наборы параметров командной строки передать в xargs конвейером и она вам запустит много ffmpeg'ов в разхных процессах.

    Наверно можно и через powershell, там говорят все тоже продумано круто, но, камон, это для извращенцев. На винде вы не должны этого хотеть=)

    В любом случае ищите про асинхронные вызовы из шелла или xargs под винду
    Ответ написан
  • Как правильно получать кадр фильма без артефактов?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Попробуйте вытаскивать из видео не кадр, а фрагмент. Эмпирически можно подобрать его длину, чтобы гарантированно попался ключевой кадр.
    Из вырезанного фрагмента, сохранённого уже без сжатия можно отдельным вызовом ffmpeg получить последний кадр.
    Ответ написан