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

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

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

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 года. Static builds by Kyle Schwarz (последний для WinXP ffmpeg-3.0-win32-static.7z).

  • Всего записей: 64 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: Kero1, 22:28 15-06-2021
    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, визуально сравнивая один и тот же кадр при быстром переключением между копиями, туда и обратно.

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

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



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

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

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

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

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

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

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

    Всего записей: 997 | Зарегистр. 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"
     
    Подскажите, как поднять в приоритете звук с микрофона? Что-бы он когда идёт звук с обоих источников, был громче системного

    Всего записей: 294 | Зарегистр. 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
    Решение по ссылке подойдет?

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

    Всего записей: 294 | Зарегистр. 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="Микрофон...

    Всего записей: 997 | Зарегистр. 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. и что характерно - тест в консоли всё нормально, запускаю запись, выдаёт ошибку и зависает...

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

    Всего записей: 997 | Зарегистр. 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/.
    По второй ссылке их тоже выкладывают.

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

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



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

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

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

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



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

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

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

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

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

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

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

    Всего записей: 3842 | Зарегистр. 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
     
    думал, будет разбивать по сегментам
     
     
     

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

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

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