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


Je dois encoder une courte vidéo dans un format qui peut être lu 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 (par rapport à la vidéo originale, vous voyez de gros "blocs"), donc je cherche d'autres codecs qui fonctionnent immédiatement et qui ont au moins une qualité "ok".

Comme les commentaires indiquaient qu'il ne s'agissait peut-être pas du codec mais d'un problème de débit, voici la commande que j'ai utilisée:

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

Sortie:

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%

11
2018-06-12 19:17


origine


Peut-être que le problème est votre bitrate, pas votre codec. Le codec préféré pour les systèmes Windows est probablement une sorte de WMV. - Der Hochstapler
duplicata possible de Convertir la vidéo au format le plus susceptible d'être lu sur un système Windows - slhck
Voir ma réponse pour un lien vers la FAQ officielle de Microsoft. Mais essentiellement, vous êtes coincé avec Windows Media Video - que FFmpeg ne produira pas. Donc, que ce soit ou ceux que vous avez essayé. Comme @Oliver l'a déjà dit, essayez un débit ou un paramètre de qualité plus élevé. Je suppose qu'il utilise juste celui par défaut. - slhck
L'avantage du codec MPEG n'est pas la taille, mais le fait qu'il ne s'agit pas d'un conteneur comme un fichier AVI, et que ce fichier peut être enregistré via un encodeur matériel, utilisé sur des supports DVD pour des lecteurs autonomes. et il peut être facilement modifié. Donc, pour être clair, ce que vous demandez, c'est un format de film que vous pouvez encoder en utilisant FFMPEG qui produira une taille avec laquelle vous êtes à l'aise, et fonctionnera avec Windows Media Player sans aucun téléchargement supplémentaire. Correct? - Bon Gart
Oui. WMV va bien aussi. Je reçois la même qualité, alors il y a peut-être quelque chose qui ne va pas dans le bitrate. - ThiefMaster


Réponses:


Comme vous ne spécifiez rien d'autre, votre flux vidéo est configuré pour utiliser q=2-31, 200 kb/s. Il en résulte 673.5kbits moyenne, ce qui n'est pas beaucoup, du moins pas pour les codecs non h.264.

Essayez de forcer

  • un certain bitrate avec -b:v 1000K par exemple. Avec les anciennes versions de FFmpeg, vous ne pouvez utiliser que -b.
  • un niveau de qualité fixe avec -qscale 2 par exemple. Ici, la valeur peut aller de 1 à 31. Valeurs Sane pour qscale sont dans la gamme de 2 à 5 ou plus. Essayez simplement de voir ce qui donne le meilleur résultat.

Les codecs réellement pris en charge sur Windows par défaut sont-ce:

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

Regarde aussi Types de fichiers multimédia pris en charge par Windows Media Player pour plus d'informations.

Avec FFmpeg, vous pouvez essayer mpeg1video (MPEG-1) ou mpeg2video (MPEG-2), ou msmpeg4 (MPEG-4 Part II), mais je ne suis pas sûr que ce dernier soit même universellement pris en charge. Si vous voulez y jouer en toute sécurité, vous devez utiliser MPEG-1 ou MPEG-2.


11
2018-06-12 19:27



oui ... c'était un débit assez faible pour un fichier mpeg. - Bon Gart
Il h. Je dois dire, nous sommes vraiment bénis avec h.264 ces jours-ci. - slhck
en particulier si vous envisagez un DVD de 4k à 5k pendant 2 bonnes heures (vous pouvez bien sûr aller plus haut, mais cela me laisse toujours une belle marge sur un disque pour inclure un fichier AVI et des images) - Bon Gart


J'ai eu un problème similaire avec un fichier .mp4 aac / h264 qui a été lu à l'origine dans Windows Media Player (Windows 7). Après avoir édité dans VirtualDub et enregistré au format .avi, puis reconverti en aac / h264 .mp4 en utilisant les paramètres par défaut de ffmpeg, il ne serait plus lu dans Windows Media Player.

En utilisant 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 chrominance (4: 2: 0, finale 4: 4: 4). En le ré-encodant avec ffmpeg en utilisant l’option suivante, WMP a pu lire le fichier correctement:

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

3
2018-04-14 23:26



Voir trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers qui mentionne en utilisant -pix_fmt yuv420p et soutient cette idée. - User


le Le wiki FFMPEG recommande ce qui suit:

ffmpeg -r 30 -i foo.flv -codec:v mpeg4 -flags:v +qscale -global_quality:v 0 -codec:a libmp3lame foo.avi

1
2018-03-03 16:21





Comme les deux codecs sont déjà pris en charge par le conteneur AVI, vous pouvez le faire

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

en supposant que votre XP supporte h.264, sinon j'irais avec un fichier wmv, même quantizer, et laisserais ffmpeg remplir les codecs. Cela devrait vous donner une qualité presque identique à l'original:

ffmpeg -i x.flv -sameq x.wmv

0
2018-06-13 16:07



Je doute en quelque sorte que XP supporte h.264 - ThiefMaster
-sameq ne doit pas être utilisé pour convertir des formats qui ne partagent pas une échelle de quantification similaire. Cette option ne signifie pas "même qualité" que la documentation impliquait. En outre, H.264 dans AVI n'est pas recommandé (bien que le H.264 sans perte [pas de B-frames] soit correct). - LordNeckbeard