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

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

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

guru431

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


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

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

  • Всего записей: 64 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: V0lt, 13:24 13-03-2022
    metatrop

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

    Цитата:
     
    Подскажите прогу с хорошим окном предпросмотра для любых типов видеофайлов
     

     
    Для меня самым удобным оказался в итоге Media Player Classic (MPC) при следующих, однако, условиях
    1) работа из файл-менеджера как естественная норма. Конкретно из FAR, но сойдёт и Total Commander.
    2) умение обращаться с AviSynth и наличие оного установленного (в реестре должны быть прописаны ссылки на avisynth.dll), наличие avss.dll (функция DSS2()) в папке плагинов для AviSynth.
    3) установлен K-Lite Codec Pack Mega, и сделаны некоторые настройки для совместной работы с AviSynth: в ffdshow включены опции Process raw video/video.
     
    Выбираем в панели FAR нужный файл видео, нажимаем некоторую клавишу (в FAR настраивается любая в качестве макроса; или же выбираем пункт пользовательского меню двумя или тремя последовательными нажатиями клавиш). В ответ генерируется в директории %TEMP% .avs скриптик вида
     
    DSS2("D:\path\myfile.mkv")
     
    или посложнее, если нужно также и аудио поток слышать... Маршрут к этому скриптику указывается при запуске MPC. Смысл в том, что функция DSS2() почти всегда обеспечивает покадровую точность позиционирования, одновременно поддерживая все форматы, которые поддерживает подсистема DirectShow (а по сути кодеки K-Lite). Иначе покадровой точности не видать в MPC.
     
    Далее в самом MPC по некоторой клавише (допустим настроена по букве g) открывается небольшое окошко с точным временем, номером кадра и общим fps видео. Можно и посмотреть текущее место, и ввести новое значение.
     
    Если работать в XP/2003, то разные копии MPC исключительно удобно переключаются нажиманиями внизу в панели заданий. В Windows 7 ситуация менее благоприятная, т.к. повторное нажатие не возвращает фокус окна предыдущей копии MPC. Открывать обычно приходится несколько копий MPC, визуально сравнивая один и тот же кадр при быстром переключением между копиями, туда и обратно.

    Всего записей: 272 | Зарегистр. 17-09-2010 | Отправлено: 15:21 27-09-2020
    notinthewoods

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо Ajaja, metatrop за отклик.
    Что касается Avidemux (у меня последняя версия 2.7.6), то у проги глюки при навигации по таймлинии на кодеках VP9 и AV1.
     
    А вот совет насчет AviSynth заинтересовал. Установил AviSynthPlus 3.6.1 2020-06-19, закинул avss.dll в папку plugins. Решил воздержаться от FAR Manager, просто приготовил шаблон скрипта avs:

    Цитата:
    loadplugin("C:\Program Files (x86)\AviSynth+\plugins\avss.dll")
    video = DSS2("path to video file")
    audio = DirectShowSource("path to video file")
    AudioDub(video, audio)

    Скрипт отлично воспроизводится (со звуком) в MPC-HC для любого формата видео, в том числе VP9 и AV1. Покадровый просмотр. Меню - Навигация - Переход... (горячие клавиши Ctrl+G).
    Опа, только что это?..

    Номер кадра один и тот же, а таймкод плавает((
    Имхо лучше использовать предлагаемый для подобных целей AvsPmod - текстовый редактор для AviSynth с прекрасным окном предпросмотра видео. Звука только нет.
    Удобно копировать таймкод для параметров -ss и -to для ffmpeg.

    Всего записей: 188 | Зарегистр. 31-01-2015 | Отправлено: 05:23 29-09-2020
    V0lt



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    metatrop, notinthewoods
    Тема по AviSynth ТАМ.

    Всего записей: 9601 | Зарегистр. 05-02-2003 | Отправлено: 05:45 29-09-2020
    notinthewoods

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Виноват. Прошу извинить. А как вы решаете эту задачу, т.е имеется видео и нужно перекодировать во ffmpeg фрагмент с точностью до кадра. Как вы определяете таймкод начала и конца фрагмента?

    Всего записей: 188 | Зарегистр. 31-01-2015 | Отправлено: 07:41 29-09-2020
    Ajaja

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

    Цитата:
    Что касается Avidemux (у меня последняя версия 2.7.6), то у проги глюки при навигации по таймлинии на кодеках VP9 и AV1.

    Тогда есть определенная вероятность, что и ffmpeg будет так же тупить с таймингами на этих кодеках. Avidemux  же на движке ffmpeg.
    Поэтому, наверное, тут действительно лучше через фреймсервер вроде AviSynth работать.
     

    Всего записей: 1027 | Зарегистр. 17-06-2004 | Отправлено: 10:00 29-09-2020
    I would like to know



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем бобра. Настраиваю FFmpeg для записи с экрана в ShareX. Удалось объеденить звук с 2-х источников:
     
    -rtbufsize 150M -f dshow -framerate 24 -i video="screen-capture-recorder":audio="Микрофон (Realtek High Definiti" -f dshow -i audio="virtual-audio-capturer" -filter_complex amix=inputs=2:duration=first:dropout_transition=3 -c:v libx264 -r 24 -preset ultrafast -tune zerolatency -crf 28 -pix_fmt yuv420p -movflags +faststart -c:a aac -ac 2 -b:a 192k -y "output.mp4"
     
    Подскажите, как поднять в приоритете звук с микрофона? Что-бы он когда идёт звук с обоих источников, был громче системного

    Всего записей: 298 | Зарегистр. 16-07-2015 | Отправлено: 19:51 30-09-2020 | Исправлено: I would like to know, 19:51 30-09-2020
    V0lt



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    I would like to know
    Решение по ссылке подойдет?

    Всего записей: 9601 | Зарегистр. 05-02-2003 | Отправлено: 20:02 30-09-2020
    I would like to know



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Вот такое вбиваю :
     
    ffmpeg -i audio="Микрофон (Realtek High Definiti" -i audio="virtual-audio-capturer" -filter_complex \ "[0:a]volume=0.5[a0]; \ [1:a]volume=6dB[a1]; \ [[a0][a1]amix=inputs=2[a]" \ -map 0:v -map "[a]" -c:v copy -c:a aac -shortest output.mp4
     
    выдаёт ошибку:
     
    audio=Микрофон (Realtek High Definiti: No such file or directory
    Received stop event after 4 passes
     

    Всего записей: 298 | Зарегистр. 16-07-2015 | Отправлено: 21:13 30-09-2020 | Исправлено: I would like to know, 21:15 30-09-2020
    Ajaja

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    I would like to know
    ffmpeg -f dshow -i audio="Микрофон...

    Всего записей: 1027 | Зарегистр. 17-06-2004 | Отправлено: 22:31 30-09-2020
    I would like to know



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ох и примарил меня этот квест.
     
    ffmpeg  -f dshow -i audio="Микрофон (Realtek High Definiti" -f dshow -i audio="virtual-audio-capturer" -filter_complex \
    "[0:a]volume=0.8[a0]; \
    [1:a]volume=0.8[a1]; \
    [a0][a1]amix=inputs=2[a]" \
    -map 0:v -map "[a]" -c:v copy -c:a aac -shortest output.mp4
     
    Вылетает:
     
    Error initializing complex filters.
    Invalid argument
    leaving aero onReceived stop event after 4 passes
     
    p.s. и что характерно - тест в консоли всё нормально, запускаю запись, выдаёт ошибку и зависает...

    Всего записей: 298 | Зарегистр. 16-07-2015 | Отправлено: 23:03 30-09-2020 | Исправлено: I would like to know, 23:10 30-09-2020
    Ajaja

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    I would like to know
    -map 0:v ?  
     
    Плюс не уверен, что тут с dshow  можно shortest использовать.

    Всего записей: 1027 | Зарегистр. 17-06-2004 | Отправлено: 23:05 30-09-2020 | Исправлено: Ajaja, 23:10 30-09-2020
    V0lt



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

    Цитата:
    Кто знает, где теперь взять аналоги сборок "shared" что можно было скачать у Zeranoe?

    Сборки "shared" появились на https://www.gyan.dev/ffmpeg/builds/.
    По второй ссылке их тоже выкладывают.

    Всего записей: 9601 | Зарегистр. 05-02-2003 | Отправлено: 19:46 06-10-2020
    notinthewoods

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

    Цитата:
    ffmpeg.exe -y -rtbufsize 100M -f gdigrab -thread_queue_size 4096 -framerate 30 -probesize 100M -draw_mouse 1 -i title="name" -channel_layout stereo -f dshow -thread_queue_size 4096 -i audio="Стерео микшер (Realtek High Definition Audio)" -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -filter:v setpts='(RTCTIME-RTCSTART)/(TB*1000000)' screen.mp4

    Запись с экрана (со звуком из динамиков компьютера) только активного окна. Каждый раз в выходном файле рассинхрон - звук отстает от видео примерно на полсекунды. Вроде как величина рассинхрона не меняется по ходу всего записанного видео. Может кто подсказать, как исправить ситуацию?
    Windows 10. ffmpeg 4.3.1

    Всего записей: 188 | Зарегистр. 31-01-2015 | Отправлено: 01:07 17-10-2020
    V0lt



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

    Код:
    ... -itsoffset -0.5 -i audio="Стерео микшер (Realtek High Definition Audio)" ...

    Всего записей: 9601 | Зарегистр. 05-02-2003 | Отправлено: 14:06 17-10-2020
    notinthewoods

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Добавил параметр. Начал запись и секунд через 30-40 комп намертво завис. После аварийной перезагрузки открыл Диспетчер задач, снова запустил запись. Оказалось, что потребление памяти стало стремительно повышаться. Остановил запись перед очевидным зависанием:
       
    Процессор не самый слабый - Intel Core i5-2500K 3.3GHz, оперативки - 8 GB.
    Получается, что из-за каких-то аппаратных или софтовых проблем ffmpeg не может вести синхронную запись видео и звука. Соответственно, введение в процесс записи искусственной отрицательной задержки для аудио приводит к такой негативной реакции со стороны системы.
    Попробовал сделать наоборот: добавил положительную задержку 500 мс для входного видеопотока:

    Цитата:
    ...-itsoffset 0.500 -i title="name"...

    Это абсолютно ни на что не повлияло, ни в лучшую, ни в худшую сторону. Параметр был просто проигнорирован.
    Короче, решением пока является последовательный запуск двух процессов ffmpeg.exe. Вот как выглядит у меня батник для записи с экрана:

    Цитата:
    chcp 65001
    ffmpeg -y -rtbufsize 100M -f gdigrab -thread_queue_size 4096 -framerate 30 -probesize 100M -draw_mouse 1 -i title="name" -channel_layout stereo -f dshow -thread_queue_size 4096 -i audio="Стерео микшер (Realtek High Definition Audio)" -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -filter:v setpts='(RTCTIME-RTCSTART)/(TB*1000000)' screen.mp4
    ffmpeg -y -i screen.mp4 -itsoffset -0.500 -i screen.mp4 -map 0:v -map 1:a -c copy screen_offset.mp4
    pause

    Всего записей: 188 | Зарегистр. 31-01-2015 | Отправлено: 21:39 17-10-2020
    FiLinX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, объясните мне, куда я должен тыркнуть, чтоб скачать такую же как было Static сборку для вин-32?
    Захожу на советуемый https://github.com/BtbN/FFmpeg-Builds/releases , и что я вижу - все под 64 бита..
    Где вот просто взять такое же, что можно положить в привычную директорию, и прописать в системный патч ???
     
    Пока нашёл только крайнюю что было - https://web.archive.org/web/20200916105315/ffmpeg.zeranoe.com/builds/win32/static/

    Всего записей: 638 | Зарегистр. 05-05-2010 | Отправлено: 17:10 23-10-2020 | Исправлено: FiLinX, 17:26 23-10-2020
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Есть длинный аудио файл WAV, там произносятся имена приблизительно на равных промежутках, мне надо вырезать каждое имя и сохранить в отдельные файлы...
    Скажите пожалуйста, какую команду нужно применить к FFMPEG-у, чтобы это сделать,  
    пример файла приложил: https://dropmefiles.com/ZpqKk
     
    Большое спасибо, а то ручками замучился вырезать каждый файл по отдельности

    Всего записей: 158 | Зарегистр. 10-04-2013 | Отправлено: 10:04 31-10-2020
    los

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

    Цитата:
    Большое спасибо, а то ручками замучился вырезать каждый файл по отдельности

    вам в любом случае понадобятся значения - начало и длина промежутка.
     
    ffmpeg -i 122.wav -ss 10 -to 20 -c copy out.wav
    10 - начало
    20 - продолжительность.
     
     

    Всего записей: 5844 | Зарегистр. 08-09-2001 | Отправлено: 10:17 31-10-2020
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
     
    спасибо, пробовал применить такие параметры, но ничего не выходит:
     
    ffmpeg -i 1.wav -map 0 -f segment -segment_time 3 -c copy out%03d.wav
     
    думал, будет разбивать по сегментам
     
     
     

    Всего записей: 158 | Зарегистр. 10-04-2013 | Отправлено: 10:58 31-10-2020 | Исправлено: vlad_001, 10:59 31-10-2020
    claim35



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vlad_001
    Ваш конкретный файл в два счёта разрезало на 22 части вот такой командой
    ffmpeg -i 122.wav -f segment -segment_time 2.5 -c copy out%03d.wav
    Почти хорошо, но не идеально. Для идеала конечно нужен точный тайминг начала и конца фрагмента. Можно в одну команду типа такой
    ffmpeg -i 122.wav -ss S -to E -c copy output1.wav -ss S -to E -c copy output2.wav …

    Всего записей: 1946 | Зарегистр. 27-05-2007 | Отправлено: 11:06 31-10-2020 | Исправлено: claim35, 11:09 31-10-2020
    Открыть новую тему     Написать ответ в эту тему

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

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru