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

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

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

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

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



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

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

    Ok. У вас задача перекодировать видеопоток из одного кодека в другой с тем же битрейтом. Это странно, но допустим.
     
    1. Сначала вам нужно узнать средний битрейт исходного видеопотока (звук и прочее будут копироваться). Увы, это непростая задача. MediaInfo может не давать такую информацию. Тут можно помучить ffprobe - https://superuser.com/questions/1106343/determine-video-bitrate-using-ffmpeg
     
    2. Затем кодируйте видео с полученным битрейтом. Для более точного попадания в размер, используйте двухпроходное кодирование.
    Информация по кодированию в популярные кодеки есть на Wiki - https://trac.ffmpeg.org/wiki#Encoding

    Всего записей: 11000 | Зарегистр. 05-02-2003 | Отправлено: 15:42 19-12-2024 | Исправлено: V0lt, 16:52 19-12-2024
    351878



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

    Цитата:
    любая перекодировка дает потерю качества

    я бы точку поставил, жирную, тем более на этих всех mp4
    нет если конечно человек не педант то ради бога)..
    LZAA дам совет. помучай chatgpt. если есть навык общения с ним ("задавай правильные вопросы"), то не станешь тут больше бабушку лопатить)) я тебе гарантирую.

    Всего записей: 1282 | Зарегистр. 28-03-2016 | Отправлено: 18:00 19-12-2024
    LZAA

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
           
    Цитата:
    помучай chatgpt. если есть навык общения с ним ("задавай правильные вопросы"), то не станешь тут больше бабушку лопатить))  

          Понятно. Зачем форум, если есть алгоритм, который 'знает всё'?
           Задача не решена.

    Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 18:23 19-12-2024 | Исправлено: LZAA, 18:24 19-12-2024
    los

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

    Цитата:
    Увы, это непростая задача. MediaInfo может не давать такую информацию.

    есть пример файла для которого mediainfo(включая ключ '-f') не выводит битрейт?

    Всего записей: 7862 | Зарегистр. 08-09-2001 | Отправлено: 18:25 19-12-2024
    351878



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

     не знаешь о чём говоришь.

    Всего записей: 1282 | Зарегистр. 28-03-2016 | Отправлено: 18:54 19-12-2024
    Dimitr1s



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LZAA
    AFAIK может оказаться, после полугода внимательного изучения всей документации FFmpeg, что такой команды нет. Это по теме.
     
    Не по теме:
    Гораздо быстрее, за пару вечеров, научиться разбираться, как вам каждый конкретный семпл перекодировать по приемлемому совпадению качества/битрейта.
    Берёте инструменты:
    AviSynth+
    на выбор:
    dgdecnv
    ffms2
    L-SMASH
    ещё:
    бинарь x264
    avs4x26x можно взять здесь например из x265-***.7z
     
    Смысл в том, делаете выборку, прописав в скрипте:

    Код:
    selectTotal1=framecount()/100
    selectTotal2=selectTotal1*2
    selectrangeevery(selectTotal2,50)

    запускаете с crf 18...
    Вот здесь всё расписано максимально подробно. Там в дебрях и для xvid есть и для двести шестьдесят пятого.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 19:35 19-12-2024
    neorumtu

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

    Цитата:
    есть пример файла для которого mediainfo(включая ключ '-f') не выводит битрейт?

    Если mkv, муксенный не mkvtoolnix, и звук с переменным битрейтом, а видео не abr и 2pass или без x264 info, то mediainfo покажет только общий битрейт. А чтобы у таких переменных дорожек посмотреть битрейт, надо перегнать через mkvtoolnix (он добавит теги). Желательно галочки с лишних тегов поснимать.
     
    Классика, это vp9+opus в mkv, созданный в ffmpeg. Например, муксенный в yt-dlp. Или можно vp9+aac в mkv.

    Всего записей: 884 | Зарегистр. 30-08-2023 | Отправлено: 20:13 19-12-2024 | Исправлено: neorumtu, 20:15 19-12-2024
    Dimitr1s



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    neorumtu
    Ну на таких пример и FFprobe не поможет. Это я к посту V0lt`а. Так же покажет общий битрейт.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 20:37 19-12-2024
    V0lt



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

    Цитата:
    есть пример файла для которого mediainfo(включая ключ '-f') не выводит битрейт?

    Хз. Я ключи MediaInfo не изучал. По дефолту не показывает битрейт на обычном MKV.

    Всего записей: 11000 | Зарегистр. 05-02-2003 | Отправлено: 20:40 19-12-2024
    LZAA

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

                         Dimitr1s
     
         Спасибо за совет.
         
    Цитата:
    такой команды нет

          Такая команда есть:
     
          ffmpeg -i x.mp4 -crf 27 xx.mp4
     
         Пишут, что это 'чревато' и я это понимаю. Значит нужна другая команда - 'более правильная'. У меня нет необходимости постигать все премудрости кодирования media.
        Пишут, что c 'bit rate' затруднение - охотно верю. А кроме 'bit rate' какие ещё затруднения?
        Меня интересует не сложное решение. И я понимаю, что не получится слелать '1:1'. Но это и не требуется. Вопрос: можете ли Вы, используя только данные 'Mediainfo' (прилагаются) составить команду для кодировки? При этом критерия только два - размер медиафайла и его качество (желательно сильно не испортить).

    Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 21:36 19-12-2024
    Dimitr1s



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

    Цитата:
    По дефолту не показывает битрейт на обычном MKV.

    Вот три не просмотренные валяются. На всех показывает по дефолту, не расширенная инфа. 1 2 3
    добавил:
    В BE показывает ).
     
    LZAA

    Цитата:
    Вопрос: можете ли Вы, используя только данные 'Mediainfo' (прилагаются) составить команду для кодировки? При этом критерия только два - размер медиафайла и его качество (желательно сильно не испортить).

    Нет. Наобум получится гумно с большой вероятностью.
    Только делать выборку, читать логи, индивидуально (по логам) семплу подбирать параметры и смотреть результат.
     
    Остальное, возьмите любую прогу однокнопочную и пробуйте может получится чего.
    Я гарантирую, изучить статейку, что я привёл и разобраться - будет на порядок быстрее по времени.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 21:37 19-12-2024 | Исправлено: Dimitr1s, 21:57 19-12-2024
    neorumtu

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

    Цитата:
    Вот три не просмотренные валяются. На всех показывает по дефолту, не расширенная инфа.

    Его как раз муксили в mkvtoolnix. mkvtoolnix считает битрейт при муксе и добавляет такую инфу, а ffmpeg нет. Это так называемые track-statistics-tags. Появились в спецификации MKV / в mkvtoolnix, а ffmpeg их не поддержал. Более того, mkv с track-statistics-tags не очень эстетично выглядят в логе ffmpeg.
     
    track-statistics-tags своего рода костыль, которого, например, mp4 давно лишён.
     
    А mediainfo вертится как уж на сковородке, пытаясь подсчитать битрейт по всевозможным критериям. Даже банально вычитая общий из битрейта cbr звука или слепо доверяя x264 логу (который, кстати, можно подделать бинарно). Но если никакой инфы нет и условия плохие, то не покажет раздельный битрейт.
     
    Хотя, есть вроде какой-то режим полного анализа. Но это не быстро.

    Всего записей: 884 | Зарегистр. 30-08-2023 | Отправлено: 21:56 19-12-2024 | Исправлено: neorumtu, 22:04 19-12-2024
    Dimitr1s



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    neorumtu
    Нет, разговор о том, что V0lt написал [?]. На обычных нормально показывает. Под обычными я понимаю муксеные по правилам, а не хрен знает что )).
     

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 22:10 19-12-2024
    los

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

    Цитата:
    По дефолту не показывает битрейт на обычном MKV.

    У меня отображает. И если сравнивать со значениями полученным с помощью mkvinfo, то данные от ffprobe также далеки от них как и данные от mediainfo.
    Это если файл без track-statistics-tags. Для файла с track-statistics-tags
    mkvinfo и mediainfo выводят одинаковый результат, а данные от ffprobe отличаются.

    Всего записей: 7862 | Зарегистр. 08-09-2001 | Отправлено: 22:22 19-12-2024
    Dimitr1s



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    Так FFprobe не выводит битрейт по дороге, а mkvinfo не выводит общий. По крайней мере у меня примеров не нашлось таких.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 23:14 19-12-2024
    neorumtu

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как я говорил, mediainfo берёт инфу из разных источников. Вычитает битрейт звука, если он cbr. Смотрит x264 info (которую пишет кодер), если там есть инфа и битрейт abr или 2pass, в общем, если битрейт указан, возьмёт оттуда. Но без отчётов mediainfo и ffmpeg/ffprobe разговор не имеет смысла.
     
    Добавлено:
    mkvinfo прикольная вещь. Не знал.
     
    Добавлено:
    ffprobe = ffmpeg -i

    Всего записей: 884 | Зарегистр. 30-08-2023 | Отправлено: 00:59 20-12-2024 | Исправлено: neorumtu, 01:05 20-12-2024
    Dimitr1s



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

    Цитата:
    Но без отчётов mediainfo и ffmpeg/ffprobe разговор не имеет смысла.

    Вот я специально ничего не делал. Взял обычный mkv файл с проверенной раздачи.
     
    MediaInfo выводит и общий битрейт (5820), и битрейт дороги (5050).
     
    FFprobe не выводит битрейт дороги, но выводит общий битрейт (5820315). Который полностью совпадает с выводом MediaInfo.
     
    mkvinfo не выводит общий битрейт, но выводит битрейт дороги (5050100). Который полностью совпадает с выводом MediaInfo.
     
    С mkv как-то так.
     

    Цитата:
    ffprobe = ffmpeg -i

    Не, не равно.
    Попробуйте сделать, для вывода полной, читаемой информации с FFprobe:

    Код:
    chcp 65001 && ffprobe -v quiet -show_format -show_streams -show_error -pretty -print_format json -i test.mkv

    а теперь попробуйте вместо ffprobe вставить ffmpeg.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 01:57 20-12-2024
    neorumtu

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    О чём мы спорим?
     

    Цитата:
    Взял обычный mkv файл с проверенной раздачи

    1. Муксено в mkvtoolnix
    2. Звук в CBR
    3. Есть track-statistics-tags
     
    Поэтому битрейт видеодорожки известен.
     

    Цитата:
    не равно

    Но без доп. параметров равно. С доп. параметрами да, надо использовать ffprobe.
     
    Речь шла про то, что если:
    1. Муксено в ffmpeg
    2. Звук в VBR
    3. нет track-statistics-tags
    4. Нет x264 info (или x265 info)
    5. Есть x264 info (или x265 info), но метод кодирования crf (а не abr или 2pass)
     
    то битрейт отдельных дорог не узнать. В отличии от mp4.
    Классический пример: mkv(vp9+opus) или mkv(vp9+aac), производимый yt-dlp.

    Всего записей: 884 | Зарегистр. 30-08-2023 | Отправлено: 02:47 20-12-2024 | Исправлено: neorumtu, 02:50 20-12-2024
    Dimitr1s



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

    Цитата:
    ffprobe = ffmpeg -i ...
    ...Но без доп. параметров равно.

    Это как, если в папке лежат просто? Нет, тоже не равно.
     

    Цитата:
    Речь шла про то, что если:
    1. Муксено в ffmpeg
    2. Звук в VBR
    3. нет track-statistics-tags
    4. Нет x264 info (или x265 info)
    5. Есть x264 info (или x265 info), но метод кодирования crf (а не abr или 2pass)
     
    то битрейт отдельных дорог не узнать. В отличии от mp4.

    Причём тут звук и где муксено - не понял. И со звуком, и без звука, и муксенный в FFmpeg везде одна картина, что я привёл выше.
     

    Цитата:
    Классический пример: mkv(vp9+opus) или mkv(vp9+aac), производимый yt-dlp.

    Я чуть выше выкладывал такой пример. mkvinfo выводит битрейт дороги.

    Всего записей: 2165 | Зарегистр. 02-07-2006 | Отправлено: 08:43 20-12-2024
    ED_Sln



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

    Цитата:
    Причём тут звук и где муксено - не понял. И со звуком, и без звука, и муксенный в FFmpeg везде одна картина, что я привёл выше.  

    Не совсем, вот пример файла [?] смуксенный через ffmpeg. Как видно, общий битрейт показывает один, а битрейт видео почему то сильно завышен, реальный битрейт видео должен быть около 1000, потому что кодировалось с параметром -b:v 1000k. И размер видео показывает 449 МБ, хотя размер всего файла, вместе со звуком 266 МБ. Или еще пример [?], старый mkvtoolnix, в нем то ли баг, то ли не добавили еще, но в видео дорожке вообще не пишется битрейт.
     
    ADD: Нет, это не баг старого mkvtoolnix, это файл смуксенный с параметром "--disable-track-statistics-tags".

    Всего записей: 1255 | Зарегистр. 05-11-2009 | Отправлено: 09:07 20-12-2024 | Исправлено: ED_Sln, 09:13 20-12-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 114 115 116 117 118 119 120 121 122 123

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