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

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

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

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

  • Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: V0lt, 16:51 27-01-2024
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможен скрипт для изображения c любым именем, но лучше Cover. Это задаст тип тега - Cover art.

    Код:
    @echo off
    set "FFmpeg=d:\Software\Multimedia\Edit\FFmpeg\FFmpeg -hide_banner" :Или добавить FFmpeg в переменную %Path%.
    %FFmpeg% -i %1 -i "%~dp1Cover.jpg" -c copy -disposition:v:1 attached_pic "%~dpn1+cover.mp4"
    pause

    Всего записей: 73 | Зарегистр. 05-01-2021 | Отправлено: 12:29 26-09-2023
    ewild

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

    Код:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i "%1" -i "thumbnail.jpg" -map 1 -map 0 -c copy -disposition:0 attached_pic "%1.mp4"
    pause


    Всего записей: 1196 | Зарегистр. 13-08-2005 | Отправлено: 12:36 26-09-2023 | Исправлено: ewild, 12:37 26-09-2023
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ewild
    Ваш скрипт работает.  
    Я его вот так нарисовал:

    Код:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i "%1" -i "Cover.jpg" -map 1 -map 0 -c copy -disposition:0 attached_pic "%1.mp4"
    pause

     
    MMasutin
    Ни в какую ни хочет работать.
    Я его вот так пробовал:

    Код:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    %FFmpeg% -i %1 -i "%~dp1Cover.jpg" -c copy -disposition:v:1 attached_pic "%~dpn1+cover.mp4"
    pause
     
    Какие будут предложения исправления? нужно чтоб ваш то же начал работать.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 17:18 26-09-2023 | Исправлено: vaskamy, 17:21 26-09-2023
    ewild

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

    Цитата:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    %FFmpeg% -i

     

    Код:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i


    Всего записей: 1196 | Зарегистр. 13-08-2005 | Отправлено: 17:42 26-09-2023
    vaskamy



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

    Цитата:
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i

    Я такой вариант уже пробовал, вот:

    Код:
    @echo off
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i %1 -i "%~dp1Cover.jpg" -c copy -disposition:v:1 attached_pic "%~dpn1+cover.mp4"
    pause

    Создаётся рядом видео файл но без обложки.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 17:58 26-09-2023
    ewild

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

    Код:
    @echo off
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    ffmpeg -i %1 -i "%~dp1cover.jpg" -map 0 -map 1 -c copy -c:v:1 mjpeg -disposition:v:1 attached_pic "%~dpn1_cover.mp4"
    pause

     
    NB https://ffmpeg.org/ffmpeg.html

    Цитата:
    To add an embedded cover/thumbnail:
    ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4
    Not all muxers support embedded thumbnails, and those who do, only support a few formats, like JPEG or PNG.

    Всего записей: 1196 | Зарегистр. 13-08-2005 | Отправлено: 20:51 26-09-2023 | Исправлено: ewild, 20:54 26-09-2023
    vaskamy



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

    Цитата:
    -i "Cover.jpg"
    кто нибудь знает какую суда переменную прописать чтоб использовать изображение с любым именем а не фиксированным.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 21:54 26-09-2023
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vaskamy
    Там почитайте -> Командная строка, батники, сценарии - bat, cmd

    Всего записей: 10506 | Зарегистр. 05-02-2003 | Отправлено: 22:00 26-09-2023
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Для произвольного имени нужен поиск по типу файла: for %%F in (*.jpg) do echo %%F, поэтому файл этого типа должен быть в папке один. Если нет, задают имя главного файла (%~dpn1.jpg) или постоянное, напр. Cover.

    Всего записей: 73 | Зарегистр. 05-01-2021 | Отправлено: 19:04 27-09-2023
    vaskamy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Два варианта - спасибо добрым людям.
    1.Simple Code
    Код:
    @echo off
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    for %%i in (%~dp0*.*) do (
        if /i "%%~xi"==".png" set "pic=%%~dpnxi"
        if /i "%%~xi"==".jpg" set "pic=%%~dpnxi"
    )
    ffmpeg -i "%1" -i "%pic%" -map 1 -map 0 -c copy -disposition:0 attached_pic -y "%1.mp4"
    pause

    2.virjokk
    Код:
    @echo off
    set "ffmpeg=D:\ffmpeg\bin"
    path %path%;%ffmpeg%
    for %%i in (*.png,*.jpg) do (set "pic=%%~dpnxi")
    ffmpeg -i "%1" -i "%pic%" -map 1 -map 0 -c copy -disposition:0 attached_pic -y "%1.mp4"
    pause

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 19:15 27-09-2023 | Исправлено: vaskamy, 19:19 27-09-2023
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    I. Можно ли задать -to %End2% так, чтобы применить к 0:a, не извлекая трек?

    Код:
    -to %End% -i %1 ^
    -to %End2% ^
    -to %End% -i "%~pn1.m4a" ^
    -map 0:v -map 1 -map 0:a

    II. Поправка: "Cover.jpg -disposition:0 attached_pic" не задаст тег Cover. Paботало для MP3. При добавлении к Video+Audio добавляет изображение как Video. Неясно, как добавить как тег в header. Для MKV проще через mkvpropedit из MKVToolNix: %1 --add-attachment "%~p1Cover.jpg". 3a секунду, т.к. запись только в оглавление.

    Всего записей: 73 | Зарегистр. 05-01-2021 | Отправлено: 23:53 27-09-2023
    skuwakin

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

    Всего записей: 227 | Зарегистр. 17-03-2005 | Отправлено: 16:30 06-10-2023
    MMasutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Человек получил личную ссылку на стрим, хочет записать (webinar для личного пользования), но опасается потерять доступ, если раздающий следит за захватом раздач и может мешать этому.
    FFmpeg пишет стрим незаметно для источника? Если да, какой код позволит записать исходные потоки (-c copy)? Или, пожалуйста, подходящую ссылку на Wiki.

    Всего записей: 73 | Зарегистр. 05-01-2021 | Отправлено: 22:23 08-10-2023
    mithridat1



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MMasutin
    Для копирования стрима в общем случае надо использовать те же заголовки HTTP что и браузер (или плеер сайта). Для этого надо изучить в браузере процесс получения ссылки на поток. Как правило имеют значения user-agent и referrer, но на сайтах с авторизацией обыкновенно используют и дополнительные заголовки вроде разнообразных токенов, они могут быть одноразовыми и короткоживущими. Также у плеера могут быть другие механизмы подтверждения своей аутентичности. В целом, задача может оказаться нетривиальной, сам по себе FFmpeg ее не решит.
     
    И если речь идет о вебинаре то там может быть множество стримов (например, включения камер других участников) и дополнительные потоки в виде презентаций, чатов. Воспроизвести все без потери целостности восприятия умеет только оригинальный плеер.

    Всего записей: 4948 | Зарегистр. 05-01-2006 | Отправлено: 07:07 09-10-2023 | Исправлено: mithridat1, 17:06 09-10-2023
    Ethereal999



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, не подскажете по связке ShareX и сабжа?
    Мне нужно записать экран совместно с системными звуками и микрофоном. Это получилось сделать с помощью добавочной команды ("Additional command line arguments"):

    Код:
    -f dshow -i audio="Microphone (Display Audio)" -filter_complex amix=inputs=2:duration=longest

    Но звук с микрофона (или весь звук, отследить системный я не знаю как) имеет рассинхрон, бежит немного впереди видео. Я пытался избавится от рассинхрона, добавив такую команду:

    Код:
    -f dshow -i audio="Microphone (Display Audio)" -filter_complex "[2:a]asetpts=PTS+0.6/TB;[1:a][2:a]amix=inputs=2:duration=longest"

    Но в этом случае в видео попадает только дорога с микрофона ([2:a]). Если же попытаться добавить перед amix блоком еще и системный звук ([1:a]), то в видео попадет уже только он. Т. е. я понял так, что какая первая дорога идет перед блоком amix, только такая в видео и попадет, вторую он проигнорирует.
     
    Можно ли как-то подать ему добавочную команду, чтобы и рассинхрон убрать, и обе дороги в видео замиксовались?

    Всего записей: 702 | Зарегистр. 25-12-2002 | Отправлено: 17:36 09-10-2023 | Исправлено: Ethereal999, 17:39 09-10-2023
    UriF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Странный эффект.  Скачал mp4 с помощью Video Download Helper.  Файл проигрывается в Daum & VLC, но превью не видно в Windows Explorer.  Попытался прогнать через ffmpeg командой
     
    ffmpeg -i input.mp4 copy output.mp4
     
    Получил следующий репорт об ошибке:
     
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000021f0a60a5c0] Invalid sample size -6
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000021f0a60a5c0] error reading header
    [in#0 @ 0000021f0a60a480] Error opening input: Invalid data found when processing input
    Error opening input file input.mp4.
    Error opening input files: Invalid data found when processing input
     
    Прогнал через MediaInfo. Вот репорт:
     
    General
    Complete name                            : D:\input.mp4
    Format                                   : MPEG-4
    Format profile                           : Base Media
    Codec ID                                 : isom (isom/iso2/avc1/mp41)
    File size                                : 1.71 GiB
    Duration                                 : 4 h 11 min
    Overall bit rate mode                    : Variable
    Overall bit rate                         : 975 kb/s
    Frame rate                               : 29.970 FPS
     
    Video
    ID                                       : 1
    Format                                   : AVC
    Format/Info                              : Advanced Video Codec
    Format profile                           : High@L3.1
    Format settings                          : CABAC / 4 Ref Frames
    Format settings, CABAC                   : Yes
    Format settings, Reference frames        : 4 frames
    Codec ID                                 : avc1
    Codec ID/Info                            : Advanced Video Coding
    Duration                                 : 4 h 11 min
    Source duration                          : 4 h 11 min
    Bit rate                                 : 869 kb/s
    Width                                    : 864 pixels
    Original width                           : 852 pixels
    Height                                   : 468 pixels
    Original height                          : 480 pixels
    Display aspect ratio                     : 16:9
    Frame rate mode                          : Variable
    Frame rate                               : 29.970 FPS
    Minimum frame rate                       : 5.994 FPS
    Maximum frame rate                       : 120.000 FPS
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Bits/(Pixel*Frame)                       : 0.072
    Stream size                              : 1.52 GiB (89%)
    Source stream size                       : 1.52 GiB (89%)
    Writing library                          : x264 core 164 r3106 eaa68fa
    Encoding settings                        : cabac=1 / ref=2 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=4 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=15 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=1 / keyint=150 / keyint_min=76 / scenecut=0 / intra_refresh=0 / rc_lookahead=20 / rc=crf / mbtree=1 / crf=25.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
    mdhd_Duration                            : 15065532
    Codec configuration box                  : avcC
     
    Audio
    ID                                       : 2
    Format                                   : AAC LC
    Format/Info                              : Advanced Audio Codec Low Complexity
    Codec ID                                 : mp4a-40-2
    Duration                                 : 4 h 9 min
    Source duration                          : 4 h 11 min
    Bit rate mode                            : Variable
    Bit rate                                 : 2 394 kb/s
    Nominal bit rate                         : 96.3 kb/s
    Maximum bit rate                         : 6 025 kb/s
    Channel(s)                               : 2 channels
    Channel layout                           : L R
    Sampling rate                            : 44.1 kHz
    Frame rate                               : 43.066 FPS (1024 SPF)
    Compression mode                         : Lossy
    Stream size                              : 4.17 GiB
    Source stream size                       : 4.17 GiB
    mdhd_Duration                            : 14956507
    Errors                                   : Missing ID_END  
     
    Попробовал открыть в Avidemux, но он сразу крашнулся.  Я даже снова скачал этот же файл в VDH и получил абсолютно такой же файл с таким же чудом

    Всего записей: 816 | Зарегистр. 14-06-2004 | Отправлено: 06:55 10-10-2023
    vaskamy



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

    Цитата:
    Скачал mp4 с помощью Video Download Helper

    Заметил на собственном опыте что при загрузке видео с помощью разнообразных программ для скачивания видео, видео может загрузиться битым, при сбое в сети файл докачевается не корректно.
    Попробуйте перекачать видео чем то другим.

    Всего записей: 968 | Зарегистр. 04-03-2017 | Отправлено: 07:49 10-10-2023
    UriF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vaskamy
    У меня с этим расширением никогда проблем не было тем более, что только это расширение дает возможность выбора резолюций, все остальные расширения видят или 720p или 1080p (мне не нужно это в резолюции на весь экран, а потому я предпочитаю 480p,a другие эту резолюцию не видят в упор).  Более того, там дают стримы с других серверов.  С другого сервера получил без проблем.  Я повторяю, что проигрывается видео без проблем, а вот Avidemux вылетает и ffmpeg (и ffprobe) выдает странную ошибку.  MediaInfo тоже все видит.  Я не понимаю, почему, если Daum, основанный на ffmpeg, играет, а сам ffmpeg - нет.

    Всего записей: 816 | Зарегистр. 14-06-2004 | Отправлено: 09:31 10-10-2023
    Gideon Vi

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

    Цитата:
    Я не понимаю, почему, если Daum, основанный на ffmpeg, играет, а сам ffmpeg - нет

    потому, что у плеера нет задачи открыть поток корректно, а ffmpeg обязан сохранить поток корректно. То, что у файла не поврежден хидер, который читает mediainfo, вовсе не означает, что поток не закосячен.

    Всего записей: 8084 | Зарегистр. 02-02-2004 | Отправлено: 16:54 10-10-2023 | Исправлено: Gideon Vi, 16:55 10-10-2023
    UriF

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gideon Vi
    Тогда тупой вопрос, прямо не относящийся к теме.  Есть ли проги, которые могут, в принципе, подобные ситуации исправить?

    Всего записей: 816 | Зарегистр. 14-06-2004 | Отправлено: 16:58 10-10-2023
    Открыть новую тему     Написать ответ в эту тему

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

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