2016-08-29 2 views
0

Ich versuche derzeit, Outros und Wasserzeichen zu meinen Videos hinzuzufügen. Ich bin neu dazu.ffmpeg - 2 Dateien - Konvertieren -> Concate-> Wasserzeichen funktioniert nicht

Dies ist mein Code, um die Videos in das gleiche Format für die Umwandlung von

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 

Dies ist der Code verwende ich dann die Dateien verketten:

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 

Dies ist der Code, den ich verwenden, um hinzufügen das Wasserzeichen:

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

pause 

Wo habe ich den Fehler gemacht? Es konvertiert die Videos ohne Probleme und verbindet sie, aber Wasserzeichen scheinen nicht zu funktionieren. Bitte um Rat.

+0

Irgendwie funktioniert die richtige Formatierung für den Code nicht – Salexes

+1

Sie können dies alles mit einem Befehl tun und zusätzliche, unnötige Kodierung vermeiden, indem Sie den concat-Filter anstelle des concat demuxer verwenden. – LordNeckbeard

Antwort

2

Wie @LN sagte, tun Sie es in einem Befehl.

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" 

Natürlich, werden Sie durch die Quellvideos laufen müssen, wie in der Frage:

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" 
) 

Es ist am besten, das Outro zu konvertieren, sobald die Quellvideoeigenschaften entsprechen:

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

Wenn Sie dies tun, die [1]scale=720:720,setsar=1[o]; überspringen und ersetzen [o] mit [1:v]

+0

Wow, alles in einem ist beeindruckend. Ich verstehe diesen Code nur teilweise. Werde mehr darüber nachdenken, um solche Befehle selbst erstellen zu können. Vielen Dank! Das Outro ist immer das gleiche und im Outro-Ordner. Nur das Quellvideo wird jedes Mal geändert. Mit diesem neuen Code bin ich nicht sicher, wie man es jedes Mal ein neues Quellvideo verwenden kann, bitte beraten. – Salexes

+0

Außerdem bekomme ich diesen Fehler, wenn ich es nur mit einer Datei versuche: http://i.imgur.com/1OOvotM.png – Salexes

+1

Hoppla! habe den Audio-Feed zur Concat vergessen. Wird das korrigieren. Deine Outro-Eigenschaften sind anders. Am besten, es einmal zu konvertieren und diese Datei zu verwenden. – Mulvya

Verwandte Themen