Quais codecs são mais adequados para reprodução no Windows Media Player no Windows XP?


16

Preciso codificar um vídeo curto em um formato que possa ser reproduzido com o Windows Media Player no Windows XP sem instalar nenhum codec adicional. Para o processo de recodificação, estou usando o ffmpeg.

Eu já tentei o msmpeg4v2 codec, mas a qualidade é horrível (em comparação com o vídeo original, você vê grandes "blocos"), então estou procurando outros codecs que funcionem imediatamente e que tenham pelo menos a qualidade "ok".

Como os comentários indicam que pode não ser o codec, mas um problema de taxa de bits, eis o comando que eu usei:

ffmpeg -i x.flv -vcodec msmpeg4v2 -acodec adpcm_ima_wav x.avi

Resultado:

Input #0, flv, from 'x.flv':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
  Duration: 00:06:19.52, start: 0.000000, bitrate: 836 kb/s
    Stream #0:0: Video: h264 (High), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], 25 tbr, 1k tbn, 50 tbc
    Stream #0:1: Audio: aac, 48000 Hz, stereo, s16
w:702 h:396 pixfmt:yuv420p tb:1/1000000 sar:2596/3679 sws_param:
Output #0, avi, to 'x.avi':
  Metadata:
    moovPosition    : 39337765
    avcprofile      : 100
    avclevel        : 30
    aacaot          : 2
    videoframerate  : 25
    audiochannels   : 2
    ISFT            : Lavf53.32.100
    Stream #0:0: Video: msmpeg4v2 (MP42 / 0x3234504D), yuv420p, 702x396 [SAR 2596:3679 DAR 354:283], q=2-31, 200 kb/s, 25 tbn, 25 tbc
    Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 48000 Hz, stereo, s16, 384 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> msmpeg4v2)
  Stream #0:1 -> #0:1 (aac -> adpcm_ima_wav)
Press [q] to stop, [?] for help
frame= 9485 fps=436 q=31.0 Lsize=   31197kB time=00:06:19.48 bitrate= 673.5kbits/s
video:12628kB audio:17913kB global headers:0kB muxing overhead 2.149820%

3
Talvez o problema seja sua taxa de bits, não seu codec. O codec preferido para sistemas Windows é, provavelmente, algum tipo de WMV .
— Der Hochstapler


Veja minha resposta aqui para obter um link para as Perguntas frequentes oficiais da Microsoft. Mas, essencialmente, você está preso ao Windows Media Video - que o FFmpeg não produzirá. Então, isso ou os que você tentou. Como o @Oliver já disse, tente uma taxa de bits ou configuração de qualidade mais alta. Presumo que apenas use o padrão.
— slhck

O benefício do codec MPEG não é o tamanho, mas o fato de não ser um contêiner como um AVI, e é um arquivo baseado em fluxo que pode ser gravado por meio de um codificador de hardware, usado na mídia de DVD para players independentes, e pode ser facilmente editado. Portanto, para esclarecer, o que você está perguntando é um formato de filme que você pode codificar usando o FFMPEG que produzirá um tamanho com o qual você se sinta confortável e funcionará com o Windows Media Player sem downloads adicionais. Corrigir?
— Bon Gart

Sim. WMV também está bem. aí eu tenho a mesma qualidade - então talvez haja realmente algo errado com a taxa de bits.
— ThiefMaster

Respostas:


12

Como você não especifica mais nada, seu fluxo de vídeo está definido para uso q=2-31, 200 kb/s. Isso resulta em 673.5kbitsmédia, o que não é muito, pelo menos não para codecs não h.264.

Tente forçar

  • uma certa taxa de bits com, -b:v 1000Kpor exemplo. Com versões mais antigas do FFmpeg, você só pode usar -b.
  • um nível de qualidade fixo com, -qscale 2por exemplo. Aqui, o valor pode variar de 1 a 31. Os valores sãos para qscaleestão no intervalo de 2 a 5 ou mais. Apenas tente e veja o que alcança o melhor resultado.

Os codecs que são realmente suportados no Windows por padrão são estes :

Atualmente, existem centenas de codecs de áudio e vídeo em uso. Alguns foram criados pela Microsoft, mas a grande maioria dos codecs foi criada por outras empresas, organizações ou indivíduos. Por padrão, o sistema operacional Windows e o Player incluem vários codecs mais populares, como Windows Media Audio, Windows Media Video e MP3.

Consulte também os tipos de arquivo multimídia suportados pelo Windows Media Player para obter mais informações.

Com o FFmpeg, você pode tentar mpeg1video(MPEG-1) ou mpeg2video(MPEG-2) ou msmpeg4(MPEG-4 Parte II), mas não tenho certeza se o último é universalmente suportado. Se você quiser jogar pelo seguro, é obrigado a usar o MPEG-1 ou MPEG-2.


sim ... isso foi uma taxa de bits bastante baixa para um arquivo mpeg.
— Bon Gart

Heh. Devo dizer que somos realmente abençoados com h.264 hoje em dia.
— slhck

especialmente considerando que você está olhando de 4k a 5k por 2 horas boas em um DVD (é claro que você pode ir mais alto, mas isso sempre me deixa bom espaço em disco para incluir um arquivo AVI e imagens e coisas assim)
— Bon Gart

7

Eu tive um problema semelhante com um arquivo .ac4 aac / h264 que originalmente era bom no Windows Media Player (Windows 7). Depois que editei no VirtualDub e salvei no formato .avi e depois converti para aac / h264 .mp4 usando os padrões ffmpeg, ele não seria mais reproduzido no Windows Media Player.

Usando o MediaInfo para comparar os arquivos originais e finais, notei que um perfil de codificação diferente havia sido usado e configurações diferentes de subamostragem de croma (4: 2: 0, final 4: 4: 4). Recodificando-o com ffmpeg usando a seguinte opção, o WMP conseguiu reproduzir o arquivo corretamente:

ffmpeg  -i edited.avi -pix_fmt yuv420p fixed.mp4

1
Veja trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers, que menciona o uso -pix_fmt yuv420pe suporta essa ideia.
— Usuário

Acabei de testar isso no Windows 10. Apenas adicionando -pix_fmt yuv420p, consegui abrir o mp4 em aplicativos da Microsoft (tanto o player embutido quanto o Movie Maker).
— Nux


0

Como os dois codecs já são suportados pelo contêiner AVI, você pode fazer

ffmpeg -i x.flv -vcodec copy -acodec copy x.avi

assumindo que o seu XP suporta h.264, caso contrário, eu usaria um arquivo wmv, o mesmo quantizador, e deixaria o ffmpeg preencher os codecs. Isso deve fornecer uma qualidade quase idêntica à original:

ffmpeg -i x.flv -sameq x.wmv

2
Eu de alguma forma dúvida simples suportes XP h.264
— ThiefMaster

2
-sameqnão deve ser usado para converter formatos que não compartilham uma escala quantizante semelhante. Esta opção não significa "mesma qualidade" que a documentação usada para implicar. Além disso, o H.264 no AVI não é recomendado (embora o H.264 sem perdas [sem quadros b] deva ser bom).
— llogan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.