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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 | Исправлено: nick7inc, 12:06 23-05-2022
    mithridat1



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OlegTheMath
    Быстрый способ поворота без перекодирования (через изменение метаданных)
     
    ffmpeg -i input.mp4 -metadata:s:v rotate="90" -c copy output.mp4
     

    Всего записей: 4554 | Зарегистр. 05-01-2006 | Отправлено: 06:49 28-04-2021 | Исправлено: mithridat1, 06:55 28-04-2021
    OlegTheMath



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mithridat1, data man
    Спасибо!

    Всего записей: 184 | Зарегистр. 08-05-2003 | Отправлено: 10:01 28-04-2021 | Исправлено: OlegTheMath, 10:04 28-04-2021
    MMasutin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как при резке сохранять non-key frames путём копирования или кодирования? Иначе показывается первый/последний kf.

    Всего записей: 18 | Зарегистр. 05-01-2021 | Отправлено: 01:12 02-05-2021 | Исправлено: MMasutin, 20:00 16-05-2021
    Xom9I4oK



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ни у кого случаем не завалялся виндусовый билд данной проги с интегрированным кодером svt-vp9 (наличие чекается командой ffmpeg --help encoder=libsvtvp9).

    Всего записей: 505 | Зарегистр. 01-04-2005 | Отправлено: 17:34 02-05-2021 | Исправлено: Xom9I4oK, 18:22 02-05-2021
    Baltazar500



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    После ремукса второго сезона данного  сериала (уборка ENG дороги) полученный ремукс на хардварном плеере (dune 102) стал воспроизводиться без звука. Сейчас пытаюсь понять, связано ли это с тем, что fgmpeg перемахал файл в avi формата 2.0 (OpenDML) или из-за того, что влепил кривой ID кодеку AC3 аудиодороги. Вместо 2000
    Код:
    00001000-0000-0020-8000-00AA00389B71
    Параметры ремукса были такие
    Код:
    ffmpeg -i "xxx.avi" -map 0:v -map 0:a:0 -map_metadata 0 -c copy "yyy.avi"
    При этом, смуксенный оригинальный файл через AviDemux хардварный плеер без проблем съел. OpenDML и кривого ID кодека там не было. Всё было как у оригинала. В связи с этим есть пара вопросов.  
     
    1) Можно ли ffmpeg заставить следовать спецификации и сохранять avi в старом формате при габаритах менее 2ГБ (или 4-х, не помню точно), а не более 1ГБ ? Может есть какой ключ, регулирующий этот момент ?
     
    2) Есть ли ключ, который позволяет жёстко регулировать Codec ID (в данном случае AC3) ?

    Всего записей: 1849 | Зарегистр. 19-09-2011 | Отправлено: 05:38 15-05-2021
    V0lt



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

    Цитата:
    После ремукса второго сезона данного  сериала (уборка ENG дороги) полученный ремукс на хардварном плеере (dune 102) стал воспроизводиться без звука. Сейчас пытаюсь понять, связано ли это с тем, что fgmpeg перемахал файл в avi формата 2.0 (OpenDML) или из-за того, что влепил кривой ID кодеку AC3 аудиодороги.

    У вас проблема не в OpenDML (т.к. файл открывается и воспроизводится), а в идентификаторе звуковой дорожки.
    Мой дремучий DVD-плеер спокойно кушал AVI OpenDML. Единственная проблема была с файлами больше 2ГБ из-за ограничений файловых систем оптических дисков.
     

    Цитата:
    При этом, смуксенный оригинальный файл через AviDemux хардварный плеер без проблем съел.

    Посоветую и дальше использовать AviDemux.
     
    Еще могу предложить VirtualDubMod, если в конечном файле будет несколько аудиодорожек, или VirtualDub 1.10.4 - если одна. Посоветую VirtualDub pack rev.14 из шапки темы по VD.
     

    Цитата:
    1) Можно ли ffmpeg заставить следовать спецификации и сохранять avi в старом формате при габаритах менее 2ГБ (или 4-х, не помню точно), а не более 1ГБ ? Может есть какой ключ, регулирующий этот момент ?  

    Нет спецификации, которая запрещает использовать OpenDML для маленьких AVI. Старый формат AVI поддерживает не более 2 ГБ.
    В FFmpeg сделали границу в 1 ГБ, ключа нет.

    Всего записей: 9658 | Зарегистр. 05-02-2003 | Отправлено: 07:43 15-05-2021
    Baltazar500



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt,
    Цитата:
    У вас проблема не в OpenDML (т.к. файл открывается и воспроизводится), а в идентификаторе звуковой дорожки.
    И как его скорректировать ? При подобной схеме ремукса проблемы конкретно с этой раздачей (2 сезон, первый не брал ибо его выложили вот-вот). С другими аналогичными файлами (avi, 2 A3, дороги, первая RU, вторая ENG) ffmpeg так не чудил и корректно копировал идентификаторы.
    Цитата:
    Посоветую и дальше использовать AviDemux.
    ffmpeg удобен для пакетной обработки через консоль. С AviDemux в этом плане заморочек побольше, плюс ему необходима прединдексация  обрабатываемых файлов, на что надо отдельно тратить время.
    Цитата:
    Еще могу предложить VirtualDubMod, если в конечном файле будет несколько аудиодорожек, или VirtualDub 1.10.4 - если одна. Посоветую VirtualDub pack rev.14 из шапки темы по VD [?].
    VDub позволяет осуществлять пакетную обработку, но не через консоль, ввиду чего ряда нюансов, которые можно учесть в скрипте в нём не получится обработать на автомате. Только вручную.
    Цитата:
    В FFmpeg сделали границу в 1 ГБ, ключа нет.
    Понятно. То-то я гугл замучил, но ничего не нашёл.

    Всего записей: 1849 | Зарегистр. 19-09-2011 | Отправлено: 08:17 15-05-2021 | Исправлено: Baltazar500, 08:19 15-05-2021
    V0lt



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

    Цитата:
    VDub позволяет осуществлять пакетную обработку, но не через консоль

    В комплекте имеется консольная версия (vdub.exe). Также есть возможность запускать GUI-версию с ключами командной строки. Делать можно много чего. Но проблема в том, что писать скрипт придется полностью самому, готовых решений в интернете не найти.
     
    В общем проблема с FFmpeg в следующем:
    Было:
    Код:
    WAVEFORMATEX:
    wFormatTag: 0x2000
    nChannels: 6
    nSamplesPerSec: 48000
    nAvgBytesPerSec: 48000
    nBlockAlign: 1
    wBitsPerSample: 0
    cbSize: 0 (extra bytes)

    Стало:
    Код:
    WAVEFORMATEX:
    wFormatTag: 0xfffe
    nChannels: 6
    nSamplesPerSec: 48000
    nAvgBytesPerSec: 48000
    nBlockAlign: 3840
    wBitsPerSample: 16
    cbSize: 22 (extra bytes)
     
    WAVEFORMATEXTENSIBLE:
    wValidBitsPerSample: 16
    dwChannelMask: 0x0000060f
    SubFormat: {00002000-0000-0010-8000-00AA00389B71}

     
    FFmpeg увидел 6-канальное аудио и расширил структуру WAVEFORMATEX до WAVEFORMATEXTENSIBLE. Что как бы правильно, но для AVI из-за совместимости такое делать не стоит (железо такое может не понять).
    Ключ -write_channel_mask false не помогает.
    По идее надо писать запрос, чтобы сделали параметр для совместимости.
     
     
    Добавлено:
    Создал тикет #9244.

    Всего записей: 9658 | Зарегистр. 05-02-2003 | Отправлено: 09:59 15-05-2021 | Исправлено: V0lt, 10:21 15-05-2021
    Baltazar500



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt,
    Цитата:
    FFmpeg увидел 6-канальное аудио и расширил структуру WAVEFORMATEX до WAVEFORMATEXTENSIBLE. Что как бы правильно, но для AVI из-за совместимости такое делать не стоит (железо такое может не понять).
    Ключ -write_channel_mask false не помогает.
    Понятно. Значит я наступи на грабли, которые забыли учесть. ОК.
    Цитата:
    Создал тикет #9244.
    Спасибо, я бы может и не заморочился по этому поводу. Просто хотелось понять, в чём проблема. Если бы не решил перепроверить - вообще бы прошёл мимо этой проблемы :/ А оно эвона как оказалось :/
    Цитата:
    В комплекте имеется консольная версия (vdub.exe). Также есть возможность запускать GUI-версию с ключами командной строки. Делать можно много чего. Но проблема в том, что писать скрипт придется полностью самому, готовых решений в интернете не найти.
    Это та, которая работает в связке с AviSynth или я путаю ? В любом случае я в такие дебри VDub'a не лез. Где синтаксис и примеры работы с файлами можно глянуть ?

    Всего записей: 1849 | Зарегистр. 19-09-2011 | Отправлено: 11:21 15-05-2021
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
     
    Есть задача наложить текст на видео FFMPEG-ом
     
    Текст будет кириллицей, должен появляться из центра и длиться с 4 по 9 сек, местоположение и цвет должны быть изменяемыми(редактируемыми)....
     
    подскажите пожалуйста

    Всего записей: 158 | Зарегистр. 10-04-2013 | Отправлено: 20:54 15-05-2021 | Исправлено: vlad_001, 12:14 16-05-2021
    MMasutin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как при резке сохранять non-key frames путём копирования или кодирования? Иначе показывается первый/последний kf.

    Всего записей: 18 | Зарегистр. 05-01-2021 | Отправлено: 20:10 16-05-2021
    Baltazar500



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

    Всего записей: 1849 | Зарегистр. 19-09-2011 | Отправлено: 03:18 19-05-2021 | Исправлено: Baltazar500, 03:21 19-05-2021
    V0lt



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

    Цитата:
    Есть задача наложить текст на видео FFMPEG-ом

    Сделать файл субтитров (.ASS) с нужными эффектами. Гугл в помощь.
    А затем отрендерить поверх видео. См. статью HowToBurnSubtitlesIntoVideo.
     
    Baltazar500
    Я раздачу не скачивал, у себя похожий файл нашел и проверил, что выдает FFmpeg.

    Всего записей: 9658 | Зарегистр. 05-02-2003 | Отправлено: 16:54 19-05-2021
    stansharp

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть два видеофайла, в формате ts.
    Оба абсолютно идентичны, из одной трансляции.
    Требуется: Вырезать из каждого фрагменты по две минуты,  
    склеить их и получить в итоге видеофайл длинной четыре минуты в формате  mp4.  
    Желательно копию.
    Вопрос: Как сделать эту операцию в один клик?
    ---------------------------------------------------------
    В чём проблема?
    Создал файл list.txt. В нём прописал
     
    file input1.ts
    inpoint 00:02:00.000
    outpoint 00:04:00.000
    file input2.ts
    inpoint 00:02:00.000
    outpoint 00:04:00.000
     
    Запускаю команду:
     
    ffmpeg -f concat -i list.txt -c copy output.mp4
     
    На выходе получаю файл output.mp4, длинной две минуты.  
    То есть, программа вырезает, форматирует и сохраняет только первый фрагмент.
    -------------------------------------------------------------
    Примечания
     
    1. Если изначально переформатировать оба файла в mp4, то проблем нет.
    Проблема именно с файлами в ts
     
    2. Склеивание двух файлов в ts (без вырезки нужных фрагментов)  
    и последующее переформатирование в mp4, командой:
     
    ffmpeg -i "concat:input1.ts|input2.ts|" -c copy output.mp4"
    )
    pause
     
    программа тоже производит без проблем.
     
    3. Просьба, альтернативные варианты, типа переформатируй, вырежь и склей, не предлагать.)
     
    Нужен именно вариант в один клик!
     

    Всего записей: 9 | Зарегистр. 28-12-2017 | Отправлено: 10:00 05-06-2021 | Исправлено: stansharp, 10:38 05-06-2021
    los

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

    Цитата:
    Создал файл list.txt. В нём прописал...
    ...На выходе получаю файл output.mp4, длинной две минуты.
    То есть, программа вырезает, форматирует и сохраняет только первый фрагмент.
     

    у меня работает без проблем. Возможно дело в версии ffmpeg которую вы используете.

    Всего записей: 5907 | Зарегистр. 08-09-2001 | Отправлено: 12:59 05-06-2021
    stansharp

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за ответ.
    Версию ffmpeg использую последнюю.
    Пересборка файлов командой:
     
    for %%a in (*.ts) do (
    call ffmpeg -i "%%a" -hide_banner -c copy "%%~na_fix.ts"
     
    решило проблему. Значит проблема не в ts, а в исходных видеофайлах.
    -------------------------------------------------------------------------
    Попробовал склеить исходные файлы командой:
     
    ffmpeg -f concat -i list.txt -c:v libx264 -c:a aac output.mp4
     
    проблему тоже не решило. На выходе опять вырезает только фрагмент из первого файла.
    -------------------------------------------------------------------------
    Ладно, хрен с ним. )
    Если у кого то появиться желание разобраться,  
    на всякий случай, скопирую результат командной строки:
     
    [mpegts @ 0000023e2a9976c0] start time for stream 0 is not set in estimate_timings_from_pts
    Input #0, concat, from 'list.txt':
      Duration: 00:12:37.00, start: -0.050000, bitrate: 0 kb/s
      Stream #0:0: Data: timed_id3 (ID3  / 0x20334449)
      Stream #0:1: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn
      Stream #0:2: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 128 kb/s
    Output #0, mp4, to 'output.mp4':
      Metadata:
        encoder         : Lavf59.2.101
      Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 30 tbr, 90k tbn
      Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Stream mapping:
      Stream #0:1 -> #0:0 (copy)
      Stream #0:2 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [mpegts @ 0000023e2b54c340] start time for stream 0 is not set in estimate_timings_from_pts3x
    frame= 5879 fps=0.0 q=-1.0 Lsize=  125954kB time=00:03:16.05 bitrate=5262.8kbits/s speed= 264x
    video:122741kB audio:3064kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.118069%
     
    Я так понимаю, там что то в исходных видеофайлах с таймингами не в порядке. )

    Всего записей: 9 | Зарегистр. 28-12-2017 | Отправлено: 23:39 05-06-2021 | Исправлено: stansharp, 00:26 06-06-2021
    thejustsoul



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает, есть ли плагин или как реализовать активируемую звуком запись через ffmpeg с виртуального кабеля (или любого источника звука)?

    Всего записей: 1785 | Зарегистр. 30-03-2014 | Отправлено: 19:23 06-06-2021
    ksvo

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Я так понял ffmpeg кроссплатфомерный! По крайней мере не нашел 32бит на ffmpeg.org 64 битый устанавливаю пишет несовместимо. win7 32bit помогите плиз!

    Всего записей: 39 | Зарегистр. 13-08-2019 | Отправлено: 20:54 06-06-2021 | Исправлено: ksvo, 21:01 06-06-2021
    abc10



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

    Всего записей: 2543 | Зарегистр. 21-11-2005 | Отправлено: 21:11 06-06-2021
    Gideon Vi

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    коллеги, ни кто случайно не видел скомпилированной x86 dll, посвежее?

    Всего записей: 7641 | Зарегистр. 02-02-2004 | Отправлено: 05:24 07-06-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

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