Welcome to IzzyForum

Йо! Ты ещё не зарегистрировался? Так пора бы это сделать, или не сможешь написать о своей проблеме с игрушечкой для дебилов, не обсудишь как горел твой мехмод и не увидишь уведомлений о том, как тебя кто-то хуесосит в твоей же теме. Регистрируйся и добро пожаловать.

тотещепиздабол

конвертирование mp3/wav/aac в avi или mp4 c статичным изображением??

24 сообщения в этой теме

значит есть куча звуковых файлов "aac" расширения, мне надо вссю кучу конвертировать в видео с статичным изображением по фасту, без рендера. какой программой это можно сделать?

изначально я пользовался VirtualDub'ом: открывал изображение, которое будет статичным. делал в бандикаме запись этого изображения длительностью в 1 сек или около того (не важно). добавлял в VirtualDub видео - снятая картинка бандикамом, а затем, в настройках отключал рендеринг "прямокопирование", в аудио также делал, также в настройках аудио заменял дорожку. затем в видео, - частоте кадров; ставил галку чтобы длительность видео соответствовала длительности аудио. такой профит, у которого один минус, - для каждого aac файла нужно по отдельности проворачивать все это, а это все слишком долго.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я думаю, что тебя спасёт ffmpeg и написание для него скриптов в batch-файле.

в принципе и virtualdub на сколько я знаю тоже способен делать что-то из командной строки, но вроде как он не такой гибкий как ffmpeg, в котором я точно знаю что можно херачить видео из одной картинки.

вопрос только в рендере. не знаю, какой ты кодек используешь, но в любом случае, рендер из 1й статичной картинки - это довольно быстро, если не мудрить с настройками... в любом случае, имхо, запустить рендер из бат-файла и пойти "пить чай" будет намного удобнее и быстрее, чем возиться со всем тем что ты описал.

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

и какая команда ffmpeg для этого нужна?

установка
https://www.youtube.com/watch?v=mJEYgd5iJfQ

создать директорию на диске: C:\ffmpeg
и туда закинуть содержимое архива "ffmpeg" https://www.ffmpeg.org/ , где ff-prompt.bat и 4 папки
затем пуск, пкм по "мой компьютер" > Свйоство > Дополнительные параметры системы >> параметры среды. в "системных переменных" ищем Patch, дописываем:
;C:\ffmpeg\bin
(аналогичная установка wget)
----- проверить, установлена ли программа можно через cmd. узнав версию программы: ffmpeg -version
ffmpeg -help открыть справку по программе

---------Команды ковенртации---------
-------
6. Извлечь звуковую дорожку из видео и сохранить в mp3
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
Пояснения:
Источник: source_video.avi
Битрейт аудио: 192kb/s
Выходной формат: mp3
Полученный аудиофайл: sound.mp3
-------
14. Конвертировать .avi в mpeg для DVD-плееров
ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg
Пояснения:
Выходной формат: pal-dvd
Максимальный размер для выходного файла: 2000000000 (2 Gb)
Широкоэкранный формат: 16:9
-------
7. Конвертировать wav в mp3
ffmpeg -i son_origine.wav -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3
-------
8. Конвертировать .avi в .mpg
ffmpeg -i video_origine.avi video_finale.mpg
-------
10. Конвертировать .avi в .gif (без сжатия)
ffmpeg -i video_origine.avi gif_anime.gif
-------
12. Конвертировать .avi в .flv
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
-------
13. Конвертировать .avi в .dv
ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv
или
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
--------------

--------------
2. Превратить набор картинок в видео
ffmpeg -f image2 -i image%d.jpg video.mpg
Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
-------
(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg
здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
-------
3. Порезать видео на картинки
ffmpeg -i video.mpg image%d.jpg
Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
--------------

--------------
5. Конвертировать видео в формат PSP
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
-------
4. Конвертировать видео в формат iPod/iPhone
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
Пояснения:
Источник: source_video.avi
Аудио кодек: aac
Битрейт аудио: 128kb/s
Видео кодек: mpeg4
Битрейт видео: 1200kb/s
Размер видео: 320 на 180 пикселей
Полученное видео: final_video.mp4
--------------

--------------
15. Сжать .avi в DivX
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
-------
16. Сжать OGG Theora в mpeg DVD
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_termin.mpg
-------
17. Сжать .avi в SVCD mpeg2
Формат NTSC:
ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg
Формат PAL:
ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg
-------
18. Сжать .avi в VCD mpeg2
Формат NTSC:
ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg
Формат PAL:
ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg
-------
19. Многопроходное кодирование с помощью ffmpeg
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

Изменено пользователем тотещепиздабол

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

охохооо, ты хочешь чтобы я за тебя подготовил строку компиляции, да ещё и не зная что тебе надо из кодеков и прочее?))

ну например начни с 

ffmpeg -loop 1 -i image.png

это по картинке, ну и добавляй параметры для компиляции (кодеки типа -c:v libx264 -t 15 и т.п., -t 15 это 15 секунд)

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

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в твоем примере нет aac, значит он не подходит

мне всего навсего нужно чтобы картинка копировалась без каких-либо кодеков, а параллельно ему шел звук и все это конверировалось в каком нибудь формате видео. например как я это делал с виртуал дабом, получалось что аудио весом в 50-100 мб и видео статичного изображения весом в 30 кб, в итоге получался файл 300-500 мб. это мне и нужно, тк переживать я могу и в других прогах, если надо. едингственное что с виртуал дабом меня не устраивает-, это индивидуальная настройка для каждого аудио, а их под сотни, соответственно и пишу сюда, для элементарного кода

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, тотещепиздабол сказал:

в твоем примере нет aac, значит он не подходит

как понять " в моём примере "? это ты, а не я, процитировал какую-то жалкую шпаргалочку и посчитал, что это всё, на что способен ffmpeg. 

ффмпег - сильный инструмент, и aac он вполне себе умеет использовать в хвост и гриву, но...

Однако, если тебе нужно копировать кодек без перекодирования, то это знать даже и не надо. Ты с ffmpeg можешь просто добавить _любой_ аудиопоток к статичной картинке. Хоть бы блин погуглил что ли... Всё разжёвывать что ли надо?

Как я уже говорил, начинаешь с ffmpeg -loop 1 -i image.png, и дальше добавляешь что тебе нужно, например такой вариант:

ffmpeg -r 5 -loop 1 -i image.png -i music.aac -c:a copy -c:v libx264 -shortest -y result.mp4

-r 5 частота кадров в 5 к/с, можно даже меньше при желании, незначительно влияет на размер файла, если видеокодек хорошо сжимает.

-loop 1 значит зацикливаем одну картинку как источник видео

-c:a copy копируем аудиопоток

-c:v libx264 зацикленную картинку кодируем с кодеком h.264

-shortest -y сделает файл равным по времени самому короткому потоку (на луп с картинкой это не распространяется), следовательно, он его подровняет до конца песни.

но это блин ПРИМЕР, который ты можешь поменять под себя, то есть, кодек видео, частоту кадров, и тп.

но ты хоть такой вариант попробуй, я уверен тебя устроит, так как конвертируется это говно, ну, быстро. Уверен, что быстрее, чем твои манипуляции. Да и весит выходной файл на пару десятков мегабайт больше (ну не буквально, но не сжирает безмерное количество), а не как у тебя в несколько раз, капец какой-то...

Что касается автономности, вот простой пример bat-файла с циклом внутри папки, используя одну и ту же картинку:

Скрытый текст

@ECHO OFF
SET MyImage=D:\kartinki k muzyke\image.png
SET MyInputPath=D:\katalog s muzlom
SET MyOutputPath=D:\gotovoye video
SET ffmpegExe=C:\ffmpeg\bin\ffmpeg.exe

%MyInputPath:~0,2%
CD %MyInputPath%

  FOR %%f IN (*.aac) DO (
  	ECHO %%~nxf
	"%ffmpegExe%" -r 5 -loop 1 -i "%MyImage%" -i "%%~nxf" -c:a copy -c:v libx264 -shortest -y "%MyOutputPath%\%%~nf.mp4"
  )

PAUSE

 

В общем, я тебя направил куда надо, дальше сам. Скрипты за тебя писать меня не проси, и так уже разжевал и в рот положил.

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно было бы и не разжевывать параметры, но на этом огромное спасибо. а вот насчет батника, тоя  вообще ничего не понял. я обычно в эксель захожу, копирую все названия в total'e commander'e и просто вставляю; а дальше кавычками выделяю; таблицу в блокнт; пару "заменить все" и получается что каждая команда новой строчки в бат начинает конверировать, а по завершению конвертации срабатывает следующая строчка с командой, таким образом бат воспроизводит последовательно конвертацию с флудом(спамом) всего происходяешь. а в твоем примере, даже бат красивенько оформлен.. у тебя руки золотые, а у меня, все из жопы...

а я вот чет пытался сделать, но не получилось. пишет неизвестно то,- се , кароче, я бы без тебя н икуда спабси еще раз
ffmpeg -i "audio.aac" -loop 1 -i image.png -aspect 3:2 -t 4200 -r 1 -target mp4 "sound.mp4"

 

1 час назад, Glukovich сказал:

конвертируется это говно, ну, быстро. Уверен, что быстрее, чем твои манипуляции

все совершенно наоборот. конверируется медленнее чем в виртуале дабе раза таки в 10, но вес в 0 раз преувеличен, т.е после конвертации весит 50 мб, столько же, сколько и аудиофайл, а не 500 мб...

Изменено пользователем тотещепиздабол

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

есть OEM 866 для поддержки кириллицы в bat'e, а то пишешь "kartinki k muzyke";"katalog s muzlom"; "gotovoye video" транслитом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 12.11.2016 в 03:37, тотещепиздабол сказал:

есть OEM 866 для поддержки кириллицы в bat'e, а то пишешь "kartinki k muzyke";"katalog s muzlom"; "gotovoye video" транслитом...

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

В 12.11.2016 в 03:01, тотещепиздабол сказал:

а вот насчет батника, тоя  вообще ничего не понял

А чё там понимать то, в начале задаются переменные - пути к директориям и файлам с которыми работаешь,
потом осуществляется переход в директорию с музыкой,
а потом начинает работать цикл, который в переменную %f каждый цикл пишет полный путь к файлу музыки с маской (*.aac) в текущей директории, и используя их имена подставляет переменные в строку с параметрами ффмпег.

Внутри цикла из переменной %f можно вытянуть например только имя найденного по маске файла через команду %~n (его используем для выходного файла видео), а также имя с расширением через %~nx (его - для источника аудио).
Строка параметров ффмпег состоит частично из тех переменных, которые мы задали в начале скрипта, и частично просто из команд ффмпег.
Переменные с файлами взяты в кавычки, ибо могут содержать пробелы.

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

Кстати вот вариант более грамотный и быстрый:

ffmpeg.exe -r 2 -loop 1 -i image.png -i music.aac -c:a copy -c:v libx264 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fm yuv420p result.mp4

в батнике соответственно:

Скрытый текст

@ECHO OFF
SET MyImage=D:\kartinki k muzyke\image.png
SET MyInputPath=D:\katalog s muzlom
SET MyOutputPath=D:\gotovoye video
SET ffmpegExe=C:\ffmpeg\bin\ffmpeg.exe

%MyInputPath:~0,2%
CD %MyInputPath%

IF NOT EXIST "%MyOutputPath%" MKDIR "%MyOutputPath%"

  FOR %%f IN (*.aac) DO (
  	ECHO %%~nxf
	"%ffmpegExe%" -r 2 -loop 1 -i "%MyImage%" -i "%%~nxf" -c:a copy -c:v libx264  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fmt yuv420p "%MyOutputPath%\%%~nf.mp4"
  )

PAUSE

 

Можно было бы кстати сделать двойной цикл с перебором альбомов и картинок, но так как этот вариант требует от меня очередного разжёвывания мне лень, то я даже рассматривать такое не буду.

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

например так...

Скрытый текст

@ECHO OFF
SET ffmpegExe=C:\ffmpeg\bin\ffmpeg.exe

GOTO :START

:LOOP1
  IF NOT EXIST "%MyOutputPath%" MKDIR "%MyOutputPath%"
  %MyInputPath:~0,2%
  CD %MyInputPath%
  FOR %%f IN (*.aac) DO (
  	"%ffmpegExe%" -r 2 -loop 1 -i "%MyImage%" -i "%%~nxf" -c:a copy -c:v libx264  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fmt yuv420p "%MyOutputPath%\%%~nf.mp4"
  )
EXIT /B

:START

SET MyImage=D:\kartinki k muzyke\image.png
SET MyInputPath=D:\katalog s muzlom
SET MyOutputPath=D:\gotovoye video
CALL :LOOP1

SET MyImage=D:\kartinki k muzyke\image_2.png
SET MyInputPath=D:\katalog s muzlom 2
SET MyOutputPath=D:\gotovoye video 2
CALL :LOOP1

SET MyImage=D:\kartinki k muzyke\image_3.png
SET MyInputPath=D:\katalog s muzlom 3
SET MyOutputPath=D:\gotovoye video 3
CALL :LOOP1

PAUSE

 

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а этот ffmpeg способен на 1 миллисекунду вставить изображение в самое начало видео типо 25 кадра, без рендера всего видео, выводом замены этого же видео, без копирования чтобы?

Изменено пользователем тотещепиздабол

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, тотещепиздабол сказал:

выводом замены этого же видео, без копирования чтобы?

вот эту часть не понял.

 в целом им можно условно "всё", просто чем изощрённее будут желания, тем подход к скрипту будет более усложнённый.

по поводу вставить картинку - это скорее всего надо смотреть функцию concatenate 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 15.11.2016 в 01:10, Glukovich сказал:

часть не понял.

ну есть файл "avi.mp4" и ты его конвертируешь в "avi.mp4" с ЗАМЕНИТЬ, т.е в ту же директорию выводишь. некоторые программы, при такой замене крашат весь процесс, поэтому желательно чтобы такого не было, а эта ЗАМЕНА, т.е выводом в  ту же директорию, лучше тем, что в любом раскладе исходный файл придется утилизировать: копированный файл не нужен, а замена считается идеальным вариантом, поскольку файл не был изменен, а дополнен 25 кадром. в случае возвращения исходника, достаточно удалить дополнения и тогда будет исходное видео.

"чем изощрённее, тем усложненнетафе" ... ясн, ясн... ты с этим не заморачивался никогда, а максимум использовал для настройки захвата потокового стриминга, чтобы посмотреть в подгрузке какойнить moonwalk.cc

 

а ты не знаешь, есть ли какаянить программа или как такое можно сделать, чтобы выделить окно и заставить выполнять действия, какбудто пользователь взаимодействует с программой как с активным окном, но чтобы все это было в автоматическом режиме и никак не отвлекало, т.е можно было параллельно с этим чемнить еще на компе заниматся, соответственон окно с симуляцией взаимодействия как активного пользователя должно быть без выделения активного окна. ну типо ЗАЖАЛ ЛКМ в программе, но сама программа была свернута, или нажимать в программе на определенные кнопки; реагировать на изменения gui или взаимодействовать с gui

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, тотещепиздабол сказал:

максимум использовал для настройки захвата потокового стриминга, чтобы посмотреть в подгрузке какойнить moonwalk.cc

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

4 часа назад, тотещепиздабол сказал:

есть ли какаянить программа

не программа, а способ, который ты можешь уже сам реализовать, в том же AutoIT, или на каком-нибудь высокоуровневом языке,

это делается через WinAPI.

вот тут например чел тоже хочет срать кликами в окно без движения мышкой

http://stackoverflow.com/questions/2818192/clicking-mouse-by-sending-messages

насчёт того что окно должно быть развёрнуто - я хз, возможно есть нюансы.

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

более глубоко не скажу, так как не сильно интересовался винапи.

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

насчет ffmpeg, только что столкнулся с такой проблемой. когда я выставляю все правильно, настройки, при которых раньше все конверировалось, все идентично, пишет при конвертации ошибка: "Option loop not found"; Unrecognized option 'pix_fm'.; Error splitting the argument list: Option not found, а когда я запускаю батник от имени администратора, то ошибка о том, что не может найти файлы

раньше такого не было. с чем это может быть связано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

полную строку сюда в код, содержание батника тоже. 

и опиши структуру директорий.

я не верю в "раньше работало, а щас вдруг нет", ты где-то напортачил.

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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


старая директория
C:\Users\user\Desktop\ха чи\Мда\бла бла\Новая папка

код в бат файле
ffmpeg -r 5 -loop 1 -i image.png -i "10.11.2016 27 опавыт.aac" -c:a copy -c:v libx264 -shortest -y "10.11.2016 27 опавыт.mp4"
затем, после первой строчки, идут последующие строчки с своим названием
ffmpeg -r 5 -loop 1 -i image.png -i "10.11.2016 27 Ρ馡⢮ǭ-ȥ.aac" -c:a copy -c:v libx264 -shortest -y "10.11.2016 27 Ρ馡⢮ǭ-ȥ.mp4"

start ffmpeg -r 5 -loop 1 -i image.png -i "01.11.2016 16 åάƢ੯.aac" -c:a copy -c:v libx264 -shortest -y "01.11.2016 16 åάƢ੯.mp4"
start /wait ffmpeg -r 5 -loop 1 -i image.png -i "01.11.2016 16 åάƢ੯.aac" -c:a copy -c:v libx264 -shortest -y "01.11.2016 16 åάƢ੯.mp4"
start /wait ffmpeg -r 5 -loop 1 -i image.png -i "10.11.2016 26 䨧Ȫ.aac" -c:a copy -c:v libx264 -shortest -y "10.11.2016 26 䨧Ȫ.mp4"
start ffmpeg -r 5 -loop 1 -i image.png -i "10.11.2016 26 䨧Ȫ.aac" -c:a copy -c:v libx264 -shortest -y "10.11.2016 26 䨧Ȫ.mp4"
ffmpeg -r 5 -loop 1 -i image.png -i "10.11.2016 27 Ρ馡⢮ǭ-ȥ.aac" -c:a copy -c:v libx264 -shortest -y "10.11.2016 27 Ρ馡⢮ǭ-ȥ.mp4"

ps кстати, если написать больше 40 строчек, то вывод зависает и не перекодирует файлы. пришлось разделить по нескольким батам, а затем, по завершению одного, отдельно, вручную запускать следующий бат. команды типа /wait, ...start - ни на что не влияли. даже в новых окнах (от команды start) процесс не шел. не знаю с чем это могло бы быть связано.
pps. если не ставить команду /wait, после команды start, то компьютер будет бесконечно запускать соедующие процессы перекодирования: тем самым выводя компьютер из сторя его зависанием. хз почему нет никакой возможности хоть както этого избежать. тк если алт ф4 кажое новое окно, то процессор будет выгружаться, память освобождаться, а соответственно быстрее будут запускаться новые окна, и так пока все сотни аудиофайлов не запустятся.
ppps. с названиями файлов все норм, это кодировка их искажает, а бат все видит отлично.

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


возникающая проблема описываемая мною выше, происходит при повторении всех условий старой конвертации.
<<
насчет ffmpeg, только что столкнулся с такой проблемой. когда я выставляю все правильно, настройки, при которых раньше все конверировалось, все идентично, пишет при конвертации ошибка: "Option loop not found"; Unrecognized option 'pix_fm'.; Error splitting the argument list: Option not found, а когда я запускаю батник от имени администратора, то ошибка о том, что не может найти файлы
раньше такого не было. с чем это может быть связано?
>>

новая директория
C:\Users\user\Desktop\один два три\Аудиозаписи\111111

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

пояснение типа запуска с таким кодом: этот код полностью повторяет первую удачную конвертацию. я пробовал запустить двумя способами: 1ый способ двойным щелчком, - запуском от имени пользователя выводил ошибку: "Option loop not found", 2ым способом, от имени администрации: если менял код на полную ссылку на файл, как в последнем примере: "Error splitting the argument list: Option not found", если не менял, то писалась ошибка о том, что файл не найдет, а в кавычках ссылка была на ffmpeg, а не на директорию хранения bat файла.
ffmpeg -r 5 -loop 1 -i image.png -i "18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -shortest -y "18.11.2016 23.48.18 лфырв.mp4"

пояснение разницы от предыдущего метода: после неудачи первого кода запуска, я начал экспериментировать с новым кодом, который я никогда не использовал, который ты мне так зарекомендовал :D ошибки все те же.
ffmpeg.exe -r 2 -loop 1 -i image.png -i "18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fm "18.11.2016 23.48.18 лфырв.mp4"

пояснение разницы от предыдущего метода: разница заключения картинки (image.png) в кавычки, но это ничего не изменило.
ffmpeg -r 5 -loop 1 -i "image.png" -i "1.aac" -c:a copy -c:v libx264 -shortest -y "1.mp4"

пояснение разницы от предыдущего метода: сам бат-файл всегда был правильной кодировки, для избежании ошибки при открытии файла с кириллицей. на всякий случай, я решил также/отедельно внести в виде поддержки читабельности кодировки кодом саму кодировку.
chcp 866>nul
ffmpeg -r 5 -loop 1 -i "C:\Users\user\Desktop\один два три\Аудиозаписи\111111\image.png" -i "C:\Users\user\Desktop\один два три\Аудиозаписи\111111\18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -shortest -y "C:\Users\user\Desktop\один два три\Аудиозаписи\111111\18.11.2016 23.48.18 лфырв.mp4"

пояснение разницы от предыдущего метода: от имени администратора, думал что что-то зависит от заключения в кавычки длинной ссылки на файл, поэтому решил сразу указать ссылку на директорию в самом начале кода. подбирал все выше указанные методы для совместимости с данным кодом.
cd C:\Users\user\Desktop\один два три\Аудиозаписи\111111
ffmpeg -r 5 -loop 1 -i "image.png" -i "18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -shortest -y "18.11.2016 23.48.18 лфырв.mp4"


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

pps я пробовал разные методы воспроизведения кода и запуска бата после 1-ой конвертации(когда не было ошибки). в 1ый раз, когда все получалось, я запускал бат просто двойным кликом, без адм доступа и тд. сейчас, как бы я не пробовал запустить, от типа запуска менялось восприятие запуска. когда запускаю двойным кликом с обычными правами доступа, (тк я в бате не пишу коды скрытия директории запуска) мне писала полная директория до папки с файлом в таких кавычках : "<...>", а при запуска от имени администратора, указывалась в директории ссылка на файл ffmpeg, который хранился в <C:\ffmpeg\bin>, а соответственно в таком случае ошибка была не в невозмоности прочтении типа команды loop, а в "не найден файл".


думаю, может стоит переустановить ffmpeg или хз

Изменено пользователем тотещепиздабол

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Капец...

Я чё просил?

1. Батник с проблемой или строку с параметрами конвертации.
2. Структуру директорий.

Всё.

А ты полотнище написал..

Значит, во-первых, командой start пользоваться не нужно. Зачем ты вообще начал ей пользоваться? От того, что ты запустишь параллельно две конвертации, времени меньше не уйдёт.

Во-вторых, чтобы использовать неполные пути, тебе надо в батнике перед началом перейти в нужную директорию. 

В-третьих, будь любезен оформлять код в блоки (тут на форуме это на кнопку с двумя кавычками <>), так легче читать.

4 часа назад, тотещепиздабол сказал:

после неудачи первого кода запуска, я начал экспериментировать с новым кодом, который я никогда не использовал, который ты мне так зарекомендовал :D ошибки все те же.
ffmpeg.exe -r 2 -loop 1 -i image.png -i "18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fm "18.11.2016 23.48.18 лфырв.mp4"

Да, тут я ошибся, блин... когда писал строку отдельно от батника, почему-то не скопировал или пропустил yuv420p после -pix_fm.

строка должна быть такой:

ffmpeg.exe -r 2 -loop 1 -i image.png -i "18.11.2016 23.48.18 лфырв.aac" -c:a copy -c:v libx264 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fmt yuv420p "18.11.2016 23.48.18 лфырв.mp4"

НО. Прикол в том, что ошибки не могут быть всё те же, без yuv420p он там ругается на то, что не указан выходной файл.

В общем, если всё как ты описал — я проблемы не вижу. Но ты, скорее всего, где-то наврал. Поэтому мы поступим так:

1. создай в обычном блокноте (без смены кодировки, пожалуйста) батник с кодом:

Скрытый текст

@ECHO OFF

REM Путь до картинки:
SET MyImage=D:\kartinki k muzyke\image.png

REM Путь до директории с музыкой:
SET MyInputPath=D:\katalog s muzlom

REM Путь до директории с результатом:
SET MyOutputPath=D:\gotovoye video

REM Путь до твоего FFMPEG:
SET ffmpegExe=C:\ffmpeg\bin\ffmpeg.exe

%MyInputPath:~0,2%
CD %MyInputPath%

IF NOT EXIST "%MyOutputPath%" MKDIR "%MyOutputPath%"

  FOR %%f IN (*.aac) DO (
  	ECHO %%~nxf
	"%ffmpegExe%" -r 2 -loop 1 -i "%MyImage%" -i "%%~nxf" -c:a copy -c:v libx264  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -preset medium -tune stillimage -crf 18 -shortest -y -pix_fmt yuv420p "%MyOutputPath%\%%~nf.mp4"
  )

PAUSE

 

2. Избавься от кириллицы в путях до конечных файлов, сами файлы можно оставить с кириллицей. (например можно создать пару директорий для теста и положить туда пару файлов музыки)

3. Поменяй в батнике пути на те, которые у тебя получились.

4. Если всё пройдёт удачно, попробуй поменять кодировку бат-файла на кириллицу и повтори со своими актуальными директориями, на которых раньше не получалось. Естественно, не забыв поменять в бат-файле переменные путей к этим директориям.

Если ничего не поможет, предлагаю пересечься в тимвьювере, чтобы я напрямую мог увидеть где ты там запутался. 

 

Можешь попробовать тот же ffmpeg что у меня, но суть проблемы, как мне кажется, не поменяется: http://ffmpeg.zeranoe.com/builds/ 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

возможно ли добавить с помощью ffmpeg картинку в начало видео? размер разрешения изображения был фиксированный, при этом каждое видео будет своего разрешения, чтобы не было конфликтов при добавлении, оптимизированный код обработки изображения: растягивания, оставалась с черными рамками/обрезалась. длительность была в 1 кадр.. т.е мелькала... картинка не должна смещать видеодорожку, т.е чтобы рассинхрона основного видео с звуком не было.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

https://stackoverflow.com/questions/24102336/how-can-i-place-a-still-image-before-the-first-frame-of-a-video

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

мне нужно чтобы не было перерендеривания. а ffmpeg, тк не знаю альтернативы, а применить нужно к ~813 файлам.

по инструкции, которую ты скинул я длъ ((

пишет ошибку

[AVFilterGraph @ 000000000046e820] No such filter: '[0:0]'
Error initializing complex filters.
Invalid argument

этап 1

Скрытый текст

 


ffmpeg -i "VIDEO 004.mp4"
pause
Скрытый текст


C:\Users\user\Desktop\Новая папка>ffmpeg -i "VIDEO 004.mp4"
ffmpeg version N-86330-gbd1179e Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.1.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
-enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
 --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VIDEO 004.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2017-06-01T00:32:28.000000Z
  Duration: 00:23:20.95, start: 0.000000, bitrate: 454 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
v420p, 640x480 [SAR 1:1 DAR 4:3], 356 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95
 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
p, 95 kb/s (default)
    Metadata:
      creation_time   : 2017-06-01T00:32:32.000000Z
At least one output file must be specified

C:\Users\user\Desktop\Новая папка>pause
Для продолжения нажмите любую клавишу . . .

 

 

этап 2

Скрытый текст

ffmpeg -loop 1 -framerate 23.98 -t 1 -i "PR_VIDEO 004.jpg" -t 1 -f lavfi -i aevalsrc=0 -i "VIDEO 004.mp4" -filter_complex '[0:0] [1:0] [2:0] [2:1] concat=n=2:v=1:a=1' -vcodec libx264 "OUT_VIDEO 004.mp4"
pause
Скрытый текст


C:\Users\user\Desktop\Новая папка>ffmpeg -loop 1 -framerate 23.98 -t 1 -i "PR_VI
DEO 004.jpg" -t 1 -f lavfi -i aevalsrc=0 -i "VIDEO 004.mp4" -filter_complex '[0:
0] [1:0] [2:0] [2:1] concat=n=2:v=1:a=1' -vcodec libx264 "OUT_VIDEO 004.mp4"
ffmpeg version N-86330-gbd1179e Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.1.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
-enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
 --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Input #0, image2, from 'PR_VIDEO 004.jpg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 2107 kb/s
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 258x258 [S
AR 96:96 DAR 1:1], 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
Input #1, lavfi, from 'aevalsrc=0':
  Duration: N/A, start: 0.000000, bitrate: 2822 kb/s
    Stream #1:0: Audio: pcm_f64le, 44100 Hz, mono, dbl, 2822 kb/s
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'VIDEO 004.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2017-06-01T00:32:28.000000Z
  Duration: 00:23:20.95, start: 0.000000, bitrate: 454 kb/s
    Stream #2:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
v420p, 640x480 [SAR 1:1 DAR 4:3], 356 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95
 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
p, 95 kb/s (default)
    Metadata:
      creation_time   : 2017-06-01T00:32:32.000000Z
[AVFilterGraph @ 000000000046e820] No such filter: '[0:0]'
Error initializing complex filters.
Invalid argument

C:\Users\user\Desktop\Новая папка>pause
Для продолжения нажмите любую клавишу . . .

[AVFilterGraph @ 000000000046e820] No such filter: '[0:0]'
Error initializing complex filters.
Invalid argument

 

 

Изменено пользователем тотещепиздабол

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

двойные кавычки используй....

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

господи... ну читай ошибки, тебе же ффмпег говорит прямым текстом, что ты долдон, и задаёшь неизвестный фильтр [0:0], хотя это вообще не фильтр, а поток внутри фильтра... неужели неясно что в исходном синтаксисе ошибка?

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вангую, что ты прибежишь опять сюда с ошибкой о том, что программа ругается на то что изображение не совпадает размером с видео...
поэтому сразу отвечаю: https://ffmpeg.org/ffmpeg-filters.html#scale-1 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 13.06.2017 в 18:14, тотещепиздабол сказал:

ffmpeg -loop 1 -framerate 23.98 -t 1 -i "PR_VI DEO 004.jpg" -t 1 -f lavfi -i aevalsrc=0 -i "VIDEO 004.mp4" -filter_complex '[0: 0] [1:0] [2:0] [2:1] concat=n=2:v=1:a=1' -vcodec libx264 "OUT_VIDEO 004.mp4"

у тебя тут перечислено три видео потока [0:0][1:0][2:0]
откуда третий, если в инпутах у тебя только jpg картинка и видос mp4?

вот рабочий пример:

ffmpeg -loop 1 -framerate 23.98 -t 1 -i "PR_VIDEO 004.jpg" -t 1 -i "VIDEO 004.mp4" -f lavfi -i color=c=black:s=100x100:d=1 -filter_complex "[2:v][1:v] scale2ref=iw:-1 [bg][vid]; [0:v][vid] scale2ref='if(gt(a,ow/oh),iw*sar,oh)':'if(gt(a,ow/oh),ow,ih*sar)' [resized][vid]; [bg][resized] overlay='abs((W-w)/2)':'abs((H-h)/2)' [img]; [img][vid] concat=n=2:v=1:a=0 [done]" -map "[done]" -vcodec libx264 "OUT_VIDEO.mp4"

разбираем что где:

ffmpeg -loop 1 -framerate 23.98 -t 1 -i "PR_VIDEO 004.jpg"
<!-- статичная картинка -->

-t 1 -i "VIDEO 004.mp4"
<!-- твой видос -->

-f lavfi -i color=c=black:s=100x100:d=1
<!-- чёрная подкладка для картинки с размером 100 на 100 длительностью 1 секунда -->

-filter_complex "[2:v][1:v] scale2ref=-1:-1 [bg][vid];
<!-- Берём входные потоки из подкладки [2:v] и видоса [1:v].
Делаем scale2ref для растягивания чёрной подкладки по размеру видоса.
Выводим потоки с лейблами [bg] для подкладки и [vid] для видоса.  -->

[0:v][vid] scale2ref='if(gt(a,ow/oh),iw*sar,oh)':'if(gt(a,ow/oh),ow,ih*sar)' [resized][vid];
<!-- Берём входные потоки из статичной картинки [0:v] и видоса [vid].
Делаем математичный scale2ref, суть которого заключается в растягиваини картинки до размера кадра с сохранением отношения сторон.
Выводим полученное в лейблы [resized] для картинки и [vid] для видоса. -->

[bg][resized] overlay='abs((W-w)/2)':'abs((H-h)/2)' [img];
<!-- Берём растянутую чёрную подкладку [bg] и растянутую картинку [resized].
Накладываем поверх подкладки картинку с отступом в половину разности сторон. 
Выводим картинку в лейбл [img]. -->

[img][vid] concat=n=2:v=1:a=0 [done]"
<!-- Берём нашу охуенную готовую картинку [img] и видос [vid].
Cоединяем этих шлюх воедино через concat, тут у меня 2 части которые надо соединить, вывод в 1 видос без аудио потока.
Если нужен звук, то соответственно a=1 и в начале после [img][vid] дописать нужный поток, например [1:a].
Выводим готовое дерьмо в [done].
Если с аудио, то соответственно [done][audio] -->

-map "[done]" -vcodec libx264 "OUT_VIDEO.mp4" <!-- берём готовое дерьмо из [done] и записываем в файл. 
Если с аудио, то -map "[done]" -map "[audio]" -->

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас