Está en la página 1de 10

Código FLA-23 v.

00
Guía Unificada de Laboratorios
Página 1 de 1

Título y asignatura

Compresión y perfil de video comprimido – TELEMATICA III

Objetivo:
Analizar el perfil del tráfico de vídeo comprimido con H.264 y H.265 a diferentes
calidades, así como el PSNR resultante de la codificación.

1. Descargar contenidos de vídeo

https://download.blender.org/durian/trailer/sintel_trailer-720p.mp4
Ejemplo: Trailer Formato: HD 720p - Contenedor MP4

2. Descarga del Software: ffmpeg

Para poder repasar o realizar la práctica en el propio PC es necesario descargarse la versión


de ffmpeg correspondiente según el sistema operativo.

https://ffmpeg.org/download.html

3. Copia y ejecución de ffmpeg

Copiar los archivos de la carpeta BIN a la carpeta System32 de Windows (Buscar la carpeta
equivalente en caso de otros sistemas operativos), también se puede ejecutar directamente
en la carpeta donde están los archivos actualmente.
Ejecutar el software ffmpeg desde CMD de Windows (su equivalente en otros sistemas
operativos).

4. Análisis de las características del vídeo codificado

CUESTIÓN 1. Comprobar los formatos y codecs disponibles (opción ffmpeg -formats y ffmpeg
-codecs).

# ffmpeg -formats > formats.txt


# ffmpeg -codecs > codecs.txt

Respuesta: (Pantalla/Texto donde aparezcan los formatos y codecs indicados. Contestación a


las preguntas)

FORMATS
● ¿existe soporte para multiplexar y demultiplexar los formatos MP4, MKV, WEBM?

Rta:

CODECS

● ¿existe soporte para H.264, H.265 (HEVC), VP9, AV1? Indica las librerías disponibles y las
opciones de cada codificador.

Rta:

CUESTIÓN 2. Utilizando la aplicación VLC visualiza el vídeo descargado. Utilizando el comando


ffprobe, anota las características del vídeo (duración, codificación, formato original (YUV),
resolución, bitrate de la codificación, fps).

# ffprobe -i video_in.mp4 🡪 C:\VIDEO>ffprobe -i


sintel_trailer-720p.mp4

Respuesta: (Valores del vídeo)


Duración: Codificación: Formato original (YUV): Resolución:
fps: bitrate de la codificación: bitrate vídeo: bitrate audio:

El objetivo es codificar el vídeo original a diferentes calidades, utilizando como parámetro objetivo
el bitrate. En primer lugar, obtenemos el vídeo en formato YUV. Este paso es necesario para
posteriormente codificarlo y encapsularlo en un contenedor MP4, y obtener trazas del mismo:

# ffmpeg -i video_in.mp4 video_in.yuv 🡪 C:\VIDEO> ffmpeg -i


sintel_trailer-720p.mp4 sintel_trailer-720p.yuv

Respuesta: (Pantalla del proceso ffmpeg e indicar el tamaño del archivo .mp4 y del archivo
.yuv generado)

Vídeo Tamaño
sintel_trailer-720p.mp4 7.430 KB
sintel_trailer-720p.yuv 1.691.550 KB

CUESTIÓN 3. Ejecutar los comandos posteriores para los bitrates 1024k, 512k, 256k y 128k, tanto
con el codificador H.264 como con H.265.

Después de ejecutar los comandos, realizar una captura de pantalla para guardar los resultados
(velocidad de codificación, Q utilizada, etc.)

Respuesta: (Captura de pantalla para guardar los resultados (bitrate real de codificación,
velocidad de codificación, Q utilizada, etc.))

H.264:

a) Bitrate = 1024K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx264 -b:v 1024k -s 1280x720 -r
24 -g 12 -bf 2 -sc_threshold 0 -b_strategy 0 -flags -cgop -report
sintel_trailer-720p_1024k_h264.mp4

b) Bitrate = 512K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx264 -b:v 512k -s 1280x720 -r 24
-g 12 -bf 2 -sc_threshold 0 -b_strategy 0 -flags -cgop -report
sintel_trailer-720p_512k_h264.mp4

c) Bitrate = 256K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx264 -b:v 256k -s 1280x720 -r 24
-g 12 -bf 2 -sc_threshold 0 -b_strategy 0 -flags -cgop -report
sintel_trailer-720p_256k_h264.mp4

d) Bitrate = 128K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx264 -b:v 128k -s 1280x720 -r 24
-g 12 -bf 2 -sc_threshold 0 -b_strategy 0 -flags -cgop -report
sintel_trailer-720p_128k_h264.mp4

H.265:

a) Bitrate = 1024K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx265 -x265-params
"keyint=12:min-keyint=12:no-open-gop=0:scenecut=0:bframes=2:b-adapt=
0:bitrate=1024" -s 1280x720 -r 24 -report
sintel_trailer-720p_1024k_h265.mp4

b) Bitrate = 512K
C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i
sintel_trailer-720p.yuv -vcodec libx265 -x265-params
"keyint=12:min-keyint=12:no-open-gop=0:scenecut=0:bframes=2:b-adapt=
0:bitrate=512" -s 1280x720 -r 24 -report
sintel_trailer-720p_512k_h265.mp4

c) Bitrate = 256K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx265 -x265-params
"keyint=12:min-keyint=12:no-open-gop=0:scenecut=0:bframes=2:b-adapt=
0:bitrate=256" -s 1280x720 -r 24 -report
sintel_trailer-720p_256k_h265.mp4

d) Bitrate = 128K

C:\VIDEO> ffmpeg -f rawvideo -pix_fmt yuv420p -s 1280x720 -r 24 -i


sintel_trailer-720p.yuv -vcodec libx265 -x265-params
"keyint=12:min-keyint=12:no-open-gop=0:scenecut=0:bframes=2:b-adapt=
0:bitrate=128" -s 1280x720 -r 24 -report
sintel_trailer-720p_128k_h265.mp4

CUESTIÓN 4. Calcular el PSNR de cada codificación realizada.

Por último, para poder calcular el PSNR del vídeo resultante de la codificación, se puede obtener el
YUV asociado y ejecutar el comando ffmpeg con la opción psnr:

Respuesta: (Pantalla del proceso ffmpeg)

a) Bitrate = 1024K, Codec = h264

C:\VIDEO> ffmpeg -i sintel_trailer-720p_1024k_h264.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2>
psnr_1024k_h264.txt
b) Bitrate = 1024K, Codec = h265

C:\VIDEO> ffmpeg -i sintel_trailer-720p_1024k_h265.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2>
psnr_1024k_h265.txt

c) Bitrate = 512K, Codec = h264

C:\VIDEO> ffmpeg -i sintel_trailer-720p_512k_h264.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_512k_h264.txt

d) Bitrate = 512K, Codec = h265

C:\VIDEO> ffmpeg -i sintel_trailer-720p_512k_h265.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_512k_h265.txt

e) Bitrate = 256K, Codec = h264

C:\VIDEO> ffmpeg -i sintel_trailer-720p_256k_h264.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_256k_h264.txt

f) Bitrate = 256K, Codec = h265

C:\VIDEO> ffmpeg -i sintel_trailer-720p_256k_h265.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_256k_h265.txt

g) Bitrate = 128K, Codec = h264

C:\VIDEO> ffmpeg -i sintel_trailer-720p_128k_h264.mp4 -i


sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_128k_h264.txt

h) Bitrate = 128K, Codec = h265


C:\VIDEO> ffmpeg -i sintel_trailer-720p_128k_h265.mp4 -i
sintel_trailer-720p.mp4 -lavfi psnr -f null – 2> psnr_128k_h265.txt

CUESTIÓN 5. Rellenar la siguiente tabla con los datos obtenidos y dibujar la gráfica que
representa el bitrate vs PSNR.

Targeted bit rate (bitrate especificado): 1024 kbps


H.264 H.265
Bitrate real (kbps)
Velocidad codificación
(ej. 0.5x)
Tiempo codificación
(duración_video/velocidad
codificación)
Tamaño final del fichero
Ratio compresión
(Tamaño_video_mp4_original/
Tamaño_video_mp4_comprimido)
Average QP (frames I)
PSNR

Targeted bit rate (bitrate especificado): 512 kbps


H.264 H.265
Bitrate real (kbps)
Velocidad codificación
(ej. 0.5x)
Tiempo codificación
(duración_video/velocidad
codificación)
Tamaño final del fichero
Ratio compresión
(Tamaño_video_mp4_original/
Tamaño_video_mp4_comprimido)
Average QP (frames I)
PSNR

Targeted bit rate (bitrate especificado): 256 kbps


H.264 H.265
Bitrate real (kbps)
Velocidad codificación
(ej. 0.5x)
Tiempo codificación
(duración_video/velocidad
codificación)
Tamaño final del fichero
Ratio compresión
(Tamaño_video_mp4_original/
Tamaño_video_mp4_comprimido)
Average QP (frames I)
PSNR

Targeted bit rate (bitrate especificado): 128 kbps


H.264 H.265
Bitrate real (kbps)
Velocidad codificación
(ej. 0.5x)
Tiempo codificación
(duración_video/velocidad
codificación)
Tamaño final del fichero
Ratio compresión
(Tamaño_video_mp4_original/
Tamaño_video_mp4_comprimido)
Average QP (frames I)
PSNR

También podría gustarte