FFmpeg concat mp4 corruption

2

Quando eu corro

ffmpeg -f concat -i resizedvideolist.txt -c copy concatenated_time.mp4 2>&1

Ele concatena todos os vídeos no txt, mas há um vídeo na metade do caminho que foi excluído. O áudio simplesmente não toca nesse vídeo, mas começa a ser reproduzido no próximo vídeo, por isso foi atrasado. Então, em algum lugar, o áudio conseguiu recuperar o atraso e voltar a sincronizar. Parece que há uma grande corrupção acontecendo aqui.

Eu não sei como consertar isso como o codec é o mesmo que todos os outros vidoes, H.264, é um mp4 como os outros. O arquivo de vídeo individual funciona bem como está, e ele já está na mesma escala de tempo, porque antes desse comando ffmpeg, eu corri

ffmpeg -i ./tempDownloadedMemes/$videoFileName -filter_complex 'scale=1080:-1,pad=1080:1080:(ow-iw)/2:(oh-ih)/2:0x2F2F2F' -video_track_timescale 15360 ./resizedVideos/resized_videoFileName 2>&1

Para ser honesto, eu nem sei o que é a escala de tempo, mas eu li que ela precisa ser a mesma para que funcione. Eu apaguei o vídeo da lista, tentei o mesmo comando, e o problema desapareceu ao mesmo tempo no vídeo que teria aparecido. Parece que tem algo a ver com esse arquivo em si. Quaisquer problemas conhecidos / soluções alternativas em erros de concat? Isso é muito importante para mim. Obrigado.

    
por Ethan SK 11.04.2017 / 17:18

1 resposta

1

meh, eu encontrei uma solução realmente hacky usando outro método concat.

$resizedVideoList = file('resizedVideoList.txt', FILE_IGNORE_NEW_LINES);
$inputStringForConcat = "";
$concatString = "";
$concateNvalue = 0;
 foreach ($resizedVideoList as $key => $value) {
   //$limiter++;
   //if ($limiter > 2)break;
   $inputStringForConcat .= " -i ".$value;
   $concatString .= "[$key:0][$key:1]";
   $concateNvalue++;
 }
 $concatString .= " concat=n=$concateNvalue:v=1:a=1[v][a]";
  echo ("<pre>");
    print_r($inputStringForConcat);
    print_r($concatString);


 echo shell_exec("./ffmpeg $inputStringForConcat -filter_complex '$concatString' -map '[v]' -map '[a]' concatenated_time.mp4 2>&1");
    
por 13.04.2017 / 14:53