Produzimos uma série de vídeos de exercícios com instruções expressas. Áudio (gravado separadamente) e vídeo foram reunidos usando o ffmpeg.
Em alguns casos, a narração é maior que o vídeo do exercício e, nesses casos, o comando ffmpeg usado é:
ffmpeg -loglevel $FFMPEG_LOG_LEVEL -i $VID_FILE -i $AUD_FILE -filter_complex "aevalsrc=0:d=$AUD_SHIFT[s1];[s1][1:a]concat=n=2:v=0:a=1[aout]" -c:v copy -map 0:v -map [aout] $FILE_OUT -hide_banner -nostdin
Que exibe o quadro final do vídeo até o término do áudio.
O mp4 resultante reproduz aceitavelmente em várias configurações (QuickTime Player, VLC). No entanto, quando são enviados para o YouTube, esses vídeos não são processados (os que não foram prorrogados são bons). Eles são "processados em 95%" e não podem ser acessados por meio do player do YouTube.
Eu tentei recodificar usando:
ffmpeg -i vidfile.mp4 -c:v libx264 -map_metadata -1 -c:a aac -strict experimental -b:a 192k out.mp4
- esperando que a remoção de metadados seja a resposta, mas sem qualquer alteração na resposta do YouTube.
Tenho notado que no player VLC, o indicador de progresso na linha do tempo exibido abaixo do vídeo pára de se mover no ponto em que o vídeo é concluído, enquanto o áudio continua. Além disso, noto que a duração relatada pelo YouTube nos vídeos com falha é menor do que o tempo real de reprodução. Esses dois fatos sugerem que o YouTube falha porque está sendo enviado um pequeno vídeo com algumas instruções para manter o quadro final enquanto a faixa de áudio se reproduz - em vez de um vídeo completo com um quadro de vídeo repetido no final.
Sugestões, por favor, para corrigir o comando original ou para reprocessar os arquivos problemáticos em retrospecto.
Se você quiser ver um arquivo real, aqui está um link da caixa de depósito .