FFMPEG Video Concat e Overlay

1

Eu quero combinar dois comandos ffmpeg para um único comando. Estou usando o ready ffmpeg binary no meu aplicativo Android. Desejo concatenar .ts arquivos e sobrepor uma imagem.

Estou usando os seguintes comandos:

  1. Para concatriar .ts arquivos:

    String[] ffmpegcommand = {"ffmpeg", "-i","concat:"+input_file_path+"|"+input_file_path1, "-c", "copy", "-bsf:a", "aac_adtstoasc", output_file_path};
    
  2. Aplicar efeito de sobreposição de imagem:

    String[] ffmpegcommand = {"ffmpeg","-y" ,"-i", input_file_path,"-strict","experimental", "-vf","movie="+AppStaticData.BASE_FOLDER_PATH + File.separator + "watermarklogo.png"+" [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]", AppStaticData.BASE_FOLDER_PATH+"/" + output_file_path};
    
por Ashish Dudeja 17.03.2015 / 13:31

2 respostas

3

Você pode fazer isso em um comando com o filtro de concat :

ffmpeg -i input0.ts -i input1.ts -i input2.ts -i overlay.png -filter_complex \
"[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[vv][a]; \
 [vv][3:v]overlay=W-w-10:10[v]" \
-map "[v]" -map "[a]" output.mp4
por 21.03.2015 / 07:25
0

Muito obrigado a LordNeckbeard, uma coisa é que você pode achar que a solução dele não funciona, porque se você copiar e colar tudo, não funcionará. Basta colocar tudo como uma linha e funcionará assim:

ffmpeg -i file1.mp4 -i file2.mp4 -i file3.mp4 -i watermark.png -filter_complex "[0:v]setpts=PTS-STARTPTS[v0]; [1:v]setpts=PTS-STARTPTS[v1]; [2:v]setpts=PTS-STARTPTS[v2]; [v0][0:a][v1][1:a][v2][2:a]concat=n=3:v=1:a=1[v][aout]; [v][3:v]overlay=W-w-10:10[vout]" -map "[vout]" -map "[aout]" output.mp4
    
por 25.07.2017 / 22:22

Tags