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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131

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

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. Тема, посвященная сборкам ffmpeg/ffprobe, работающих под Windows XP.
    Сборки:
    От Gianluigi Tiesi
    От Reino Wijnsma
    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 на VideoHelp
     
    По общим вопросам написания командных файлов есть отдельная тема "Командная строка, батники, сценарии - bat, cmd".

  • Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: V0lt, 18:34 17-08-2025
    Dimitr1s



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    Отвечу здесь. Так-как склеим с помощью FFmpeg.
     

    Цитата:
    Ну а если 'ручками', то какие есть способы эту тишину убрать?

    Приведу пример на первых 11`ти файлах. Если подойдёт проделаете для всех 93`ёх.
    Кладёте в папку с файлами их список spisok.txt
    Даёте команду:

    Код:
    ffmpeg -f concat -safe 0 -i Путь\до\spisok.txt -c:a copy output.m4a

    Получаете объединённый файл с тишиной.
    Тишина в данном случае разной длины, поэтому автоматизировать не получится.
    Декодировать не надо, открываете сразу в редакторе. Я пользую Audition, но тоже самое можно сделать и в Audacity.
    Обязательно проследить, чтоб обработка была с точностью 32 float.
    Получаете такую картину, между белых стрелочек тишина.
    Внимание обращаете на любой один канал, левый к примеру.
    Выделяете и удаляете с сохранением направления амплитуды вот так. Так не надо.
    Должно примерно получиться на стыках так.
    Вот файл пример, что должно выйти, сделал очень быстро.

    Цитата:
    Есть видеоконтент на сервере. Он его отдаёт двумя потоками - video и audio.

    yt-dlp не берёт поток с этого сервера?

    Цитата:
    Если её удалить, то длительность audio становится вообще на 6 секунд короче длительности video.

    Опять же смотреть нужно, что и как.

    Всего записей: 2299 | Зарегистр. 02-07-2006 | Отправлено: 11:22 05-08-2025
    LZAA

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

           'yt-dlp' не берёт поток с этого сервера, но это не проблема.

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 12:26 05-08-2025
    Dimitr1s



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

    Всего записей: 2299 | Зарегистр. 02-07-2006 | Отправлено: 13:36 05-08-2025
    V0lt



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

    Цитата:
    Фрагментов в каждом потоке - 93. Но длительность video фрагмента - 3,083 сек, а audio фрагмента - 3,065 сек. За счёт только этого общая длительность audio на 1 сек меньше длительности video. Так к тому же ещё в каждом фрагменте audio есть тишина. Если её удалить, то длительность audio становится вообще на 6 секунд короче длительности video.

    Сначала склейте по отдельности потоки видео и звука, ничего не выкидывая и не перекодирования. И только после этого смотрите длительность и наличие тишины.
     
    Добавлено:

    Цитата:
    Пытаюсь их объединить. Пробовал разные инструменты для этого. В том числе и 'FFmpeg'.

    Здесь телепатов нет. Обычным людям не видно используемых вами команд FFmpeg.

    Всего записей: 11207 | Зарегистр. 05-02-2003 | Отправлено: 19:07 05-08-2025
    U235

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

    Цитата:
     Такой 'казус' происходит из-за того, что фактическая длительность video контента короче суммы длительности фрагментов точно на эти 6 сек. То есть фрагменты 'сделаны' 'с перекрытием'.

    А можно выложить эти видео и аудиофрагменты. Могу попробовать на Python их автоматом склеить.

    Всего записей: 1007 | Зарегистр. 14-12-2005 | Отправлено: 11:26 06-08-2025
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
     
                                           V0lt
     
           Я объединяю audio файлы в один не внося в них при этом никаких изменений.
       Но звук объединённого файла 'прерывается' и происходит это по причине наличия 'тишины' в начале и конце объединяемых файлов. Но с самой этой 'тишиной' я не могу до конца разобраться.
     
         Посмотрим на примере одного audio файла '1.mp4' - длительность 3.065 сек.  
         В аудиоредакторе видно, что 'тишина' в начале =0,02 сек, в конце =0,03 сек.
         Но 'FFmpeg' отображает это несколько иначе. Используем модуль 'silencedetect'.
         В инструкциях 'для народа' рекомендуют такой синтаксис - 'silencedetect=n=-50dB:d=1'.
         Но так 'просто' 'тишину' не 'выловить'.
     
    Подробнее...
         Последний результат, однако, вызывает несколько вопросов.  
         1. Участки 'тишины' имеются на всём протяжении дорожки. Что это за 'тишина' 'внутри'?
         2. Как корректно подобрать значение 'n', чтобы определялась 'тишина' только в начале и в конце дорожки?
     
     
     
    Добавлено:
     
                                     U235
     
          PM.

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 00:17 07-08-2025 | Исправлено: LZAA, 10:52 07-08-2025
    V0lt



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

    Цитата:
    В аудиоредакторе видно, что 'тишина' в начале =0,02 сек, в конце =0,03 сек.

    Повторю. Надо склеить без перекодировки и только после этого анализировать файлы.
     
    "Тишина в начале" - это фича некоторых кодеков с потерями. Взять, например MP3. Вырежьте без перекодировки длительностью в пару секунд из любой части файла MP3. Засуньте его в аудиоредактор и увидите в начале тишину примерно 24-26 мс.
    Повторюсь. Не важно из в какой части MP3 вы вырезали. Это прикол кодека, первый пакет не дает звук, он лишь используется, как база для второго пакета.

    Всего записей: 11207 | Зарегистр. 05-02-2003 | Отправлено: 09:08 07-08-2025
    LZAA

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

    Цитата:
     Посмотрим на примере одного audio файла '1.mp4' - длительность 3.065 сек.  
         В аудиоредакторе видно, что 'тишина' в начале =0,02 сек, в конце =0,03 сек.  

     
         Файл '1.mp4' просто скачан. Он никак мною не обрабатывался.
     
    Mediainfo
     
              Итак
         
    Цитата:
    "Тишина в начале" - это фича некоторых кодеков с потерями.

     
        Мне трудно определить, чем именно вызывается 'прерывистый' звук в объединённом файле - наличием в исходных файлах 'тишины в начале', 'тишины в конце' или ими обеими.
        'silencedetect' тишину в конце 'видит' сразу. Поэтому я хочу попробовать с  'тишиной в начале' 'побороться'.
        Mожно перекодировать файл '1.mp4' так, чтобы 'тишины в начале' не было. Но имеет ли смысл это делать?
        Я имею ввиду следующее. Есть несколько файлов с первым пакетом без звука и с 'тишиной в конце' (неизвестного происхождения). Допустим, что мы их объеденили без перекодировки (самым что нинаесть 'правильным' способом). Что происходит с первыми пакетами без звука в процессе объединения исходных файлов? Они сохраняются в объединённом файле или удаляются в процессе объединения? Если верно последнее, то это значит, что звук получается прерывистым только из-за 'тишины в конце' исходных файлов. В таком случае удаление 'тишины' становится для меня более осмысленным процессом.
        Если такое предположение неверно, то, наверное, надо производить объединение с одновременной перекодировкой. Какой кодек, не создающий первый пакет без звука меньше всего увеличивает размер исходного файла?

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 10:38 07-08-2025 | Исправлено: LZAA, 14:27 07-08-2025
    Mannel

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поскольку вы пользуетесь виндой, то я вам скажу, если тишина в начале и конце вызвана delay и padding кодера (а я вижу в логе ffmpeg и mediainfo, что это так, у вас использовался fdkaac кодер), то корректно декодит с учётом их (т.е. удаляя тишину) конвертер Foobar. Им надо декодить в wav файлы до склеивания.
    Ежели надо клеить без пересжатия, настоятельно рекомендую mkvtoolnix. А потом mka в m4a можно перегнать в ffmpeg. Тогда тишина останется, но плееры по идее её должны пропускать. Хотя, это не точно.

    Всего записей: 72 | Зарегистр. 26-07-2025 | Отправлено: 12:44 07-08-2025
    LZAA

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

       
    Цитата:
    Тогда тишина останется, но плееры по идее её должны пропускать.

     
       Не пропускают, к сожалению.

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 14:12 07-08-2025
    Dimitr1s



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

    Цитата:
    ...то корректно декодит с учётом их (т.е. удаляя тишину) конвертер Foobar.

    foobar при декоде m4a удаляет не всю тишину, а только добавленное кодером. Если тишина была добавлена специально, для порчи к примеру, он её не удалит разумеется. Может выйти не хорошо, если не проверять.
    ИМХО проще всё склеить и удалить руками - выйдет быстрее, чем декодировать и проверять каждый файл.
    Но это если качество имеет значение.
     

    Цитата:
    Ежели надо клеить без пересжатия, настоятельно рекомендую mkvtoolnix. А потом mka в m4a можно перегнать в ffmpeg.

    Зачем столько телодвижений, если FFmpeg клеит правильно?

    Всего записей: 2299 | Зарегистр. 02-07-2006 | Отправлено: 14:48 07-08-2025
    LZAA

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

        Есть файл 'video'. Есть 'FPS' и 'Duration' этого файта. Можно расчитать количество кадров в файле. Есть ли инструмент, который сразу проказывает это количество? 'ffprobe' может это сделать или нет?

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 18:06 14-08-2025
    351878



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

    Код:
    @echo off
    setlocal enabledelayedexpansion
     
    if "%~1"=="" exit /b 1
     
    for /f "delims=" %%a in ('ffprobe -v error -select_streams v:0 -show_entries stream^=nb_frames -of default^=noprint_wrappers^=1:nokey^=1 "%~1"') do set "frames=%%a"
     
    echo %frames%
     
    pause >nul


    Всего записей: 1304 | Зарегистр. 28-03-2016 | Отправлено: 23:28 14-08-2025
    los

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

    Цитата:
    Есть ли инструмент, который сразу проказывает это количество?

    mediainfo --Output="Video;%FrameCount%" file

    Всего записей: 7939 | Зарегистр. 08-09-2001 | Отправлено: 11:08 15-08-2025
    greeple

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    Цитата:
    mediainfo --Output="Video;%FrameCount%"

    и куда дальше https://a.i.getapic.me/mj9f.png ?
    mediainfo --Output="Video;%FrameCount%" 1.mp4
     
    пардон, это не тот медиаинфо, это из k-lite, а cli отсюда выдаёт да https://mediaarea.net/en/MediaInfo/Download/Windows

    Всего записей: 7380 | Зарегистр. 11-02-2020 | Отправлено: 11:16 15-08-2025 | Исправлено: greeple, 11:27 15-08-2025
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                            351878
                             los
     
          Это работает. Спасибо.
          'mediainfo --Output="Video;%FrameCount%" file' - у меня эта команда есть, но я по простоте душевной 'GUI' так запускал.
     
            Про другое.
     
        Задача - удалить из video каждый 'энный' кадр с начала до конца файла.
        Есть такое: https://iz6.ru/ffmpeg-udalit-kadry/
     
        ffmpeg -i ben.mkv -filter:v "select='mod(n,25) != 0',setpts=N/24/TB,fps=24" -c:v libx264 -preset slow -crf 18 -c:a copy ben1.mkv
     
         Но у меня 'FFmpeg' на '!= 0' 'ругается'. Просто 'mod(n,25)' работает.
         
    Цитата:
    Эта команда удалит 25-й кадр в каждом цикле из 25 кадров в видеофайле

          С этими 'циклами' непонятно. Можно ли просто находить каждый 25-й кадр и удалять его на всём протяжении файла без всяких 'циклов'?
           

    Всего записей: 2581 | Зарегистр. 09-01-2010 | Отправлено: 15:07 15-08-2025 | Исправлено: LZAA, 15:20 15-08-2025
    isesam

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть очень старый файл avi, про который ffmpeg выдал:
    tream #0:0: Video: rawvideo, bgr24, 720x576, 249001 kb/s, 25 fps, 25 tbr, 25 tbn
      Stream #0:1: Audio: wmapro (b[1][0][0] / 0x0162), 48000 Hz, 5.1, fltp, 256 kb/s
     
    Как его хотя бы посмотреть? и потом перекодировать в какой-нибудь стандартный, не видит ни с  k-lite mega, ни vlc.

    Всего записей: 84 | Зарегистр. 24-10-2005 | Отправлено: 16:49 22-08-2025
    shrmn



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

    Цитата:
    есть очень старый файл avi

    Давай ссылку. А то как же смотреть то его?

    Всего записей: 4618 | Зарегистр. 17-12-2002 | Отправлено: 16:52 22-08-2025
    isesam

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не могу закинуть никуда, я на мобильном инете.  
    Плз, посоветуйте хоть куда рыть.
    Раньше просто какой-то кодек выкачивал(эдак в 2010 году) и он шел. Теперь все это потеряно.  

    Всего записей: 84 | Зарегистр. 24-10-2005 | Отправлено: 16:58 22-08-2025
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    isesam
    Для начала стоит глянуть его через mediainfo и (если понятнее не стало) показать весь текст из него сюда же.

    Всего записей: 19758 | Зарегистр. 04-11-2010 | Отправлено: 17:07 22-08-2025
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2025

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru