Incluindo subtítulo ao converter MTS para MKV

2

Eu quero converter meus vídeos .MTS da minha Sony HD Cam em um .MKV. Eu estou usando ffmpeg e funciona bem. Mas eu tenho problemas com as legendas (neste caso as legendas são data e hora) porque elas se perdem quando eu converto o MTS em mkv.

Eu uso este comando:

ffmpeg -i 00235.MTS -scodec copy -acodec copy -vcodec copy -f matroska OUTPUT.mkv

Esta é a saída:

ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers
  built on Apr  2 2013 17:02:36 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, mpegts, from '00235.MTS':
  Duration: 00:00:22.07, start: 1.000011, bitrate: 26285 kb/s
  Program 1 
    Stream #0.0[0x1011]: Video: h264 (High), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
    Stream #0.2[0x1200]: Data: [144][0][0][0] / 0x0090
Output #0, matroska, to 'OUTPUT.mkv':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0: Video: H264 / 0x34363248, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 1k tbn, 50 tbc
    Stream #0.1: Audio: ac3, 48000 Hz, 5.1, 448 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press ctrl-c to stop encoding
frame= 1104 fps=  0 q=-1.0 Lsize=   67284kB time=22.08 bitrate=24963.2kbits/s    
video:66061kB audio:1208kB global headers:0kB muxing overhead 0.023045%

Parece que Stream #0.2[0x1200] é o subtítulo, mas no final não é colocado no MKV.

Espero que alguém possa me ajudar.

    
por mci 26.05.2013 / 17:12

2 respostas

1

Você pode copiar o fluxo com -codec copy . Isso evita a etapa de decodificação e codificação do fluxo especificado, portanto, ele faz apenas demuxing e muxing, o que é útil se você quiser alterar o formato do contêiner de saída ou manipular ou adicionar metadados no nível do contêiner. A realização de uma cópia de fluxo é mais rápida que a codificação e não causará perda de qualidade.

Observe que o comportamento padrão escolhe apenas um tipo de fluxo por entrada, portanto, incluir -map 0 incluirá todos os fluxos da primeira entrada. Se você tiver apenas um tipo de fluxo para a entrada, como na pergunta acima, então -map 0 é supérfluo, mas não faz mal deixá-lo. Veja a documentação na seleção de fluxo e -map option para mais informações.

Exemplo:

$ ffmpeg -i input.MTS -codec copy -map 0 output.mkv

Exemplo usando um bash for loop se você quiser codificar todos os vídeos em um diretório:

$ mkdir outputdir
$ for f in *.MTS; do ffmpeg -i "$f" -codec copy -map 0 outputdir/"${f%.MTS}.mkv"; done
    
por LordNeckbeard 17.09.2013 / 03:40
-1

Você pode usar alguns outros aplicativos de conversão para ajudá-lo. O formato MKV é muito conveniente para você adicionar legendas ao vídeo. Mas como é um formato de contêiner, durante a conversão, algum problema pode ocorrer. Encontre outros aplicativos gratuitos para ajudar você a fazer o seu trabalho. Eu pessoalmente acho que este ffMPEG é uma grande dificuldade para eu trans-codificar meus vídeos. E se houver algumas legendas nele. Melhor você não usar este ffMPEG. Tente outros aplicativos, se possível.

    
por max0517 02.12.2014 / 06:56