Quali codec sono più adatti per la riproduzione con Windows Media Player su Windows XP?


16

Devo codificare un breve video in un formato che può essere riprodotto con Windows Media Player su Windows XP senza installare alcun codec aggiuntivo. Per il processo di ricodifica sto usando ffmpeg.

Ho già provato il msmpeg4v2codec ma la qualità è orribile (rispetto al video originale vedi grandi "blocchi") quindi sto cercando altri codec che funzionino immediatamente e abbiano almeno una qualità "ok".

Poiché i commenti indicano che potrebbe non essere il codec ma un problema di velocità in bit, ecco il comando che ho usato:

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

Produzione:

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
Forse il problema è il tuo bitrate, non il tuo codec. Il codec preferito per i sistemi Windows è, molto probabilmente, una sorta di WMV .
Der Hochstapler,


Vedi la mia risposta lì per un link alle FAQ ufficiali di Microsoft. Ma essenzialmente, sei bloccato con Windows Media Video, che FFmpeg non produrrà. Quindi o quello o quelli che hai provato. Come già detto da @Oliver, prova un bit rate più elevato o un'impostazione di qualità. Presumo che usi solo quello predefinito.
slhck,

Il vantaggio del codec MPEG non è la dimensione, ma piuttosto il fatto che non è un contenitore come un AVI, ed è un file basato su stream che può essere registrato tramite un codificatore hardware, utilizzato su supporti DVD per lettori autonomi, e può essere facilmente modificato. Quindi, per essere chiari, quello che stai chiedendo è un formato di film che puoi codificare usando FFMPEG che produrrà una dimensione che ritieni comoda e funzionerà con Windows Media Player senza alcun download aggiuntivo. Corretta?
Bon Gart,

Sì. Anche WMV va bene. quindi ottengo la stessa qualità - quindi forse c'è davvero qualcosa che non va nel bitrate.
ThiefMaster,

Risposte:


12

Dal momento che non specifichi nient'altro, il tuo streaming video è impostato per l'uso q=2-31, 200 kb/s. Risulta in 673.5kbitsmedia, il che non è molto, almeno non per i codec non h.264.

Prova a forzare

  • un certo bitrate con -b:v 1000Kper esempio. Con le versioni precedenti di FFmpeg, è possibile utilizzare solo -b.
  • un livello di qualità fisso con -qscale 2ad esempio. Qui il valore può variare da 1 a 31. I valori sani per qscalesono compresi nell'intervallo da 2 a 5 o giù di lì. Basta provare e vedere cosa ottiene il miglior risultato.

I codec realmente supportati su Windows per impostazione predefinita sono questi :

Ci sono centinaia di codec audio e video in uso oggi. Alcuni sono stati creati da Microsoft, ma la stragrande maggioranza dei codec è stata creata da altre società, organizzazioni o individui. Per impostazione predefinita, il sistema operativo Windows e il lettore includono una serie di codec più popolari, come Windows Media Audio, Windows Media Video e MP3.

Vedere anche i tipi di file multimediali supportati da Windows Media Player per ulteriori informazioni.

Con FFmpeg, puoi provare mpeg1video(MPEG-1) o mpeg2video(MPEG-2) o msmpeg4(MPEG-4 Parte II), ma non sono sicuro che quest'ultimo sia persino universalmente supportato. Se vuoi giocare sul sicuro, sei costretto a usare MPEG-1 o MPEG-2.


sì ... era un bitrate piuttosto basso per un file mpeg.
Bon Gart,

Eh. Devo dire che in questi giorni siamo davvero fortunati con h.264.
slhck,

soprattutto considerando che stai guardando da 4k a 5k per 2 buone ore su un DVD (puoi andare più in alto ovviamente, ma questo mi lascia sempre un bel margine di testa su un disco per l'inclusione di un file AVI e immagini e simili)
Bon Gart

7

Ho avuto un problema simile con un file .ac4 aac / h264 che originariamente funzionava bene in Windows Media Player (Windows 7). Dopo averlo modificato in VirtualDub e salvato in formato .avi e poi riconvertito in aac / h264 .mp4 utilizzando le impostazioni predefinite di ffmpeg, non verrà più riprodotto in Windows Media Player.

Usando MediaInfo per confrontare i file originali e finali, ho notato che era stato usato un profilo di codifica diverso e diverse impostazioni di sottocampionamento di chroma (4: 2: 0, 4: 4: 4 finale). Ricodificandolo con ffmpeg usando la seguente opzione WMP è stato in grado di riprodurre correttamente il file:

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

1
Vedi trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers che menziona l'utilizzo -pix_fmt yuv420pe supporta questa idea.
Utente

Ho appena provato questo su Windows 10. Semplicemente aggiungendo -pix_fmt yuv420psono stato in grado di aprire mp4 in applicazioni Microsoft (sia il lettore integrato che Movie Maker).
Nux,


0

Dato che entrambi i codec sono già supportati dal contenitore AVI, potresti semplicemente farlo

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

supponendo che il tuo XP supporti h.264, altrimenti andrei con un file wmv, lo stesso quantizzatore e lascerei che ffmpeg riempia i codec. Questo dovrebbe darti una qualità quasi identica all'originale:

ffmpeg -i x.flv -sameq x.wmv

2
In qualche modo dubito che XP semplice supporti h.264
ThiefMaster il

2
-sameqnon dovrebbe essere usato per convertire formati che non condividono una scala di quantizzazione simile. Questa opzione non significa "stessa qualità" della documentazione utilizzata per implicare. Inoltre, H.264 in AVI non è raccomandato (sebbene H.264 senza perdita di dati [nessun b-frame] dovrebbe andare bene).
Llogan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.