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

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

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

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

  • Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: V0lt, 06:22 31-10-2025
    Gideon Vi

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

    Цитата:
    ffmpeg переподключается каждый раз как скачает сегмент, как это исправить?

    Попробуй добавить до -i:

    Код:
    -http_persistent 1 -multiple_requests 1

    Но под виндой это может привести к подвисанию

    Всего записей: 8298 | Зарегистр. 02-02-2004 | Отправлено: 03:23 23-11-2025
    UnnPacK

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

    Цитата:
    Попробуй добавить до -i:
    -http_persistent 1 -multiple_requests 1

    нет
    это не работает
     

    Всего записей: 494 | Зарегистр. 26-01-2014 | Отправлено: 09:56 23-11-2025
    mithridat1



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

    Цитата:
    меня устраивает ffmpeg
    он нормально пишет mpeg-ts, сбрасывает тайминги, ремуксит на лету в нужный контейнер, портабельный и компактный
    есть что то похожее? ))
     

    Имел в виду какой нибудь самописный клиент. Не знаю какая стоит задача, но если банальная ретрансляция живого TCP-стрима то накопление задержки с течением времени тут неизбежно независимо от протокола стриминга.

    Всего записей: 5219 | Зарегистр. 05-01-2006 | Отправлено: 12:47 23-11-2025 | Исправлено: mithridat1, 12:51 23-11-2025
    UnnPacK

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mithridat1
    не ретрансляция, а сохранение трансляций в файлы
    а такие варианты как:
    сохранять через любую качалку а затем пересобирать, или на лету через pipe передавать поток ffmpeg - не подходят
    самописный тестовый клиент есть,но не пересобирает в другой контейнер, даже будучи однопоточный - легко сохраняет 4k 60fps без пропуска сегментов, в то время как ffmpeg пропускает их, из-за бага с persistent connection
    сам сервер находится на другом континенте, долгий пинг + TLS рукопожатие = пропуск чанков
     
    проблема в основном в контейнере фрагментированного mp4, который невозможно быстро обработать из-за особенности его структуры, даже сброс таймингов ничего не дает - потому и нужна пересборка в другой контейнер

    Всего записей: 494 | Зарегистр. 26-01-2014 | Отправлено: 13:06 23-11-2025
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
        Такая задачка.  
         Есть video=10 sec audio=100 sec.
         Надо зацикливанием сделать video=100 sec и об
    ъединить с audio=100 sec.
         Вопросы:
     
         1. Можно ли это сделать одной командой?
         2. Можно ли при этом целевое время 100 sec не указывать явно? То есть в качестве целевой длительности video используется длительность audio (или наоборот)?

    Всего записей: 2693 | Зарегистр. 09-01-2010 | Отправлено: 23:34 05-12-2025 | Исправлено: LZAA, 23:35 05-12-2025
    destiny_child



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ffmpeg -stream_loop -1 -i video.mp4 -i audio.mp3 -map 0:v:0 -map 1:a:0 -shortest -c copy coub.mp4
     
    Человек же в изначальной теме нашел это решение.  
     
    Но я б кодирование вставил:
    ffmpeg -stream_loop -1 -i video.mp4 -i audio.mp3 -map 0:v:0 -map 1:a:0 -shortest -c:v libx264 -c:a aac coub.mp4
     
    Но правда это норм, если надо циклить видео, а аудио лишь накладывать;)

    Всего записей: 5093 | Зарегистр. 01-04-2006 | Отправлено: 00:05 06-12-2025 | Исправлено: destiny_child, 00:12 06-12-2025
    FiLinX



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

    а хде это обсуждали?
     
    кстати для коубин у меня слегка с другими командами батник
     
    Добавлено:
    аа, всё, увидел.. в yt-dlp темке

    Всего записей: 3456 | Зарегистр. 05-05-2010 | Отправлено: 03:30 06-12-2025
    destiny_child



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Но и она не определяет на лету - а ЧТО надо зацикливать? типа а какой поток по факту короче, чтобы его противоположника зацикливать пришлось бы...
    может что-то типа этого:

    Код:
    param(
        [Parameter(Mandatory=$true)]
        [string]$Url
    )
     
    # --- Настройки ---
    $TempDir = Join-Path $env:TEMP "coub_tmp"
    $VideoFile = Join-Path $TempDir "video.mp4"
    $AudioFile = Join-Path $TempDir "audio.mp3"
    $OutputFile = "coub_final.mp4"
     
    # --- Создать временную папку ---
    if (-not (Test-Path $TempDir)) {
        New-Item -ItemType Directory -Path $TempDir | Out-Null
    }
     
    # --- 1. Скачать видео ---
    Write-Host "[1/5] Скачиваю видео..."
    yt-dlp -f "bv" -o "$VideoFile" $Url
     
    # --- 2. Скачать аудио ---
    Write-Host "[2/5] Скачиваю аудио..."
    yt-dlp -f "ba" -o "$AudioFile" $Url
     
    # --- 3. Функция определения длительности с идеально тихим выводом данных по длительности ---
    function Get-Duration($file) {
        $cmd = ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$file"
        return [double]$cmd
    }
     
    Write-Host "[3/5] Измеряю длительности..."
     
    $VideoDuration = Get-Duration $VideoFile
    $AudioDuration = Get-Duration $AudioFile
     
    Write-Host "  Видео: $VideoDuration сек."
    Write-Host "  Аудио: $AudioDuration сек."
     
    # --- 4. Определяем, что нужно зациклить ---
    $LoopVideo = $false
    $LoopAudio = $false
     
    if ($VideoDuration -lt $AudioDuration) {
        $LoopVideo = $true
        Write-Host "Видео короче -> зацикливаем ВИДЕО"
    } elseif ($AudioDuration -lt $VideoDuration) {
        $LoopAudio = $true
        Write-Host "Аудио короче -> зацикливаем АУДИО"
    } else {
        Write-Host "Видео и аудио одинаковой длины → без зацикливания"
    }
     
    # --- 5. Сборка FFmpeg ---
    Write-Host "[4/5] Собираю финальный файл..."
     
    $LoopVideoArg = ""
    $LoopAudioArg = ""
     
    if ($LoopVideo) { $LoopVideoArg = "-stream_loop -1" }
    if ($LoopAudio) { $LoopAudioArg = "-stream_loop -1" }
     
    # порядок входов важен
    $FFmpegCmd = @(
        "ffmpeg",
        $LoopVideoArg, "-i", "`"$VideoFile`"",
        $LoopAudioArg, "-i", "`"$AudioFile`"",
        "-shortest",
        "-map 0:v:0",
        "-map 1:a:0",
        "-y",
        "`"$OutputFile`""
    )
     
    Write-Host "Команда FFmpeg:"
    Write-Host $FFmpegCmd -join " "
     
    # Запуск FFmpeg
    & $FFmpegCmd
     
    Write-Host "[5/5] Готово!"
    Write-Host "Финальный файл: $OutputFile"
     

    Всего записей: 5093 | Зарегистр. 01-04-2006 | Отправлено: 10:37 06-12-2025 | Исправлено: destiny_child, 10:39 06-12-2025
    ss661

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ffmpeg-8.1 xp shared
    https://files.videohelp.com/u/69760/ffmpeg-8.1-1200-775b102182-win32-shared-xpmod-P4.7z

    Всего записей: 877 | Зарегистр. 23-02-2007 | Отправлено: 16:08 06-12-2025
    los

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

    Цитата:
    ffmpeg-8.1

    с номером версии не погорячились?

    Всего записей: 8071 | Зарегистр. 08-09-2001 | Отправлено: 17:10 06-12-2025
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    Кому надо постарее, был 7.1 в прошлом году
    https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D
    https://rwijnsma.home.xs4all.nl/files/ffmpeg/ffmpeg-7.1-2362-6aafe61-win32-dev-xpmod-sse.7z
    https://rwijnsma.home.xs4all.nl/files/ffmpeg/ffmpeg-7.1-2362-6aafe61-win32-shared-xpmod-sse.7z
    https://rwijnsma.home.xs4all.nl/files/ffmpeg/ffmpeg-7.1-2362-6aafe61-win32-static-xpmod-sse.7z

    Всего записей: 20547 | Зарегистр. 04-11-2010 | Отправлено: 21:35 06-12-2025
    los

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

    Всего записей: 8071 | Зарегистр. 08-09-2001 | Отправлено: 21:44 06-12-2025
    insorg



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    Вероятно, не совсем...
    Релизка ноль-один, а следующая ночнушка - просто один. Могли спокойно взять ранний скорострел ночнушки. А могли просто лишний нолик убрать, типа всем пофиг. А вообще по той самой "775b...." подверсии надо смотреть, к чему это относится. Это надёжнее.

    Всего записей: 20547 | Зарегистр. 04-11-2010 | Отправлено: 21:52 06-12-2025
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я думаю просто приписку "dev" забыли указать.
     
    Если в ветке "master" запустить команду "git describe", то она выдаст следующее:

    Код:
    n8.1-dev-1391-g6a14a93af5

    Всего записей: 11373 | Зарегистр. 05-02-2003 | Отправлено: 22:43 06-12-2025
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, есть три аудио файла: 0.mp3, 1.mp3, 2.mp3  
    задача - наложить на файл 0.mp3 продолжительностью 7, 30 минут, остальные два файла со сдвигом, 1.mp3 наложить на 26 секунде, а  2.mp3 на 7 минуте.
     
    сделал батник:
     
    ffmpeg -i 0.mp3 -i 1.mp3 -i 3.mp3 -filter_complex "[0:a]adelay=0|0[a1]; [1:a]adelay=26500|26500[a2]; [2:a]adelay=432000|432000[a3]; [a1][a2][a3]amix=inputs=3:duration=longest" output.mp3
     
    вроде как всё получается, НО, почему то на выходном файле output.mp3 звук уменьшается по громкости, получается очень тихо... может фильтр amix как-то сжимает звук?
    подскажите, куда копать... спасибо

    Всего записей: 172 | Зарегистр. 10-04-2013 | Отправлено: 12:34 11-12-2025
    V0lt



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

    Цитата:
    почему то на выходном файле output.mp3 звук уменьшается по громкости, получается очень тихо... может фильтр amix как-то сжимает звук?
    подскажите, куда копать... спасибо

    Очевидно, сначала надо документацию почитать. Там как раз про нормализацию написано.

    Всего записей: 11373 | Зарегистр. 05-02-2003 | Отправлено: 13:19 11-12-2025
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    спасибо
     
    сделал такой вариант батника:
     
    ffmpeg -i 0.mp3 -i 1.mp3 -i 3.mp3 -filter_complex "[0:a]adelay=0|0[a1]; [1:a]adelay=26500|26500[a2]; [2:a]adelay=432000|432000[a3]; [a1][a2][a3]amix=inputs=3:duration=longest:dropout_transition=0:normalize=0"  output.mp3
     
    сейчас на выходе вроде то, что надо

    Всего записей: 172 | Зарегистр. 10-04-2013 | Отправлено: 14:19 11-12-2025 | Исправлено: vlad_001, 14:51 11-12-2025
    Gideon Vi

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

    Цитата:
    сейчас на выходе вроде то, что надо

    если все дороги громкие, возможен клипинг. В этом случае может помочь лимитер

    Код:
    ffmpeg -i 0.mp3 -i 1.mp3 -i 2.mp3 -filter_complex "[0:a]adelay=0|0[a0]; [1:a]adelay=26000|26000[a1]; [2:a]adelay=420000|420000[a2]; [a0][a1][a2]amix=inputs=3:duration=longest:dropout_transition=0:normalize=0, alimiter=limit=0.95" output.mp3

    Всего записей: 8298 | Зарегистр. 02-02-2004 | Отправлено: 17:48 11-12-2025
    vlad_001

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

    Всего записей: 172 | Зарегистр. 10-04-2013 | Отправлено: 10:45 12-12-2025
    vlad_001

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую...
     
    Нужно наложить логотип на видео, сделал такое:  
     
    ffmpeg -i input.mp4 -loop 1 -i logo.png -filter_complex "[1:v] fade=st=10:n=4:alpha=1, fade=out:st=16:n=4:alpha=1 [logo]; [0:v][logo] overlay=10:10" -y output.mp4
     
    где логотип плавно появляется на 10 секунде и плавно исчезает на 16 секунде, но, рендер продолжается бесконечно, копируя последний кадр исходного видео и присоединяя его к выходному видео...
    подскажите, где копать...

    Всего записей: 172 | Зарегистр. 10-04-2013 | Отправлено: 06:58 24-12-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 132 133 134 135 136 137 138

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


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

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

    LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

    Рейтинг.ru