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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

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

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. Тема, посвященная сборкам ffmpeg/ffprobe, работающих под Windows XP.
    Сборки:
    От Gianluigi Tiesi
    От Reino Wijnsma
    Static builds by Kyle Schwarz (последний для WinXP ffmpeg-3.0-win32-static.7z).
     
    GUI под WinXP (ffqueue, WinFF, Video converter).
     
    Сборки для Windows 7
     
    Запуск офф. сборок 7.0.1 и более новых на Windows 7  
     
    Список различных сборок.
     
    Архив старых версий ffmpeg на VideoHelp
     
    По общим вопросам написания командных файлов есть отдельная тема "Командная строка, батники, сценарии - bat, cmd".

  • Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: 351878, 19:40 15-09-2025
    notinthewoods



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

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

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

    Всего записей: 514 | Зарегистр. 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
         
         

    Всего записей: 2624 | Зарегистр. 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

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

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

    Всего записей: 2624 | Зарегистр. 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

    Всего записей: 11268 | Зарегистр. 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

    Всего записей: 514 | Зарегистр. 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 и др.

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

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

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

    Всего записей: 2624 | Зарегистр. 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=.....

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

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

    Всего записей: 2624 | Зарегистр. 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

    Всего записей: 514 | Зарегистр. 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' можно не указывать?

    Всего записей: 2624 | Зарегистр. 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"

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

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

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

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

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

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

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

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


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

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

    Всего записей: 7677 | Зарегистр. 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.
     

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



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

    Всего записей: 5180 | Зарегистр. 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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru