avconv commandline para reduzir a resolução do vídeo HD para SD

1

Estou tentando reduzir a resolução de um vídeo HD gravado pelo TVheadend para o tamanho SD usando o seguinte comando:

avconv -i infile.ts -map 0:v -map 0:a:0 -map 0:a:1 -c copy -c:v mpeg2video -r 25 -qscale:v 2 -s:v 720x576 -f mpeg outfile.mpeg

A saída do avconv parece boa até agora:

Input #0, mpegts, from 'infile.ts':
  Duration: 02:44:44.69, start: 68943.055278, bitrate: 7408 kb/s
  Program 9036 
    Metadata:
      service_provider: upc
    Stream #0.0[0x50]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
    Stream #0.1[0x52](eng): Audio: mp2, 48000 Hz, stereo, s16p, 192 kb/s
    Stream #0.2[0x5b](ger): Audio: ac3, 48000 Hz, 5.1, fltp, 448 kb/s
  No Program
    Stream #0.3[0x6e]: Audio: mp1, 0 channels, s16p
[h264 @ 0x1bd9aa0] Ignoring NAL unit 9 during extradata parsing
[mpeg @ 0x1ab4d60] VBV buffer size not set, muxing may fail
Output #0, mpeg, to 'outfile.mpeg':
  Metadata:
    encoder         : Lavf54.20.4
    Stream #0.0: Video: mpeg2video, yuv420p, 720x576 [PAR 64:45 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 25 tbc
    Stream #0.1(eng): Audio: mp2, 48000 Hz, stereo, 192 kb/s
    Stream #0.2(ger): Audio: ac3, 48000 Hz, 5.1, 448 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> mpeg2video)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
Press ctrl-c to stop encoding

E a qualidade também é boa. Mas quando eu jogo em VLC e tento mudar o canal de áudio, vejo uma lista crescente de faixas de áudio, e apenas a primeira é utilizável. E também nas informações do Code eu vejo uma lista que adiciona permanentemente novas linhas, depois de alguns segundos, eu já vejo mais de 100 streams de diferentes formatos (legendas, áudio de diferentes formatos, etc.):

Alguémsabeondeestáoerro?

Eudiriaqueoformatocontêinerestáconfusodevidoaumbug,masaconteceemversõesdiferentes:Eutenteiusarffmpegversão2.7.6-0ubuntu0.15.10.1noubuntuwilyeavconvversão9.18-6:9.18-0ubuntu0.14.04.1notrusty.noastuto,offmpegtambémimprimeInvalidUEgolombcodeacada~25quadros

Atualização:

Aquiestáumapequenasequênciadoarquivodeentradaparateste: infile.ts

    
por Daniel Alder 06.02.2016 / 16:53

2 respostas

0

No Xubuntu 16.04 xenial, eu tentei novamente e os problemas não apareceram mais.

A linha de comando final é:

infile=something.ts
outfile=something.mpeg
quality=3.5  # best between small file and good quality
dims=720x576

ffmpeg -i "$infile" -map 0:v -map 0:a:0 -map 0:a:1 -f mpegts -s "$dims" -r 25 -vcodec mpeg2video -qscale:v $quality -acodec copy "$outfile"

O tamanho do arquivo resultante é de aproximadamente 20% do original. DVBcut pode abrir e cortar.

Publiquei o script completo na essência

    
por 18.05.2016 / 01:57
0

Tente um comando mais simples com opções modernas:

ffmpeg -i infile.ts -map v -map a -c:a copy -c:v libx264 -crf 18 -s 768x432 outfile.mkv
    
por 16.02.2016 / 03:12