¿Qué códecs son más adecuados para la reproducción con Windows Media Player en Windows XP?

16

Necesito codificar un video corto en un formato que pueda reproducirse con Windows Media Player en Windows XP sin instalar ningún códec adicional. Para el proceso de recodificación estoy usando ffmpeg.

Ya probé el msmpeg4v2códec, pero la calidad es horrible (en comparación con el video original, ve "bloques" grandes), así que estoy buscando otros códecs que funcionen de fábrica y que tengan al menos una calidad "aceptable".

Dado que los comentarios indicaron que podría no ser el códec sino un problema de velocidad de bits, aquí está el comando que utilicé:

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

Salida:

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%
ThiefMaster
fuente
3
Tal vez el problema sea su tasa de bits, no su códec. El códec preferido para sistemas Windows es, muy probablemente, algún tipo de WMV .
Der Hochstapler
Vea mi respuesta allí para obtener un enlace a las preguntas frecuentes oficiales de Microsoft. Pero esencialmente, estás atrapado con Windows Media Video, que FFmpeg no producirá. Entonces eso o los que has probado. Como ya dijo @Oliver, pruebe con una velocidad de bits o configuración de calidad más alta. Supongo que solo usa el predeterminado.
slhck
El beneficio del códec MPEG no es el tamaño, sino el hecho de que no es un contenedor como un AVI, y es un archivo basado en flujo que puede grabarse a través de un codificador de hardware, utilizado en medios de DVD para reproductores independientes, y se puede editar fácilmente Por lo tanto, para que quede claro, lo que está preguntando es un formato de película que puede codificar usando FFMPEG que producirá un tamaño con el que se sienta cómodo y que funcione con Windows Media Player sin descargas adicionales. ¿Correcto?
Bon Gart
Si. WMV también está bien. Luego obtengo la misma calidad, por lo que tal vez haya algo mal con la tasa de bits.
ThiefMaster

Respuestas:

12

Como no especificas nada más, tu transmisión de video está configurada para usarse q=2-31, 200 kb/s. Resulta en 673.5kbitspromedio, que no es mucho, al menos no para códecs que no son h.264.

Intenta forzar

  • una cierta tasa de bits con, -b:v 1000Kpor ejemplo. Con versiones anteriores de FFmpeg, solo puede usar -b.
  • un nivel de calidad fijo con -qscale 2por ejemplo. Aquí el valor puede variar de 1 a 31. Los valores correctos para qscaleestán en el rango de 2 a 5 más o menos. Solo intenta ver qué logra el mejor resultado.

Los códecs que realmente son compatibles con Windows de forma predeterminada son estos :

Hoy se utilizan cientos de códecs de audio y video. Algunos han sido creados por Microsoft, pero la gran mayoría de los códecs han sido creados por otras compañías, organizaciones o individuos. De manera predeterminada, el sistema operativo Windows y el reproductor incluyen algunos de los códecs más populares, como Windows Media Audio, Windows Media Video y MP3.

Consulte también los tipos de archivos multimedia que admite Windows Media Player para obtener más información.

Con FFmpeg, puede probar mpeg1video(MPEG-1) o mpeg2video(MPEG-2), o msmpeg4(MPEG-4 Parte II), pero no estoy seguro de si este último es universalmente compatible. Si quieres jugar a lo seguro, estás obligado a usar MPEG-1 o MPEG-2.

slhck
fuente
sí ... eso fue una tasa de bits bastante baja para un archivo MPEG.
Bon Gart
Je Tengo que decir que estamos realmente bendecidos con h.264 en estos días.
slhck
especialmente considerando que estás mirando 4k a 5k durante 2 buenas horas en un DVD (puedes ir más alto, por supuesto, pero eso siempre me deja un buen margen en un disco para incluir un archivo AVI e imágenes y tal)
Bon Gart
7

Tuve un problema similar con un archivo .mp4 aac / h264 que originalmente jugó bien en Windows Media Player (Windows 7). Después de editarlo en VirtualDub y guardarlo en formato .avi, y luego convertirlo nuevamente a aac / h264 .mp4 usando los valores predeterminados de ffmpeg, ya no se reproduciría en Windows Media Player.

Al usar MediaInfo para comparar los archivos originales y finales, noté que se había utilizado un perfil de codificación diferente y diferentes configuraciones de submuestreo de croma (4: 2: 0, final 4: 4: 4). Al volver a codificarlo con ffmpeg con la siguiente opción, WMP pudo reproducir el archivo correctamente:

ffmpeg  -i edited.avi -pix_fmt yuv420p fixed.mp4
Annihilannic
fuente
1
Vea trac.ffmpeg.org/wiki/Encode/H.264#Encodingfordumbplayers que menciona el uso -pix_fmt yuv420py apoya esta idea.
Usuario
Acabo de probar esto en Windows 10. Con solo agregar -pix_fmt yuv420ppude abrir el mp4 en las aplicaciones de Microsoft (tanto el reproductor incorporado como el Movie Maker).
Nux
0

Dado que ambos códecs ya son compatibles con el contenedor AVI, simplemente podría hacer

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

eso supone que su XP es compatible con h.264, de lo contrario, iría con un archivo wmv, el mismo cuantificador, y dejaría que ffmpeg complete los códecs. Esto debería darle una calidad casi idéntica a la original:

ffmpeg -i x.flv -sameq x.wmv
Justin Buser
fuente
2
De alguna manera dudo que XP simple soporte h.264
ThiefMaster
2
-sameqno debe usarse para convertir formatos que no comparten una escala de cuantificador similar. Esta opción no significa "la misma calidad" que implica la documentación utilizada. Además, no se recomienda H.264 en AVI (aunque H.264 sin pérdida [sin b-frames] debería estar bien).
llogan