Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FFmpeg

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

Открыть новую тему     Написать ответ в эту тему

guru431

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах, а также консольная утилита ffmpeg.exe, представляющая из себя универсальный видеоконвертер.
 

Ссылки на русском:
  • Документация по FFmpeg
  • Статья «19 команд FFmpeg для любых нужд»
  • Статья «20 команд FFmpeg для начинающих»
     
    Примеры использования:
  • Преобразовать в MKV
  • Захвата с экрана, со звуком
  • Кодирование с помощью технологии Nvidia NVENC
  • Поддержка вывода Юникода в консоль Windows
  • Подготовка качественных GIF-файлов из видео при помощи FFmpeg
     
    Поддержка Windows XP
    Последний официальный билд под Windows XP от Zeranoe ffmpeg-20150525-git-8ce564e был в мае 2015. Тема (нужен TOR), посвященная сборкам ffmpeg/ffprobe, работающих под Windows XP.
    Готовые сборки, зеркало версии от 2019, 2020, 2021 года.
    Static builds by Kyle Schwarz (последний для WinXP ffmpeg-3.0-win32-static.7z).
    GUI под WinXP (ffqueue, WinFF, Video converter).
     
    Список различных сборок.
     
    По общим вопросам написания командных файлов есть отдельная тема "Командная строка, батники, сценарии - bat, cmd".

  • Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: V0lt, 16:51 27-01-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA

    Цитата:
    наложить текст на video... при скачивании... на лету

    Вас что интересует - наложить субтитры или вклеить текст в изображение в кадре (хардсабы - вшитые субтитры)?
    Во втором случае '-c copy' использовать невозможно, это же фильтрация, т.е требуется перекодирование видеопотока.
    С какого сайта вы собираетесь скачивать с помощью FFMPEG?

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 14:15 05-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                     notinthewoods
         Мне нужно решение в общем виде. Поэтому сайт - любой.
         Если с '-c copy' не работает, значит это пожелание снимается.
         Интересует просто 'текст', как в 'https://stackoverflow.com/questions/17623676/text-on-video-ffmpeg'. Вроде такого:
         ffmpeg -i URL -vf "drawtext=fontfile=/path/to/font.ttf:text='Stack Overflow':fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2" -codec:a copy output.mp4
         
         

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 14:33 05-03-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    Да, собственно, у вас уже почти готовый вариант. Только в вашем примере один и тот же текст будет на постоянке. Перекодирование видеопотока с настройками по умолчанию. Что может "на лету" не сработать должным образом. Чем выше разрешение (например, на лайвстримах), чем слабее железо - тем печальнее результат.
     
    Вот пример захвата лайвстрима (720p), текст появляется по центру снизу (отступ от нижнего края 50 пикселей). Будет в кадре 20 сек (с 10-й по 30-ю). Цвет шрифта белый (100% непрозрачности), цвет тени черный (50% непрозрачности). Тень нужна обязательно, потому что без нее в кадре на светлом фоне белый шрифт будет плохо виден или вообще не виден.
    Настройки кодирования: -crf 23 -preset veryfast (или superfast).
    Обратить внимание на дополнительные обратные слэши в пути к файлу шрифта (CMD Windows).

    Код:
    ffmpeg -hide_banner -i https://live-edge.../playlist.m3u8 -vf "drawtext=text='Я сижу на кухне и мне скучно..':fontfile='C\:\\Windows\\Fonts\\trebuc.ttf':fontcolor=white@1.0:fontsize=60:shadowcolor=black@0.5:shadowx=3:shadowy=3:x=(w-text_w)/2:y=h-text_h-50:enable='between(t,10,30)'" -crf 23 -preset veryfast -c:a copy video_drawtext.mp4

    https://i.imgur.com/tLcx2rn.jpeg

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 16:15 05-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                          notinthewoods
        Спасибо за код. Некоторые детали:
        1. Я хочу, всё же, попробовать 'текст' 'на всём протяжении'.
        2. Если 'C:\WINDOWS\Fonts' записать в 'Path', то можно ли так написать:
             ....fontfile='trebuc.ttf....        ?
        3. Цвет шрифта хочу попробовать 'black' без тени.

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 17:30 05-03-2024
    rsss



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите есть файл mkv с 3D-video мультфильмом. Формат 1920х1080. У него очень большой битрейт, хотелось бы уменьшить видео до 6000 Мбит и битрейт звуковой дорожк АС-3 уменьшить до 384 кБит, ну и желательно с 2-х проходныи кодированием.
    Какие команды мне лучше прописать в bat-файле для кодирования?  

    Всего записей: 548 | Зарегистр. 25-12-2004 | Отправлено: 17:46 05-03-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rsss

    Цитата:
    Формат 1920х1080. У него очень большой битрейт, хотелось бы уменьшить видео до 6000 Мбит ... ну и желательно с 2-х проходныи кодированием.

    https://trac.ffmpeg.org/wiki/Encode/H.264#twopass

    Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 18:00 05-03-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA

    Цитата:
    Если 'C:\WINDOWS\Fonts' записать в 'Path', то можно ли так написать:
             ....fontfile='trebuc.ttf....        ?

    Нет. Это же путь для значения внутреннего параметра фильтра drawtext, который сам, в свою очередь, является параметром FFMPEG.
     
    Для черного цвета шрифта хорошо подходит напр. желтая тень:
    https://i.imgur.com/7gMuMQv.jpeg

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 20:49 05-03-2024
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Примеры внедрения текста в видео:
    2.27 Insert a text which is visible for the whole duration
    2.28 Slowly fade a text in and out и др.

    Всего записей: 73 | Зарегистр. 05-01-2021 | Отправлено: 20:01 06-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

            Извините, но '.png' вижу, а 'font' - нет.

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 10:08 07-03-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    '.png' вероятно в этой же папке, что и батник. Или обычное указание полного пути к файлу.
    Насчет 'font', то вот так всё работает:

    Код:
    set "path_to_fontfile=C\:\\Windows\\Fonts\\trebuc.ttf"
     
    ffmpeg -hide_banner -i ... -vf "drawtext=text='...':fontfile='%path_to_fontfile%':fontcolor=.....

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 12:14 07-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                             notinthewoods
         Ваш код работает, вопросов нет.
         Я имею ввиду, что в '2.27' и '2.28' я 'font' не заметил. А меня интересует именно 'текст'.
         'set' можно использовать, но мне кажется, что это 'отягощает' код.

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 13:32 07-03-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    Этот файл .pdf периодически обновляется (некоторое время назад он был на несколько МБ меньше), просто пункты сейчас другие:

    Цитата:
    2.27 2.53 Insert a text which is visible for the whole duration
    2.28 2.54 Slowly fade a text in and out

    Там как раз 'set' и используется. Имхо удобно, можно легко найти нужный параметр для корректировки значения. Если делать это прямо в строке команды, то повышается вероятность потерять какой-нибудь символ или наоборот что-то лишнее добавить.
     
    Добавлено.
    Если будете пользоваться 2.53, то меняйте настройки кодирования видео - они там сумасшедшие)
    Про аудио там вообще нет ничего, поэтому последует принудительное перекодирование аудио. Добавьте просто -c:a copy

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 16:30 07-03-2024 | Исправлено: notinthewoods, 16:42 07-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
          В '2.53' и '2.54' используется такой синтаксис:
     
          set "FONT=arial.ttf"
          ...fontfile=%FONT%...
     
         Это то, о чём я уже спрашивал ранее. Получается, что 'Path' можно не указывать?

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 18:29 07-03-2024 | Исправлено: LZAA, 19:41 07-03-2024
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    Вы же опытный юзер, легче самому проверить все варианты)
     
    Вот вам 3 варианта задать переменную %FONT%:

    Код:
    set "FONT=arial.ttf"
    set "FONT=C:\Windows\Fonts\arial.ttf"
    set "FONT=C\:\\Windows\\Fonts\\arial.ttf"

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

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 20:08 07-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

          Понятно. Попробую.

    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 21:08 07-03-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    https://annimon.com/article/3999

    Всего записей: 4243 | Зарегистр. 11-02-2020 | Отправлено: 12:54 08-03-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                                       greeple
     
                       
    Цитата:
    меня интересует именно 'текст'


    Всего записей: 2218 | Зарегистр. 09-01-2010 | Отправлено: 13:01 08-03-2024 | Исправлено: LZAA, 13:01 08-03-2024
    greeple

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    ну так в любой программе сделай текст как хочешь в png сохрани и добавляй

    Всего записей: 4243 | Зарегистр. 11-02-2020 | Отправлено: 13:46 08-03-2024
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA, используемая вами ffmpeg собрана с libfontconfig и т.д.?

    Цитата:
    Draw a text string or text from a specified file on top of a video, using the libfreetype library.
     
    To enable compilation of this filter, you need to configure FFmpeg with --enable-libfreetype and --enable-libharfbuzz. To enable default font fallback and the font option you need to configure FFmpeg with --enable-libfontconfig. To enable the text_shaping option, you need to configure FFmpeg with --enable-libfribidi.
     

    Всего записей: 7336 | Зарегистр. 08-09-2001 | Отправлено: 16:48 08-03-2024
    mithridat1



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Релиз FFmpeg 7.0 с поддержкой MPEG-5

    Всего записей: 4948 | Зарегистр. 05-01-2006 | Отправлено: 11:50 05-04-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

    Компьютерный форум Ru.Board » Компьютеры » Программы » FFmpeg


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru