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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что то я начинаю разочаровываться в ffmpeg - ffmpeg может создавать миниатюры, может встраивать в видео и аудио но не может копировать в файл на выходе если миниатюра уже присутствует заранее в видео или аудио файле - печально.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 08:51 12-10-2023
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vaskamy, из примера выше:
    mediainfo baz.mp4

    Код:
    Writing application                      : Lavf60.3.100
    Cover                                    : Yes


    Всего записей: 7336 | Зарегистр. 08-09-2001 | Отправлено: 13:23 12-10-2023
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    Ваш пример не рабочий - ffmpeg не может ни копировать ни перемещать обложки - не данных в интернете и нейро-сеть сказала что не может. Я вторые сутки ищу ответ и его нет, все тупо в ступор впадают.
    ffmpeg может только добавлять и извлекать обложки и всё.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 15:17 12-10-2023 | Исправлено: vaskamy, 15:18 12-10-2023
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пытаюсь по найденным скриптам нарисовать к ролику паддинг внизу и на этом черном паддинге дать текст.  
    Ругается

    Цитата:
    [Parsed_drawtext_4 @ 06065d80] Using "C:/Windows/fonts/mingliu.ttc"
    [AVFilterGraph @ 007cdb00] Too many inputs specified for the "drawtext" filter.
    Error reinitializing filters!
    Failed to inject frame into filter network: Invalid argument
    Error while processing the decoded data for stream #0:0

     
    сам скрипт -  

    Код:
    fmpeg -i input.mp4 -vf "scale=1280:-1,pad=1280:720ow-iw)/2:0,setsar=sar=1/1,setdar=dar=16/9, [in]drawtext=fontfile='c:\Windows\Fonts\arial.ttf': text='текст, первая строка': x=(w-text_w)/2:y=h-th-140: fontsize=35: fontcolor=white: enable='between(t,2,10)', drawtext=fontfile='c:\Windows\Fonts\arial.ttf': text='текст, вторая строка': x=(w-text_w)/2:y=h-th-40: fontsize=35: fontcolor=white: enable='between(t,3,10)' [out]" -c:v libx264 -crf 21 -c:a copy output.mp4  

     
    Вроде как всё по учеьникам со стэковерфлоу, но ругается.
    Как его приручить?

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 16:06 12-10-2023
    neorumtu

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если кому надо, ffmpeg со встроенным fdkaac можно скачать здесь. Для Windows 7+ и Linux 32/64.

    Всего записей: 538 | Зарегистр. 30-08-2023 | Отправлено: 16:26 12-10-2023
    los

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

    Цитата:
    Ваш пример не рабочий - ffmpeg не может ни копировать ни перемещать обложки - не данных в интернете и нейро-сеть сказала что не может.

    ну если сама "нейро-сеть сказала что не может."
     
    ffmpeg -i foo.mp4 -map 0 -c copy bar.mp4
    mediainfo bar.mp4 | grep Cover
    Cover                                    : Yes


    Всего записей: 7336 | Зарегистр. 08-09-2001 | Отправлено: 16:50 12-10-2023
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Попросил я нейро-сеть что бы она мне модифицировала скрипт для извлечения обложки из видео, он должен присваивать правильное расширение извлечённой картинке в зависимости от того в каком формате она находится в видео, да только не хочет он вобще работать:

    Код:
    @echo off
    CD /D "%~dp1"
    set "ffmpeg=D:\ffmpeg\bin"
    set "path=%path%;%ffmpeg%"
     
    for %%i in (%1) do (
      if "%%~xi"==".jpg" (
        ffmpeg -i %1 -map 0:v -map -0:V -c copy %1.jpg
      ) else if "%%~xi"==".png" (
        ffmpeg -i %1 -map 0:v -map -0:V -c copy %1.png
      ) else (
        echo "Unsupported file format!"
      )
    )
     
    pause

     
    Добавлено:
    los

    Цитата:
    ffmpeg -i foo.mp4 -map 0 -c copy bar.mp4

    Какие то сущьности захватили разум моего железа - я вчера и сегодня выполнял эту команду и обложка не копировалась а удалялась а теперь стала копироваться не знаю в чём причина, кроме как на бесов не на кого подумать.
     
     
    Добавлено:
    Я не шучу про бесов.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 16:56 12-10-2023
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vaskamy, для батников есть отдельная тема и там скорее всего помогут быстрее. Из того что на виду: вам нужно с помощью ffmpeg/ffprobe или другой удобной вам программой определить в каком формате хранится обложка в файле - png, jpeg и т.п. и только после этого ее извлекать.  

    Всего записей: 7336 | Зарегистр. 08-09-2001 | Отправлено: 20:37 12-10-2023
    FiLinX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vaskamy
    Цитата:
    должен добавлять русскую звуковую дорожку ставить её на первое место

    а я вот для VOT что-то наподобие хочу..
    там можно получить (урл) файл аудио дороги перевода от яндекса
    ну и вот хоться батник (yt-dlp_ffmpeg) чтоб качался ролик в 22 формате например, и производился микс аудиодорог накладыванием, но только чтоб уровень громкости оригинальной дорожки понижался на 90%  -  такое реально?
    (про VOT-CLI знаю, но это геморрой и непонимаю будет ли накладыванием с пониженной громкостью оригинала)

    Всего записей: 1774 | Зарегистр. 05-05-2010 | Отправлено: 21:28 12-10-2023 | Исправлено: FiLinX, 21:32 12-10-2023
    Baltazar500



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt, перегнал в mka/m4a. На выходе та же петрушка и некорректно воспроизводящийся по второй дороге файл.
     

    Код:
    [matroska @ 00000000004ea400] Starting new cluster due to timestamp=1890.7kbits/s speed= 233x
        Last message repeated 9 times  284928kB time=00:20:46.20 bitrate=1873.0kbits/s speed= 249x
    frame=31158 fps=5910 q=-1.0 Lsize=  299412kB time=00:21:39.66 bitrate=1887.2kbits/s speed= 247x
     

     
    Пересобранный через mkvmerge отличается от fgmpeg'овского тем, что в mediainfo для видео "Nominal bitrate" изменился на "Bitrate", у аудио появился "Stream size", а у субтитров нарисовалось аж пачка параметров: Duration, Bit rate, Frame rate, Count of elements, Stream size

    Всего записей: 2106 | Зарегистр. 19-09-2011 | Отправлено: 21:41 12-10-2023
    V0lt



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

    Цитата:
    перегнал в mka/m4a. На выходе та же петрушка и некорректно воспроизводящийся по второй дороге файл.

    Возможно баг в FFmpeg. Предложу вам написать баг-репорт с подробностями и сэмплами.
     

    Цитата:
    Пересобранный через mkvmerge отличается от fgmpeg'овского тем, ...

    MKVToolNix заточен на то, чтобы собирать MKV-шки, и делает это уже 20 лет. Пользуйтесь чаще.

    Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 22:01 12-10-2023
    Baltazar500



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt, вот сэмплы, думаю вам виднее будет что в багрепорте написать. Я не особо плотно общаюсь с ffmpeg.
     
    з.ы. Я в курсе, что метаданные языка в файле заданы некорректно, но мне так проще в vlc с файлами на момент той сборки работать.

    Всего записей: 2106 | Зарегистр. 19-09-2011 | Отправлено: 23:59 12-10-2023 | Исправлено: Baltazar500, 00:00 13-10-2023
    V0lt



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

    Цитата:
    вот сэмплы, думаю вам виднее будет что в багрепорте написать.

    Мне не интересно писать баг-репорты за вас.
     
    Хотя есть похожий баг-репорт #6037.
    Временное решение - использовать "-max_interleave_delta 0".

    Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 19:24 13-10-2023
    Baltazar500



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt,
    Цитата:
    Мне не интересно писать баг-репорты за вас.  
    Из меня плохой ответчик на английском. Составить багрепорт я смогу. Но если пойдут технически сложные вопросы на английском - я "поплыву".

    Цитата:
    Хотя есть похожий баг-репорт #6037.
    Временное решение - использовать "-max_interleave_delta 0".
    Судя по тому, что после добавления данного костыля ключа в консоли пропали строки "Starting new cluster due to timestamp бла-бла-бла" и при воспроизведении файл корректно игрался что с одной, что с другой дорожкой не смотря на наличие субтитров в составе контейнера - это та же самая проблема.
     
    В любом случае - спасибо за то, что поразбирали вопрос. В итоге таки это баг, а не у меня лыжи не едут руки кривые.

    Всего записей: 2106 | Зарегистр. 19-09-2011 | Отправлено: 21:10 13-10-2023 | Исправлено: Baltazar500, 21:11 13-10-2023
    Ilya_SpongeBob

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как добавить картинку в видео? Напр. скачиваю 720p 10downloader.com/download?v=youtube.com%2Fembed%2FB75qZ9ssiN4 . Далее создаю рисунок image.PNG 1280x720.

    Код:
     
     ffmpeg -loop 1 -t 4 -i image.PNG image.mp4


    Код:
     
    ffmpeg -f concat -safe 0 -i bat.txt -c copy output.mp4

     
    bat.txt :
    file Activatethedroids.mp4
    file image.mp4
     
    В конце output.mp4 вроде появляется рисунок , но не 4 сек, а 0,5 сек.
     
    Еще так пробовалось, но тоже нифига не работает:

    Код:
    ffmpeg -framerate 1/4 -i image.PNG image.mp4

     
    В интернете предлагают еще 100 комбинаций , но те вообще  выдают ошибку .

    Всего записей: 482 | Зарегистр. 16-02-2011 | Отправлено: 03:58 14-10-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ilya_SpongeBob
    У меня получилось так:
    yt-dlp -f 136+140 B75qZ9ssiN4 -o Activate_the_droids.mp4

    Код:
    ffmpeg -loop 1 -i image.png -t 4 -pix_fmt yuv420p -r 30000/1001 image.mp4

    list.txt ->
    file 'Activate_the_droids.mp4'
    file 'image.mp4'

    Код:
    ffmpeg -f concat -safe 0 -i list.txt -c copy Summa.mp4

    Activate_the_droids.mp4 - 00:01:11
    image.mp4 - 00:00:04
    Summa.mp4 - 00:01:15
     
    Частоту кадров (30000/1001) в image.mp4 выставил такую же, что и в Activate_the_droids.mp4

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 06:56 14-10-2023
    Ilya_SpongeBob

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    А что делать, если Frame rate mode  = Variable?
    Др. видео-файл:
    Frame rate mode                : Variable
    Frame rate                     : 30.000 fps
    Minimum frame rate             : 29.900 fps
    Maximum frame rate             : 30.020 fps
     
    По аналогии сделано (-r 30) -- картинка не добавилась

    Всего записей: 482 | Зарегистр. 16-02-2011 | Отправлено: 11:44 14-10-2023 | Исправлено: Ilya_SpongeBob, 12:53 14-10-2023
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ilya_SpongeBob
    Да, с переменным fps у меня тоже получился облом(
    Выход пока тривиальный:

    Код:
    ffmpeg -i video_var_fps.mp4 -c:v libx264 -crf 21 -preset faster -c:a copy video_const_fps.mp4

    Соответственно, для image.mp4 аналогичное значение параметра -r (напр. -r 30)
    Может, более продвинутые юзеры подскажут решение порациональнее.

    Всего записей: 494 | Зарегистр. 31-01-2015 | Отправлено: 23:55 14-10-2023
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    notinthewoods
    Выложите архив с исходными файлами и батником, который правильно бы отработал для постоянной частоты, но не работает с VFR.

    Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 08:30 15-10-2023 | Исправлено: V0lt, 09:31 15-10-2023
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно в код для наложения аудио дорожки на встроенную в видео аудио дорожку:

    Код:
    "%FFMPEGPATH%" ^
    -i "%%i" ^
    -filter_complex "amovie=%%a:loop=0,asetpts=N/SR/TB[over]; [0][over]amix=duration=shortest" ^
    -c:v copy ^
    "%%~ni_replaced.mp4"
     
    добавить возможность регулирования в встроенном и в накладываемом аудио по отдельности громкость в децибелах.
    У меня не получается добавить.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 11:08 15-10-2023
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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