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

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

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

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).
     
    Сборки для Windows 7
     
    Запуск офф. сборок 7.0.1 на Windows 7  
     
    Список различных сборок.
     
    Архив старых версий ffmpeg
     
    По общим вопросам написания командных файлов есть отдельная тема "Командная строка, батники, сценарии - bat, cmd".

  • Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: ED_Sln, 08:32 02-10-2024
    mithridat1



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

    Цитата:
    во всех архивах лежит "святая троица" а их размер разный от 354кб в ffmpeg-n4.4.1-win64-gpl-shared-4.4 до 113мб в ffmpeg-4.4.1-full_build есть ещё и размером 77мб

    В shared сборках либы лежат отдельно, поэтому такой маленький размер основного приложения. Однако, без этих библиотек работать ничего не будет. Чтобы не путаться качайте сборки full, там все в одном файле ffmpeg.exe должно быть.

    Всего записей: 5025 | Зарегистр. 05-01-2006 | Отправлено: 22:53 26-10-2021
    notinthewoods



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    351878
    Надежнее всего качать отсюда:
    https://www.gyan.dev/ffmpeg/builds/
    Выбрать: release builds ---> ffmpeg-release-full.7z (ffmpeg-4.4.1-full_build.7z)
     
    Проще всего качать отсюда:
    https://www.videohelp.com/software/ffmpeg

    Цитата:
    Latest version
    4.4.1 (October 25, 2021)
    Download ffmpeg 4.4.1 Windows 64-bit

    -----
    release builds - стабильные сборки (практически для любых задач)
    essentials - лишь самое необходимое
    shared - в разобранном виде (экзешники, библиотеки, кодеки и т.д.)
     
    Архивы в 7z сжаты существенно сильнее, чем архивы zip. Главное - смотреть на название скачиваемого файла. Например:
    ffmpeg-4.4.1-full_build.7z (39,68 MB) и ffmpeg-4.4.1-full_build.zip (128,5 MB) - это одно и то же по содержимому.

    Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 23:43 26-10-2021
    351878



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mithridat1
    notinthewoods
    благодарю, просветился.

    Всего записей: 1207 | Зарегистр. 28-03-2016 | Отправлено: 18:51 27-10-2021
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Набор советов и подсказок. Может кому пригодится
    _https://amiaopensource.github.io/ffmprovisr/

    Всего записей: 7730 | Зарегистр. 08-09-2001 | Отправлено: 22:26 27-10-2021
    brRamires

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

    Код:
     
      ffmpeg.exe -i input.flac -filter:a "adelay=1000|1000,areverse" output.opus
     
    ffmpeg version n4.4-190-g7e0d640edf-20211024 Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 10-win32 (GCC) 20210408
    ...
    [libopus @ 000001f07bd6d5c0] Queue input is backward in time
    [opus @ 000001f07bd6bac0] Non-monotonous DTS in output stream 0:0; previous: 5448, current: 3661; changing to 5449. This may result in incorrect timestamps in the output file.
    ...
     
      foobar2000 --> Utilities --> Verify integrity
    Warning: Nonsense Ogg granulepos value, file is not properly seekable
    Warning: Reported length is inaccurate : 2:15.942771 vs 2:16.013500 decoded

     
     
      ffmpeg.exe -i input.flac -filter:a "areverse,adelay=1000|1000" output.opus
    [OK]
     
     
      ffmpeg.exe -i input.flac -filter:a "adelay=1000|1000,areverse,adelay=0|0" output.opus
    [OK]
     
     
      ffmpeg.exe -i input.flac -filter:a "adelay=1000|1000,areverse,adelay=1000|1000,areverse" output.opus
    [OK]
     
      foobar2000 --> Utilities --> Verify integrity
    Warning: Reported length is inaccurate : 2:17.000000 vs 2:17.000813 decoded
     
     
      ffmpeg.exe -i input.flac -filter:a "adelay=1000|1000,areverse,adelay=2000|2000,areverse" output.opus
    ...
    [libopus @ 000001f2d76ad600] Queue input is backward in time
    [opus @ 000001f2d76abb00] Non-monotonous DTS in output stream 0:0; previous: 54489, current: 52662; changing to 54490. This may result in incorrect timestamps in the output file.
    ...
     

    Аналогично для aac и ac3, другие кодеки не стал смотреть.

    Всего записей: 564 | Зарегистр. 28-09-2008 | Отправлено: 05:12 07-11-2021 | Исправлено: brRamires, 05:14 07-11-2021
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так надо не здесь про баги писать - а на траке ffmpeg.

    ----------
    AMD Ryzen 7 7700 /ASRock B650M Pro RS /G.Skill RIPJAWS 32 ГБ /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9385 | Зарегистр. 11-05-2006 | Отправлено: 08:30 07-11-2021
    brRamires

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksoid1978, написал.
     
    Ещё, особенность фильтра atrim - он не обновляет временные метки, поэтому после него нужно использовать asetpts:

    Код:
     
    ffmpeg.exe -i input.flac -filter:a "atrim=start=10:end=30,asetpts=PTS-STARTPTS" output.flac
     

    Всего записей: 564 | Зарегистр. 28-09-2008 | Отправлено: 19:11 07-11-2021 | Исправлено: brRamires, 19:56 07-11-2021
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть MKV, в котором видео AVC, 2 аудиодорожки E-AC3 и куча субтитров.
    Решил перекодировать звук в обычный AC3.

    Код:
    cd /d "%~dp0"
    for %%a in (*.mkv) do ffmpeg -i "%%a" -c:v copy -c:s copy -c:a ac3 -b:a 640k "_%%~na.mkv"
    pause

    На выходе получаю уменьшение аудиодорожек и субтитров до 1 шт. Почему количество дорожек уменьшилось?

    Всего записей: 10787 | Зарегистр. 05-02-2003 | Отправлено: 20:25 14-11-2021
    Ligre

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

    Цитата:
    In the absence of any map options for a particular output file, ffmpeg inspects the output format to check which type of streams can be included in it, viz. video, audio and/or subtitles. For each acceptable stream type, ffmpeg will pick one stream, when available, from among all the inputs.
     
    It will select that stream based upon the following criteria:
     
    for video, it is the stream with the highest resolution,
    for audio, it is the stream with the most channels,
    for subtitles, it is the first subtitle stream found but there’s a caveat. The output format’s default subtitle encoder can be either text-based or image-based, and only a subtitle stream of the same type will be chosen.

     
    Так что без опции -map 0 тут не обойтись.
     
    Инфа отсюда:
    https://ffmpeg.org/ffmpeg.html#toc-Automatic-stream-selection
    https://trac.ffmpeg.org/wiki/Map

    Всего записей: 1000 | Зарегистр. 20-11-2011 | Отправлено: 21:17 14-11-2021
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ligre
    Спасибо. Добавил "-map 0" и количество дорожек осталось прежним.

    Код:
    cd /d "%~dp0"
    md output
    for %%a in (*.mkv) do ffmpeg -i "%%a" -map 0 -c:v copy -c:s copy -c:a ac3 -b:a 640k "output\%%~na.mkv"
    pause

    Всего записей: 10787 | Зарегистр. 05-02-2003 | Отправлено: 19:44 15-11-2021 | Исправлено: V0lt, 19:48 15-11-2021
    iNNOKENTIY21



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Скриню видео командой
    Код:
    ffmpeg.exe -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop capture-screen.mp4
    как бы отрезать последние ~5 сек, где записана остановка записи? Или как бы останавливать запись экрана, без попадания сего действия на запись? А может  заранее задавать продолжительность записи видео?

    Всего записей: 3650 | Зарегистр. 16-08-2012 | Отправлено: 22:51 16-11-2021
    Aleksoid1978



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

    Цитата:
    как бы отрезать последние ~5 сек

    Ну можешь после записи, на уже готовом файле.

    ----------
    AMD Ryzen 7 7700 /ASRock B650M Pro RS /G.Skill RIPJAWS 32 ГБ /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9385 | Зарегистр. 11-05-2006 | Отправлено: 02:28 17-11-2021
    V0lt



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

    Цитата:
    А может  заранее задавать продолжительность записи видео?

    Используйте параметр -t.
    Пример записи 10.5 секунд.

    Код:
    ffmpeg.exe -f gdigrab -framerate 30 -t 10.5 -i desktop capture-screen.mp4


    Цитата:
    как бы отрезать последние ~5 сек, где записана остановка записи?

    Такой возможности нет. Сначала вас нужно будет определить получившуюся длительность из нее вычесть нужное количество секунд и полученное значение использовать в параметре -t при обрезке полученного файла. Это вроде можно автоматизировать, но Я не знаю как.

    Всего записей: 10787 | Зарегистр. 05-02-2003 | Отправлено: 06:47 17-11-2021
    Gideon Vi

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

    Всего записей: 8168 | Зарегистр. 02-02-2004 | Отправлено: 09:11 17-11-2021 | Исправлено: Gideon Vi, 09:12 17-11-2021
    iNNOKENTIY21



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

    Цитата:
    Или как бы останавливать запись экрана, без попадания сего действия на запись?

    почти, появление консоли осталось заглушить. как всё сложно то %) костылизация-автоматизации
     
    ярлык с командой, которая ищет процесс ffmpeg, его родительский процесс и посылает предку команду закрыть окно:
    Код:
    C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nologo -noprofile -WindowStyle Hidden -command . {(Get-Process -Id ((gwmi win32_process | ? ProcessId -eq (Get-Process ffmpeg).Id).ParentProcessId)).CloseMainWindow()}

    других процессов ffmpeg быть не должно, а то ой
     
    видео «capture-screen.mp4» (3.44 MB)

    Всего записей: 3650 | Зарегистр. 16-08-2012 | Отправлено: 23:52 17-11-2021
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Резка по времени, считая c конца:
    Код:
    set Sec_to_cut=1.000
    set Save_to=Cut
    set MediaInfo=MediaInfo
    set FFmpeg=FFmpeg
    if not exist "%Save_to%" md "%Save_to%"
    for /f "delims=" %%f in ('dir /a-d/b "*.m*"') do (
    for /f "delims=." %%x in ('"%MediaInfo% --Inform=General;%%Duration/String3%% "%%f""') do call :Cut "%%x" "%%f")
    :Cut
    set total=%~1
    set /a sec_total=(3600*(1%total:~0,2%-100)+60*(1%total:~3,2%-100)+1%total:~6,2%-100)-Sec_to_cut
    set /a h=sec_total/3600%%24,m=sec_total%%3600/60,s=sec_total%%3600%%60
    set h=0%h%& set m=0%m%& set s=0%s%
    %FFmpeg% -hide_banner -i "%~2" -to "%h:~-2%:%m:~-2%:%s:~-2%" -c copy "%Save_to%\%~2"&&del "%~2"&exit /b
    Ещё есть -sseof (Like the -ss option but relative to the "end of file". That is negative values are earlier in the file, 0 is at EOF.) Может, то же делает.
    1) FFmpeg добавляет главы из файлов вида CHAPTERxx CHAPTERxxNAME? Если да, может менять время?
    2) Можно в полученном через FFmpeg MKV избегать тегов DURATION, VENDOR_ID?
    3) B M4A добавить Title для потока. -metadata:s title не работает, только -metadata title для контейнера.
    4) Кто кодирует в AAC? Давно было мнение, что кодер FFmpeg уступает CoreAudioToolbox через QAAC. A сейчас?

    Всего записей: 101 | Зарегистр. 05-01-2021 | Отправлено: 22:03 22-11-2021
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вопрос есть: Какой правильный синтаксис поднятия контраста по маске?  
     
    Для картинок нашел такой вариант -
     
    ffmpeg -i image.jpg -i mask.png -filter_complex "[0]eq=contrast=2[contrast];[contrast][1]alphamerge[alf];[0][alf]overlay=format=auto" output.png
     
    (маска в градиентах серого)
     
    Для видео - нашел только с блуром,
     
    ffmpeg -i video.mp4 -i mask.png -filter_complex "[0:v][1:v]alphamerge,avgblur=10[alf];[0:v][alf]overlay[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart maskedblur.mp4
     
    просто подстановка, как понимаю, не годится, используются разные синтаксисы. Но как тогда сделать?
     
    И вдогонку - какой синтаксис у фильтра CAS? в документации очень невнятно, я ничерта не понял.. Можно-ли его так же по той же маске добавить?  
     
    И еще один вопрос, подозреваю, что ответ "нет", но для очистки совести:  
    можно ли в ходе одного шага (без промежуточной перекодировки) кропить кусок 1280*720из большого кадра (2592*1944) и в нем, малом, проворачивать контраст по маске?

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 22:14 22-11-2021
    bredonosec



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

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 20:17 01-12-2021
    deniums

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

    Цитата:
    Кто кодирует в AAC?

    В AAC кодирует встроенный кодер. По возможности лучше использовать -c:a libfdk_aac, он очень хороший. Но на cbr в fdk лучше явно указать срез, например -b:a 128k -cutoff 17000 (по умолчанию 15000). Или использовать опцию -vbr 5 (~192k, 5 это максимум), у нее среза нет.
    Недостаток fdk - работает только в 16 бит. Надо следить, чтобы не было клиппинга. И из-за патентных ограничений он не всегда встроен.
     
    Встроенный AAC с версии 3.0 прокачали, он стал неплох. Хотя, я как-то словил один артефакт даже на большом битрейте. А потому, если уж кодировать им, то с такими параметрами: -c:a aac -q:a 2.8 -cutoff 18000
    Т.е. использовать режим целевого качества, а не битрейта. В vbr по умолчанию срез не используется даже на низких битрейтах, нужно указать самому. Есть поддержка float.
    Что касается QAAC, мои наблюдения, что у него есть тенденция к склизлости. Спектры хороши, но это не показатель.

    Всего записей: 392 | Зарегистр. 18-11-2021 | Отправлено: 08:02 02-12-2021 | Исправлено: deniums, 08:09 02-12-2021
    bravo100

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста!!!
    Для скачивания с Youtube в программе Download Master нужен ffmpeg  
    Нашел таеой текст  
    Вам понадобятся 2 файлика youtube-dl 7.8 Мб и ffmpeg 15.7 Мб.
    Первый нужен для непосредственно закачки а второй для соединения аудио и видео потоков.
    Таким образом папка Application Data (внутри программы) становится тяжелее на 23 Мб, зато не надо держать отдельный загрузчик!
    Перепробовал много вариантов, но ничего не выходит
    Что за файлик ffmpeg 15.7 Мб имеется ввиду

    Всего записей: 286 | Зарегистр. 15-01-2018 | Отправлено: 05:09 04-12-2021
    Открыть новую тему     Написать ответ в эту тему

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

    Компьютерный форум 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