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

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

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

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. Тема (нужен TOR), посвященная сборкам ffmpeg/ffprobe, работающих под Windows XP.
    Готовые сборки, зеркало версии от 2019, 2020, 2021 года.
    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
     
    По общим вопросам написания командных файлов есть отдельная тема "Командная строка, батники, сценарии - bat, cmd".

  • Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: ED_Sln, 08:32 02-10-2024
    bbcby

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TMPGEnc MPEG Smart Renderer, по заявлению, перекодирует только те части, которые были изменены , такие как точки вырезания/разделения/соединения.
     
    У него 30-дневный триал с полным функционалом.

    Всего записей: 622 | Зарегистр. 11-06-2003 | Отправлено: 14:42 23-10-2024 | Исправлено: bbcby, 14:45 23-10-2024
    V0lt



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

    Цитата:
    стоит конечно упомянуть смарткопи

    FFmpeg ничего такого не поддерживает.
    А софт, который делает частичную перекодировку, как правило, умеет это делать только для конкретных контейнеров и видеокодеков.

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 15:08 23-10-2024
    Gideon Vi

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

    Всего записей: 8153 | Зарегистр. 02-02-2004 | Отправлено: 17:02 23-10-2024 | Исправлено: Gideon Vi, 17:10 23-10-2024
    skuwakin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток. Подскажите плиз, в какую сторону копать...  Мне нужно читать потоки с ютуба.  И все бы было довольно неплохо, если бы не странные вылеты при чтении.... Например, есть вот такое видео https://www.youtube.com/watch?v=YXLK2lYgc5E и вот в нем на 139 формате ffmpeg находит ошибку, хотяч никакие другие читальщики(качальщики)  прекрасно скачивают сей файлик.  Файлик получаю вот такой командой
     
    yt-dlp.exe -s -g --no-mark-watched --no-call-home --get-duration --age-limit 21 --geo-bypass --get-format -f "139" https://www.youtube.com/watch?v=YXLK2lYgc5E > a.txt
     
    затем вызываю ffmpeg
     
     ffmpeg.exe -i "адрес потока, взятый из файлика a.txt" -c copy ahttp.m4a
     
    а в отdет получаем вот это
     
    ffmpeg version N-117622-g8d940a07d1-20241021 Copyright (c) 2000-2024 the FFmpeg developers
      built with gcc 14.2.0 (crosstool-NG 1.26.0.120_4d36f27)
      configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=i686-w64-mingw32- --arch=i686 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --disable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --disable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --disable-libsvtav1 --enable-libtwolame --disable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libvvenc --enable-libx264 --enable-libx265 --disable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=i686-w64-mingw32-gcc --cxx=i686-w64-mingw32-g++ --ar=i686-w64-mingw32-gcc-ar --ranlib=i686-w64-mingw32-gcc-ranlib --nm=i686-w64-mingw32-gcc-nm --extra-version=20241021
      libavutil      59. 44.100 / 59. 44.100
      libavcodec     61. 22.100 / 61. 22.100
      libavformat    61.  9.100 / 61.  9.100
      libavdevice    61.  4.100 / 61.  4.100
      libavfilter    10.  6.100 / 10.  6.100
      libswscale      8.  6.100 /  8.  6.100
      libswresample   5.  4.100 /  5.  4.100
      libpostproc    58.  4.100 / 58.  4.100
    size=       0KiB time=00:00:42.26 bitrate=   0.0kbits/s speed=1.01x    
    [tls @ 077ba540] Unable to read from socket
    [mov,mp4,m4a,3gp,3g2,mj2 @ 077c5e00] Packet corrupt (stream = 0, dts = 1878016).
    [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 07797080] corrupt input packet in stream 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 077c5e00] stream 0, offset 0x4001e: partial file
    [in#0/mov,mp4,m4a,3gp,3g2,mj2 @ 07797080] Error during demuxing: Error number -10054 occurred
    [out#0/ipod @ 077e2140] video:0KiB audio:250KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 1.761482%
    size=     255KiB time=00:00:42.63 bitrate=  49.0kbits/s speed=1.01x    
    [tls @ 077ba540] Failed to send close message

    Всего записей: 309 | Зарегистр. 17-03-2005 | Отправлено: 20:26 23-10-2024 | Исправлено: skuwakin, 11:08 24-10-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    skuwakin
    FFmpeg - это не качалка файлов с интернета, тем более с ресурсов, которые противодействуют скачиванию.
    Скачайте медиафайлы специализированным софтом, а потом скормите FFmpeg.

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 20:55 23-10-2024
    skuwakin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Спс за ответ. Вот только далеко не всегда это удобно, мягко говоря ...  И, как ни странно, кое в чем, а именно при работе с  ютубовскими файлами в онлине, ffmoeg уделывает vlc по полной программе! Да и к тому же, то вроде как абсолютно штатная возможность ffmpeg - ввод из сети...  Может тогда надо наверняка немалую часть кода ffmpeg просто почикать. чтобы место зря не занимал...    

    Всего записей: 309 | Зарегистр. 17-03-2005 | Отправлено: 21:03 23-10-2024 | Исправлено: skuwakin, 21:20 23-10-2024
    V0lt



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

    Цитата:
    Да и к тому же, то вроде как абсолютно штатная возможность ffmpegd - ввод из сети...

    В FFmpeg имеется базовый функционал работы с сетью. Никто и никогда не заявлял, что он будет работать в любых условиях.

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

    Можете прямо сейчас сделать свой личный форк и "почикать" в нем все, что вам вздумается.

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 21:29 23-10-2024
    los

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

    Цитата:
    Подскажите плиз, в какую сторону копать...

    В сторону замедление/блокировка YouTube в РФ.

    Всего записей: 7699 | Зарегистр. 08-09-2001 | Отправлено: 21:29 23-10-2024
    skuwakin

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

    Всего записей: 309 | Зарегистр. 17-03-2005 | Отправлено: 21:47 23-10-2024
    LZAA

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

         Очень даже 'при делах':  Error number -10054
         Ищите 'правильный' proxy server.
     
    cmd
     
        Учтите - URL 'живёт' недолго.

    Всего записей: 2323 | Зарегистр. 09-01-2010 | Отправлено: 00:30 24-10-2024
    Gideon Vi

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

    Цитата:
    это тут с большой вероятностью ни при делах...

    да ладно )
    Unable to read from socket
    Packet corrupt и partial file
    Error during demuxing: Error number -10054 occurred
     
    поднимите vpn и, с большой вероятностью, всё наладится. А ещё уберите портянку ffmpeg под коврик, тут верстку распиразнесло

    Всего записей: 8153 | Зарегистр. 02-02-2004 | Отправлено: 03:28 24-10-2024
    skuwakin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток уважаемые знатоки.  С вашего позволения продолжим тему http в ffmpeg. Правда теперь с другого конца...  Допустим ,я запустил из ffmpeg вывод по http на localhost:port...  подключился к этому порту из другого плеера, все чудненько робит... Кроме перемотки и паузы из этого внешнего плеера. Вопрос, а это (перемотка и пауза)в принципе реализуемо из внешнего плеера или я совсем обнаглел и хочу шибко много от ffmpeg?  
     
    p.s. я пробовал и через pipe с vlc - фигвамс...
     
    pp.ss. если кому интересно, то первую проблему все же удалось решить при помощи уменьшения входного буфера доя входного аудиофайла.  может оно конечно случайно так совпало, но разница видна невооруженным глазом. Раньше оно вылетало практически железно и часто, а теперь пока не вылетало ни разу, хоть я и гонял ютуб практически целый день... Ест-но стучу по дереву...  

    Всего записей: 309 | Зарегистр. 17-03-2005 | Отправлено: 20:11 25-10-2024
    Stasx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеется ноут с процессором Intel. Аппаратные кодеки для него "qsv".
    Подскажите, как аппаратно декодировать, изменять размер, кодировать?
    Программная декодировка, изменение размера, аппаратное колирование работает без проблем (-i x -vf scale=x -c:v h264_qsv).
    Попытка заменить scale на scale_qsv выдаёт ошибку (ffmpeg откомпилирован с фильтром scale_qsv).
    Запустить с аппаратным декодированием (как показано в примере на сайте ffmpeg) тоже не работает (-hwaccel qsv -c:v h264_qsv -i ...)

    Всего записей: 136 | Зарегистр. 10-10-2007 | Отправлено: 06:26 03-11-2024
    Aleksoid1978



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Stasx
    Попробуй что-то типа такого, по аналогии с cuda:

    Код:
     
    ffmpeg -y -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v h264_nvenc output.mp4
     


    ----------
    AMD Ryzen 7 7700 /ASRock B650M Pro RS /G.Skill RIPJAWS 32 ГБ /Kingston 500Gb M.2 /RTX 4060 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

    Всего записей: 9362 | Зарегистр. 11-05-2006 | Отправлено: 07:59 03-11-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Stasx
    Вы бы показывали все параметры командной строки, которые вы тестировали, тогда бы люди с большой охотой проверили и предложили рабочий вариант.
     
    Добавлено:
    Минимальная командная строка для транскода на FFmpeg 7.1 с максимальным использованием QSV (декодирование, изменение размера, кодирование) у меня выглядит примерно так:

    Код:
    ffmpeg -hwaccel qsv -hwaccel_output_format qsv -i "input.mp4" -vf "scale_qsv=1920:-1" -c:v h264_qsv -q:v 24 -c:a copy "output.mkv"

    Исправлено: убран более не нужный -c:v h264_qsv перед -i "input.mp4".

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 22:39 03-11-2024 | Исправлено: V0lt, 11:13 04-11-2024
    ED_Sln



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    А зачем -c:v h264_qsv дважды? Достаточно же раза:

    Код:
    ffmpeg -hwaccel qsv -hwaccel_output_format qsv -i "input.mp4" -vf "scale_qsv=1920:-1" -c:v h264_qsv -q:v 24 -c:a copy "output.mkv"  

    Всего записей: 754 | Зарегистр. 05-11-2009 | Отправлено: 10:41 04-11-2024
    V0lt



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

    Цитата:
    А зачем -c:v h264_qsv дважды? Достаточно же раза:

    Ну да.
    Раньше требовалось указывать аппаратный декодер для исходного формата. В FFmpeg 7.1 декодер QSV определяется автоматически.
    Поправил свое сообщение.

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 11:12 04-11-2024
    Stasx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос: Какой фильтр постпроцессинга реально работает?  
    Постпроцессинг (как это пониманию) - устраннение блочности, через строчности входящего видео.
    Перепробовал все виды (pp, fspp, spp, pp7, uspp), входящие в стандартную сборку gyan. В выходном файле не видно результатов (в плеере PotPlayer, в котром просматриваю постаобработку отключил). Параметры качества (quality у xSPP, ba|a - у PP) у фильтров постпроцессинга никак не меняют размер файла (кодирую в ffv1).
    Задача: деблокинг входных данных не хуже Avidemux уровень 3, в идеале - либо быстрее него при том е качестве, либо качественнее при таких же затрат времени. В идеале деблогинг видеоядром CPU Intel (?QSV).

    Всего записей: 136 | Зарегистр. 10-10-2007 | Отправлено: 00:26 09-11-2024 | Исправлено: Stasx, 05:01 09-11-2024
    V0lt



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

    Цитата:
    Перепробовал все виды (pp, fspp, spp, pp7, uspp), входящие в стандартную сборку gyan. В выходном файле не видно результатов (в плеере PotPlayer, в котром просматриваю постаобработку отключил). Параметры качества (quality у xSPP, ba|a - у PP) у фильтров постпроцессинга никак не меняют размер файла (кодирую в ffv1).

    Не знаю как вы там пробовали, но простая нагугленная ком строка

    Код:
    ffmpeg -i input -vf "spp=5:10:0:1" -c:a copy output

    вполне себе убирает сильную блочность. Результат мыльно-пластилиновый, но блоки уходят.
     
    Еще есть фильтр deblock. Не проверял.

    Всего записей: 10779 | Зарегистр. 05-02-2003 | Отправлено: 11:22 09-11-2024
    Stasx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    Не понимаю, почему в справке пишется одно (форматы задания параметров фильтра), а в реальности надо их оформлять по-другому.
    На странице https://trac.ffmpeg.org/wiki/Postprocessing задание парметров, например:
    uspp=5:10
    А в справке в описании фильтра:
    uspp AVOptions:
    quality = set quality (from 0 to 8) (default 3)
    qp = force a constant quantizer parameter (from 0 to 63) (default 0)
    вот я и задаю "uspp=quality=0" и "uspp=quality=8" и файлы по размеру и времени исполнения одинаковые, хотя каждая единица должна увелчиватьв ремя выполнения в два раза.
    Походу, не срабатывает так задача качества, и фильтр ставит по-умолчанию "3".
     
    Deblock вообще вносит неразбериху. СНачала думал, что он делает деблок, как декодеры. Но он ничего не деалет. В итоге под стандратным деблоком в ffmpeg подразумевается постпроцессинг, и соответвующие вышеперечисленные фильтры.
     
    Насчет применимости постпроцессинга. Он мне нужен для старых редких (нашел всего одного очень медленного сидера на торренте, и больше нигде такого видео нет - ни на торрентах, ни на хостингах) сильно пожатых xvid 408 строк, которые при загрузке на видеохостинг ужимаются до 360p (т.к. у него есть только стандартные размеры по высоте: 144. 240, 360, 480, 720...). Поэтому была задача, сначала проапскейлить видео до 720. Но т.к. это xvid, то декодер ffmpeg-а автоматом не делает постпроцессорный деблокинг (для h264, 265 постпроцессорный деблоикнгы выполняется автоматически). Но т.к. апскейл был не картен двум, то в итоговом видео границы блоков были не картын 4(8), в итоге на хостинге видео выглядело плохо. Если же делать апскейл кратно двум (у ffmpeg несоклько фильтров апскейла , с кратностью 2,3,4), но в итоге высота получаалсь 816, и потом она даунскейлилась на видеохостинге. Хотелось избежать этого. Также размер фала для загрузки был предельным при 816 строках (а при 720 вроде умещался на виртуальный диск, созданный в оперативной памяти).
    В итоге плюнул, залил на вк, там neurohd за двое стуок сама все проаскейлила до 720. Качество вполне норм.
    Так что вообще отказался от задрочества в виде : деблок, апскейл до 720, конвертирвоание без потерь ffv1(hevc_qsv cqp=1), зfливка 10-11 гигового файла (т.к. еще есть ограниечение скорости ноута - pentium 7505, и скорости заливки - инет максимум 10-20МБит).  
    Минусы neurohd vk: 1) размер до 20 мин (т.е. максимум 19:59) (реашется разрещанием фала на куски), 2) обработка 2-3 суток (мне не к спеху); 3) может блокировать файлы по авторскому праву (столкнулся с таким)
     
    Просто мне сам по себе ffmpeg нравится - поковыряться с ним.

    Всего записей: 136 | Зарегистр. 10-10-2007 | Отправлено: 16:59 09-11-2024 | Исправлено: Stasx, 21:41 09-11-2024
    Открыть новую тему     Написать ответ в эту тему

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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru