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

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

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

guru431

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


FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах, а также консольная утилита ffmpeg.exe, представляющая из себя универсальный видеоконвертер.

Ссылки на русском:
  • Документация по FFmpeg
  • Статья «19 команд FFmpeg для любых нужд»
     
    Примеры использования:
  • Преобразовать в MKV
  • Захвата с экрана, со звуком
  • Кодирование с помощью технологии Nvidia NVENC
  • Поддержка вывода Юникода в консоль для старых версий FFmpeg
  • Подготовка качественных GIF-файлов из видео при помощи FFmpeg
     
    Поддержка Windows XP. Последний официальный билд под Windows XP от Zeranoe ffmpeg-20150525-git-8ce564e был в мае 2015. Тема (нужен TOR), посвященная сборкам ffmpeg/ffprobe, работающих под Windows XP. Готовые сборки лежат тут, зеркало версии от 2019, 2020, 2021 года, GUI под WinXP (ffqueue, WinFF, Video converter). Static builds by Kyle Schwarz (последний для WinXP ffmpeg-3.0-win32-static.7z).

  • Всего записей: 64 | Зарегистр. 28-02-2007 | Отправлено: 17:23 21-11-2012 | Исправлено: nick7inc, 12:06 23-05-2022
    guru431

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В общем-то, как всегда - помоги себе сам!
     
    Сам решил проблему как смог. Ключей или дополнительных настроек для ffmpeg я не нашел. На помощь пришла командная строка )))
     
    Если коротко:
    1. На разрешение видео я забил - решил не менять при конвертации.
    2. Битрейт видео - не больше 600 kbps (Батник будет для каждого видео перед конвертацией проверять его битрейт и если он меньше 600, то менять не будет).
    3. Все настройки кодирования вынесены вперед. Перед каждой настройкой стоит "+" или "-". "+" означает, что настройка будет учитываться при конвертировании,  "-" - нет.
     
    Собственно сам код:

    Код:
    set format_files=mp4
    set folder_sources=d:\sources
    set folder_destination=d:\destination
     
    set video_codec=:+:libx264
    set number_frames=:+:25
    set video_bitrate=:+:600
    set video_resolution=:-:640x480
     
    set audio_codec=:+:libfaac
    set number_channels=:+:2
    set audio_bitrate=:+:128
    set audio_sampling_rate=:+:48000
     
     
    for /f "tokens=1,2 delims=:" %%a in ('echo %video_codec%') do (set video_codec_status=%%a&set video_codec_value=%%b)
    if %video_codec_status%==+ (set set_video_codec=-vcodec %video_codec_value%) else (set set_video_codec= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %number_frames%') do (set number_frames_status=%%a&set number_frames_value=%%b)
    if %number_frames_status%==+ (set set_number_frames=-r %number_frames_value%) else (set set_number_frames= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %video_bitrate%') do (set video_bitrate_status=%%a&set video_bitrate_value=%%b)
    if %video_bitrate_status%==+ (set set_video_bitrate=-b %video_bitrate_value%k) else (set set_video_bitrate= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %video_resolution%') do (set video_resolution_status=%%a&set video_resolution_value=%%b)
    if %video_resolution_status%==+ (set set_video_resolution=-s %video_resolution_value%) else (set set_video_resolution= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %audio_codec%') do (set audio_codec_status=%%a&set audio_codec_value=%%b)
    if %audio_codec_status%==+ (set set_audio_codec=-acodec %audio_codec_value%) else (set set_audio_codec= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %number_channels%') do (set number_channels_status=%%a&set number_channels_value=%%b)
    if %number_channels_status%==+ (set set_number_channels=-ac %number_channels_value%) else (set set_number_channels= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %audio_bitrate%') do (set audio_bitrate_status=%%a&set audio_bitrate_value=%%b)
    if %audio_bitrate_status%==+ (set set_audio_bitrate=-ab %audio_bitrate_value%k) else (set set_audio_bitrate= )
    for /f "tokens=1,2 delims=:" %%a in ('echo %audio_sampling_rate%') do (set audio_sampling_rate_status=%%a&set audio_sampling_rate_value=%%b)
    if %audio_sampling_rate_status%==+ (set set_audio_sampling_rate=-ar %audio_sampling_rate_value%) else (set set_audio_sampling_rate= )
     
     
    cd "%folder_sources%"
    for %%a in (*.*) do (for /f "tokens=6 delims= " %%i in ('"ffmpeg -i "%%a" 2>&1>nul | find /i "bitrate:""') do if %%i gtr %video_bitrate_value% (%ffmpeg_exe% -i "%%a" -strict -2 -f %format_files% %set_video_codec% %set_number_frames% %set_video_bitrate% %set_video_resolution% %set_audio_codec% %set_number_channels% %set_audio_bitrate% %set_audio_sampling_rate% "%folder_destination%\%%a.%format_files%") else (%ffmpeg_exe% -i "%%a" -strict -2 -f %format_files% %set_video_codec% %set_number_frames% -b %%ik %set_video_resolution% %set_audio_codec% %set_number_channels% %set_audio_bitrate% %set_audio_sampling_rate% "%folder_destination%\%%a.%format_files%"))

     
    P.S. Просьба сильно не ругать за грамотность в коде. Я любитель. Главное это работает.

    Всего записей: 64 | Зарегистр. 28-02-2007 | Отправлено: 18:40 26-11-2012
    driver29



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Установил программу FFmpeg? – как описано на странице сайта «Как установить программу FFmpeg на системе Windows».
     
    Не получается запустить …
    В пункте 4 написано: «Откройте командную строку. Введите команду “ffmpeg –version”. Если командная строка выдаст информацию о текущей версии программы FFmpeg, значит, вы все сделали правильно, и программа установлена корректно. Теперь FFmpeg можно запускать из командной строки».
    Информация о текущей версии программы FFmpeg не выдаётся!
    И как её запускать?
    Кто сможет что подсказать?

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 01:32 30-11-2015
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    у вас мало опыта работы с командной строкой.
    вы явно что-то напутали с переменной %PATH%
    но обсуждать переменные лучше в соответствующих темах
    в данном случае вам поможет такой вот файл реестра

    Код:

    REGEDIT4
     
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ffmpeg.exe]
    @="C:\\Путь\\к\\папке\\ffmpeg\\ffmpeg.exe"
     
     

    только впишите правильный путь и всё заработает

    Отправлено: 01:55 30-11-2015
    driver29



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hErAx, спасибо, что откликнулись.
    Да, ... нет у меня опыта работы с командной строкой, - но научится хочется …
    До запуска программы я пока не дошёл …
    Команду на запрос «информации о текущей версии программы FFmpeg» я пишу правильно,
    Но получаю результат непонятный!
     
       
     
    А, он должен быть примерно такой:
     
     

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 03:58 30-11-2015 | Исправлено: driver29, 06:20 30-11-2015
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    driver29как можно так часто противоречить своим-же словам!

    Цитата:
    До запуска программы я пока не дошёл …
    вы запускаете программу с параметром –version, и здесь же утверждаете, что не делаете этого.

    Цитата:
    Команду на запрос «информации о текущей версии программы FFmpeg» я пишу правильно
    вы её не пишите, а вставляете из буфера обмена. там вместо дефиса написано тире, а нужен именно дефис.

    Отправлено: 10:19 30-11-2015
    unreal666



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    и версия ffmpeg какая-то старая.
    Скачай отсюда последнюю версию, которая 32-bit Static.

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 10:47 30-11-2015
    driver29



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

    Цитата:
    вы её не пишите, а вставляете из буфера обмена. там вместо дефиса написано тире, а нужен именно дефис.

    Да, hErAx, Вы правы, - ранее я вставлял команду из буфера обмена
    С дефисом получился вот такой результат:
     
       
     
    Спасибо за подсказку.
     
     
     
    Добавлено:

    Цитата:
    и версия ffmpeg какая-то старая.
    Скачай отсюда последнюю версию, которая 32-bit Static.

    Спасибо.
    Я и этой версией ещё ничего не обрабатывал …
    По Вами предложенной ссылке мне видимо нужна версия 64-bit
    Естественно возникает вопрос, -как правильно удалить предыдущую версию?
    И установка этих, Вами предложенных, производится аналогично?
     
     
    Добавлено:
    unreal666

    Цитата:
    и версия ffmpeg какая-то старая.
    Скачай отсюда последнюю версию, которая 32-bit Static.

    Скачал по Вашей ссылке архив ffmpeg-20151126-git-72eaf72-win64-static.7z
    Распаковал и новыми файлами просто заменил на диске С в папке ffmpeg старые.
    Вот ниже скрин результата выполнения команды ffmpeg –version
     
       

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 16:02 30-11-2015
    unreal666



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

    Цитата:
    Вот ниже скрин результата выполнения команды ffmpeg –version

    видно что новая
    еще вопросы?

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 18:47 30-11-2015
    driver29



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

    Цитата:
    еще вопросы?

    Как написать команду для конвертирования видео из формата avi в формат mp4?
    В какой папке разместить конвертируемое видео и какие данные ещё нужны о видеофайле для написания команды?
     

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 20:42 30-11-2015
    unreal666



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    driver29
    блин. Опять непонятно, что ты хочешь. Конвертировать или только перемуксовать?
    - Если перемуксовать, то какими конкретно кодеками закодировано видео и аудио в этом avi и что еще от него нужно?
    - Если перекодировать то указывай все требования к кодированию.
     
    Тут телепатов нема.
     
    А то можно просто указать ком. строку вида

    Код:
    ffmpeg   -i "мой_фиг_его_знает_ави.avi"   "мой_выходной_с_какими-то_там_параметрами_мп4.mp4"

    а дальше послать тебя читать многостраничную доку по ffmpeg.

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 22:09 30-11-2015
    driver29



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    unreal666, у меня была задача:
    Вырезать (скопировать) из скачанного с youtube.com в формате *.mp4 ролика кусок длительностью на пару минут, - и главное, чтобы этот кусок остался в прежнем формате (*.mp4).
    Я вырезал этот кусок программой VirtualDub, но сохранить его там предлагается в формате avi!
    Вот я и искал способ конвертирования видео из формата avi в формат mp4 …
    Я никогда такими делами не занимался, да и в дальнейшем вряд ли придётся, …
    Вы мне подкинули идею конвертирования видеофайлов программой ffmpeg, но затем начали писать о «перемуксовке» и послали читать многостраничную доку по ffmpeg.
    В поисках я наткнулся на ролик Александра Ороховатского «Самый быстрый способ обрезки и слияния видеофайлов»
    Вот я его методом я и вырезал (скопировал), пользуясь ffmpeg, нужный мне кусок прямо в формате mp4!
    Для того чтобы в командной стоке, писать меньше символов я поместил видеофайл прямо в корень диска (раздела) «C». Команда получилась следующая: «C:\ffmpeg\bin\ffmpeg.exe -ss 00:09:28 -i c:\12.mp4 -t 00:02:24 -vcodec copy -acodec copy c:\122.mp4».
    Вот предлагаю здесь посмотреть скрин выполненной команды. (12.mp4, - исходный файл; 122.mp4. – сохранённая копи нужной части файла).
    "Вырезка" получилась нужного мне размера. Просматривается как в исходном файле. Единственно, что мне не понятно, - это выделенные красным и жёлтым цветами стоки (см. скрин).
    Пробовал вырезать (скопировать) из другого, снятого фотоаппаратом, файла - получается то же самое …
    Если у Вас поэтому («цвету») есть какие-либо мысли, - поделитесь …

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 07:15 01-12-2015 | Исправлено: driver29, 16:24 01-12-2015
    unreal666



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

    Цитата:
    Если у Вас поэтому («цвету») есть какие-либо мысли, - поделитесь …

    пофигу на эти предупреждения.
    Если хочешь, чтобы они не появлялись, добавь в ком. строку опцию -flags +global_header .
     
    Добавлено:
    кстати, вот тебе для размышления более навороченный пример:

    Код:
    ffmpeg -i "input.mp4" -i "input_audio.m4a" -map_chapters -1 -map 0:v:0 -c:v copy -map 1:a:0 -c:a copy -metadata:s:v:0 language=rus -metadata:s:v:0 title="Это видеодорожка" -metadata:s:a:0 language=rus -metadata:s:a:0 title="Это аудиодорожка" "muxed.mp4"


    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 11:52 01-12-2015
    driver29



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

    Цитата:
    Если хочешь, чтобы они не появлялись, добавь в ком. строку опцию -flags +global_header

    Не плохо бы было, если бы Вы пояснили, что означает эта опция и в какое место строки её добавлять …
     

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 17:07 01-12-2015
    unreal666



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

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 18:07 01-12-2015
    driver29



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати, для ffmpeg существуют графические оболочки!
    Смотрим, к примеру, статью:
    «iFFmpeg. Графическая оболочка для консольной утилиты FFmpeg»

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 18:50 01-12-2015
    unreal666



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

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 19:07 01-12-2015
    driver29



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

    Цитата:
    для Mac OS и притом платная.

    Я выше написал: «к примеру» …
    Вот Вам и для Windows: «Avanti – это графический интерфейс, написанный специально для программы FFmpeg, …
    Avanti, в свою очередь, значительно повышает удобство работы с приложением, предоставляя доступ ко всем его функциям через приятную графическую оболочку. Главное окно содержит большой набор всевозможных инструментов и элементов управления. Кроме того, оболочка совершенно бесплатна». http://soft.mydiv.net/win/download-AVANTI.html
     

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 19:58 01-12-2015
    unreal666



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

    Цитата:
    предоставляя доступ ко всем его функциям через приятную графическую оболочку.

    посмотрел я его. По части "ко всем его функциям" - это они загнули. Даже рядом не стояло.

    Всего записей: 6619 | Зарегистр. 14-02-2005 | Отправлено: 20:43 01-12-2015
    driver29



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

    Цитата:
    посмотрел я его. По части "ко всем его функциям" - это они загнули. Даже рядом не стояло.

    Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его возможности постигли лишь немногие профессионалы …  
    И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне.

    Всего записей: 412 | Зарегистр. 17-04-2010 | Отправлено: 21:47 01-12-2015
    Открыть новую тему     Написать ответ в эту тему

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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru