Introducción al formato y codificación de video

Hoy, me encontré con un problema de formato al escribir un video subido a un sitio web, así que aprendí sobre los conceptos relacionados con el formato y la codificación de video. Aquí hay un resumen.

La diferencia entre el formato de video y la codificación de video

Lo primero que debe quedar claro es que el formato de video y la codificación de video son en realidad dos conceptos.

Al igual que AVI, MP4en realidad son formatos de videoH.264 y son H.265formatos de codificación de video .

H.264También llamado AVC, H.265también llamado HEVC. Puedes recordar esto, porque se menciona a menudo, pero en realidad está hablando de lo mismo.

formato contenedor

Un formato de video es en realidad un formato de contenedor que se utiliza para organizar varios tipos de flujos de datos. Al igual que el formato de contenedor para ZIParchivos de almacenamiento ( archivos de archivoMP4 ), y el formato de contenedor que se acaba de mencionar es para la reproducción multimedia.

El formato de contenedor de video general contiene datos de audio en diferentes formatos, pero los formatos de contenedor más avanzados también pueden contener múltiples secuencias de audio y video, subtítulos, metadatos (como formatos de codificación de audio y video) e información de sincronización de audio y video.

Además, aunque el formato de contenedor contiene diferentes flujos de datos, la mayoría de los formatos de contenedor están diseñados para requisitos de datos específicos, por lo que el nombre del formato de contenedor ya implica qué software se debe usar para abrir los datos almacenados en el archivo, como seguro que es un video MP4. archivo.

La mayor parte de lo anterior es la Wikipedia del formato de contenedor como referencia, aquí está el enlace: Formato de contenedor .

Más información sobre la codificación de vídeo

Como se mencionó anteriormente, el formato del contenedor solo especifica cómo almacenar varios tipos de datos, pero no limita el tipo de datos, por lo que incluso si se trata de un archivo con el mismo formato de video, el formato de codificación de video que contiene puede ser completamente diferente. Esto da como resultado todos MP4los archivos posibles, pero algunos se pueden reproducir en el navegador y otros no, porque sus formatos de codificación de video son diferentes.

Debido a algunas razones históricas (principalmente porque algunos formatos de códec de video tienen tarifas de patente, es decir, debe pagar para usar las herramientas de códec inventadas por otros), los principales fabricantes de navegadores no tienen un formato de codificación de video compatible uniformemente. Los principales proveedores de navegadores admiten lo siguiente:

Como puede ver en la imagen de arriba, para MP4este tipo de formato de video, estos navegadores solo admiten H264y AACcodifican video, por lo que si carga un H.265video codificado con .mp4, no se puede reproducir porque el navegador no lo admite.

Ver formato de codificación de video

A través de la herramienta FFmpeg , podemos visualizar los datos relevantes del archivo de vídeo correspondiente:

FFmpeg es una herramienta de procesamiento de video muy utilizada con muchas funciones poderosas, aquí está el enlace de descarga: FFmpeg .

ffprobe test.mp4 -show_streams -select_streams v -print_format json
# test.mp4可以改成对应文件名

Algunos resultados se muestran arriba. Podemos ver que la mayoría de las claves contienen codecpalabras clave, esta es una palabra compuesta de codificador y decodificador, lo que significa un códec, se usa principalmente para indicar cuál es el formato de codificación de video, podemos ver que es h264.

Además, también podemos ver una codec_tagclave, que es codecun dato que se usa para complementar información, porque generalmente una clave codectiene mucha información, aquí codec_tagse usa para indicar el formato de encapsulación de la codificación de video, podemos ver que es avc1. Cuando subí el video del video de hoy, el navegador no pudo reproducirlo porque el formato de codificación del video h264no era .avc1

Para la diferencia entre avc1y h264, puede ver esta respuesta: La diferencia entre avc1 y h264

Alternar codec_tag

Para la situación anterior, la herramienta FFmpeg también puede manejarlo, convirtiendo la etiqueta del video H.264 especificado a avc1:

ffmpeg -i source.mp4 -c:v copy -tag:v avc1 -c:a copy target.mp4
# source.mp4和target.mp4可以改成对于文件名

Link de referencia

  1. ¿Qué es la etiqueta de códec?
  2. Tutorial introductorio de procesamiento de video FFmpeg

Supongo que te gusta

Origin blog.csdn.net/weixin_55658418/article/details/129643965
Recomendado
Clasificación