Star Trek continua: ffmeg dvdsub: legendas sobrepostas

Star Trek continua: ffmeg dvdsub: legendas sobrepostas

Então baixei o arquivo gratuito criado por fãsJornada nas Estrelas ContinuaISO Blue-Ray paraEpisódios 1-3e estou tentando converter o FHD 1920x1080 para SD 960x540 para poder assistir no meu celular:

ffmpeg -canvas_size 960x540 \
-i /media/STC_VOL1_BR/BDMV/STREAM/00000.m2ts \
-map_metadata -1 \
-c:v libx264 -map 0:0 -strict -2 -r 24 -s 960x540 \
-c:a libmp3lame -map 0:1 -b:a 384K \
-metadata:s:s:0 language=EN -c:s dvdsub -map 0:2 \
/media/Videos/Star\ Trek\ Continues/S01E01\ Pilgrim\ Of\ Eternity.mkv

mas depois de alguns segundos assistindo ao mkv convertido, as legendas se tornam:

  • ilegível devido à sobreposição
  • são um pouco grandes (sem problema)
  • deslocado para a direita e parte inferior da tela

Captura de tela do VLC

Saída completa do ffmpeg aqui

O que estou fazendo de errado?

Nota 1:Eu só lidei com srtlegendas e sei que dvdsubs são imagens, por isso pensei que o canvas_sizeparâmetro poderia ajudar, mas não faz diferença.
Nota 2:Sim, não é realmente uma questão pura do sistema operacional Ubuntu, mas mais adiantevídeo.senão conseguindoqualquer atenção, mesmo com uma recompensaentão estou tentando aqui se alguém fizer alguma conversão de vídeo e se encontrar na mesma situação.

Responder1

Tecnicamente omais limpoolhar com essas legendas seria:

  1. Extraia as legendas
  2. Transforme-os em texto usando seu aplicativo OCR favorito
  3. Revise e edite cuidadosamente o texto
  4. Grave-os de volta no fluxo de mídia no tamanho, cor, orientação e formato de sua escolha

Este é um trabalho grande e demorado queEu pessoalmente empreendi no passadomas provavelmente éexageronesse caso.

Omelhoraropção é simplesmente adicionar a opção FFmpeg -fix_sub_duration(colocadaanteso arquivo de entrada) e isso corrigirá as legendas duplicadas conforme ilustro abaixo e tornará as legendas facilmente legíveis:

insira a descrição da imagem aqui

Os detalhes da -fix_sub_durationopção podem ser encontrados nas páginas de manual do FFmpeg-all, mas tomei a liberdade de citar esses detalhes aqui:

-fix_sub_duration

Corrija a duração das legendas. Para cada legenda, aguarde o próximo pacote no mesmo fluxo e ajuste a duração do primeiro para evitar sobreposição. Isto é necessário com alguns codecs de legendas, especialmente legendas DVB, porque a duração do pacote original é apenas uma estimativa aproximada e o final é na verdade marcado por um quadro de legenda vazio. Deixar de usar esta opção quando necessário pode resultar em durações exageradas ou falhas de muxing devido a carimbos de data/hora não monotônicos.

Observe que esta opção atrasará a saída de todos os dados até que o próximo pacote de legenda seja decodificado: pode aumentar muito o consumo de memória e a latência.

Você notará que este é oprimeirodas opções de legenda avançada, osegundosendo aquele -canvas_sizeque você já usou...

informação relacionada