web-dev-qa-db-fra.com

Quels codecs conviennent le mieux à la lecture avec Windows Media Player sur Windows XP?

J'ai besoin d'encoder une courte vidéo dans un format pouvant être joué avec Windows Media Player sur Windows XP sans installer de codecs supplémentaires. Pour le processus de recodage, j'utilise FFMPEG.

J'ai déjà essayé le msmpeg4v2 codec mais la qualité est horrible (comparée à la vidéo d'origine, vous voyez de gros "blocs"), donc je recherche d'autres codecs qui fonctionnent hors de la boîte et ont au moins "OK" de qualité.

Étant donné que les commentaires indiquaient que ce n'est peut-être pas le codec mais une question de débit binaire, voici la commande que j'ai utilisée:

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

Production:

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%
16
ThiefMaster

Puisque vous ne spécifiez rien d'autre, votre flux vidéo est défini sur Utiliser q=2-31, 200 kb/s. Il en résulte 673.5kbits Moyenne, qui n'est pas beaucoup, du moins pas pour les codecs non-H.264.

Essayez de forcer

  • un certain débit avec -b:v 1000K par exemple. Avec les versions FFMPEG plus anciennes, vous ne pouvez utiliser que -b.
  • un niveau de qualité fixe avec -qscale 2 par exemple. Ici la valeur peut aller de 1 à 31. Les valeurs saines pour qscale sont comprises entre 2 et 5 environ. Essayez simplement de voir ce qui atteint le meilleur résultat.

Les codecs qui sont vraiment pris en charge sur Windows par défaut sont ceux :

Il existe des centaines de codecs audio et vidéo utilisés aujourd'hui. Certains ont été créés par Microsoft, mais la vaste majorité des codecs ont été créées par d'autres sociétés, organisations ou individus. Par défaut, le système d'exploitation Windows et le lecteur comprennent un certain nombre de codecs les plus populaires, tels que Windows Media Audio, Windows Media Video et MP3.

Voir également Types de fichiers multimédias que Windows Media Player prend en charge pour plus d'informations.

Avec FFMPEG, vous pouvez essayer mpeg1video (MPEG-1) ou mpeg2video (MPEG-2), ou msmpeg4 (MPEG-4 PARTIE II), mais je ne suis pas sûr que ce dernier est même universellement soutenu. Si vous voulez y jouer, vous êtes obligé d'utiliser MPEG-1 ou MPEG-2.

12
slhck

J'ai eu un problème similaire avec un fichier AAC/H264.mp4 qui a initialement joué fin à Windows Media Player (Windows 7). Après avoir été modifié dans VirtualDub et enregistré au format .avi, puis reconverti sur AAC/H264 .mp4 à l'aide des paramètres par défaut FFMPEG, il ne jouerait plus dans Windows Media Player.

Utilisation de MediaInfo pour comparer les fichiers originaux et finaux, j'ai remarqué qu'un profil de codage différent avait été utilisé et différents paramètres de sous-échantillonnage de Chroma (4: 2: 0, 4: 4: 4). En re-codant avec FFMPEG à l'aide de l'option suivante, WMP a été capable de lire correctement le fichier:

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

Étant donné que les deux codecs sont déjà soutenus par le conteneur AVI, vous pouvez simplement faire

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

cela suppose que votre XP Supporte H.264, sinon j'irais avec un fichier WMV, même quantificateur et que FFMPEG remplir les codecs. Cela devrait vous donner une qualité presque identique à l'original:

ffmpeg -i x.flv -sameq x.wmv
0
Justin Buser