Eu nunca consigo fazer a solução do ptQa funcionar, principalmente porque nunca consigo descobrir o que significam os erros dos filtros ou como corrigi-los. Minha solução parece um pouco mais complicada porque pode deixar para trás uma bagunça, mas se você a jogar em um script, a limpeza poderá ser automatizada. Também gosto dessa abordagem, porque se algo der errado na etapa 4, você terminará as etapas 1 a 3, para que a recuperação dos erros seja um pouco mais eficiente.
A estratégia básica é usar -t
e -ss
obter vídeos de cada segmento desejado e juntar todas as partes da sua versão final.
Digamos que você tenha 6 segmentos ABCDEF a cada 5 segundos e deseje A (0-5 segundos), C (10-15 segundos) e E (20-25 segundos):
ffmpeg -i abcdef.tvshow -t 5 a.tvshow -ss 10 -t 5 c.tvshow -ss 20 -t 5 e.tvshow
ou
ffmpeg -i abcdef.tvshow -t 0:00:05 a.tvshow -ss 0:00:10 -t 0:00:05 c.tvshow -ss 0:00:20 -t 0:00:05 e.tvshow
Isso fará com que os arquivos a.tvshow, c.tvshow e e.tvshow. Ele -t
diz quanto tempo cada clipe tem; portanto, se c tiver 30 segundos, você poderá passar 30 ou 0:00:30. A -ss
opção diz até onde pular no vídeo de origem, por isso é sempre relativo ao início do arquivo.
Então, quando você tem um monte de arquivos de vídeo, eu faço um arquivo ace-files.txt
como este:
file 'a.tvshow'
file 'c.tvshow'
file 'e.tvshow'
Observe o "arquivo" no início e o nome do arquivo de escape depois disso.
Então o comando:
ffmpeg -f concat -i ace-files.txt -c copy ace.tvshow
Isso concatena todos os arquivos abe-files.txt
juntos, copiando seus codecs de áudio e vídeo e cria um arquivo ace.tvshow
que deve ser apenas as seções a, ce. Então lembre-se de excluir ace-files.txt
, a.tvshow
, c.tvshow
e e.tvshow
.
Isenção de responsabilidade : não tenho idéia de quão (in) eficiente isso é comparado a outras abordagens em termos de, ffmpeg
mas para meus propósitos funciona melhor. Espero que ajude alguém.