2016-08-29 2 views
0

В настоящее время я пытаюсь навалом добавить внешние и водяные знаки в свои видео. Я новичок в этом.ffmpeg - 2 Файлы - Конвертировать -> Concate-> Watermark not working

Это мой код для преобразования видео в том же формате

cd source 

for %%f in (*.mp4) do (
    ffmpeg -i "%%f" -c:v libx264 -b:v 1500k -s 720x720 -crf 22 -g 1 -keyint_min 1 -preset slow -shortest -ar 44100 "../converted/c_%%f" 
) 

cd outro 
for %%f in (*.mp4) do (
    ffmpeg -i "%%f" -c:v libx264 -b:v 1500k -s 720x720 -crf 22 -g 1 -keyint_min 1 -preset slow -shortest -ar 44100 "../../converted/outro/c_%%f" 
) 
call concat.bat 
pause 

Это код, я использую то, чтобы Concat файлы:

cd converted 
    for %%f in (*.mp4) do (
     echo.>%%f.list 
     echo file '%%f' >> %%f.list 
     echo file 'c_outro.mp4' >> %%f.list 
    ) 


for %%f in (*.list) do (
    ffmpeg -f concat -i %%f -c copy concatenated/%%f.mp4 
) 
call final.bat 
pause 

Это код, я использую, чтобы добавить водяной знак:

cd concatenated 
for %%f in (*.list) do 
    ffmpeg -i "%%f" -i logo.png -filter_complex "overlay=10:10" "../../final_%%f" 
) 

pause 

Где я совершил ошибку? Он конвертирует видео без проблем и конкретизирует их, но водяные знаки их, похоже, не сработают. Пожалуйста посоветуй.

+0

Каким-то образом правильное формирование кода не работает – Salexes

+1

Вы можете сделать это все с помощью одной команды и избежать дополнительной ненужной кодировки с использованием фильтра concat вместо concat demuxer. – LordNeckbeard

ответ

2

Как @LN сказал, сделайте это в одной команде.

ffmpeg -i main.mp4 -i outro.mp4 -loop 1 -i logo.png 
-filter_complex "[0]scale=720:720,setsar=1[m];[1]scale=720:720,setsar=1[o]; 
        [m][0:a][o][1:a]concat=n=2:v=1:a=1[v][a];[v][2]overlay=10:10:shortest=1[vid]" 
-c:v libx264 -ar 44100 -map [vid] -map [a] "../converted/final_%%f" 

Конечно, вам придется перебирать исходные видео, как в Q:

for %%f in (*.mp4) do (
     ffmpeg -i "%%f" -i outro.mp4 -loop 1 -i logo.png 
    -filter_complex "[0]scale=720:720,setsar=1[m];[1]scale=720:720,setsar=1[o]; 
         [m][0:a][o][1:a]concat=n=2:v=1:a=1[v][a];[v][2]overlay=10:10:shortest=1[vid]" 
    -c:v libx264 -ar 44100 -map [vid] -map [a] "../converted/final_%%f" 
) 

Это лучше, чтобы преобразовать аутро один раз в соответствии с источником видео свойствами:

ffmpeg -i outro.mp4 -vf scale=720:720,setsar=1 -ar 44100 -g 1 outro-new.mp4 

Если вы сделаете это, пропустите [1]scale=720:720,setsar=1[o]; и заменить [o] с [1:v]

+0

Ничего себе, все в одном компе впечатляет. Я лишь частично понимаю этот код. Позаботьтесь о нем больше, чтобы самостоятельно создавать такие команды. Спасибо! Outro всегда то же самое и в папке outro. Только исходное видео будет меняться каждый раз. С помощью этого нового кода я не уверен, как каждый раз использовать новое исходное видео, пожалуйста, совет. – Salexes

+0

Кроме того, я получаю эту ошибку, просто попробовав ее одним файлом: http://i.imgur.com/1OOvotM.png – Salexes

+1

К сожалению. забыли аудио-канал для concat. Это исправит. Ваши внешние свойства разные. Лучше всего конвертировать его один раз и использовать этот файл. – Mulvya

 Смежные вопросы

  • Нет связанных вопросов^_^