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

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

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

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
    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. Просьба сильно не ругать за грамотность в коде. Я любитель. Главное это работает.

    Всего записей: 67 | Зарегистр. 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.

    Всего записей: 6671 | Зарегистр. 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

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

    Всего записей: 6671 | Зарегистр. 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.

    Всего записей: 6671 | Зарегистр. 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"


    Всего записей: 6671 | Зарегистр. 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вообще форсирует глобальные заголовки. Но в данном случае он просто подавляет эти предупреждения, т.к. файлы что с этой опцией, что без нее, имеют абсолютное совпадение.
    Пихать его перед именем выходного файла.

    Всего записей: 6671 | Зарегистр. 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 и притом платная.

    Всего записей: 6671 | Зарегистр. 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

    Всего записей: 6671 | Зарегистр. 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 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

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