Advertencia

Este documento está un poco desactualizado. A tener en cuenta: debería mencionar el script de sincronización de video

Reproducir Multimedia en una Entidad Web

Las entidades web pueden reproducir varios formatos de medios diferentes a través de reproductores integrados.

Formatos de Medios Admitidos

Actualmente, se admiten formatos exclusivamente de código abierto:

Formato contenedor

Códecs compatibles

Extension(es) de archivo

WebM

Video: VP8, VP9; Audio: Vorbis, Opus

.webm

Matroska

Video: Theora, VP8, VP9; Audio: Vorbis, Opus, FLAC, MP3

.mkv, .mk3d, .mka, .mks

Ogg

Video: Theora, VP8; Audio: Vorbis, Opus, FLAC

.ogg, .oga, .ogv

Video codec (códec de Video)

Comentarios

Contenedores compatibles

VP9 (recomendado)

Buena calidad, codificación lenta.

WebM, Matroska

VP8

Recomendado si tu APU tiene codificación acelerada por hardware para VP8, pero no para VP9. Es ligeramente más rápido que VP9. La Relación calidad/compresión es ligeramente inferior a la del VP9.

WebM, Matroska

Theora

Baja calidad, baja compresión, desactualizado.

Matroska

Audio codec (códec de Audio)

Comentarios

Contenedores compatibles

Opus

Recomendado, funciona bien con un bitrate alto y bajo.

WebM, Matroska, Ogg

Vorbis

Menor relación calidad/compresión que Opus.

WebM, Matroska, Ogg

FLAC

Archivos más grandes y sin pérdidas.

Matroska, Ogg

MP3

Menor relación calidad/compresión que Opus y Vorbis.

Matroska

Re-codificación de Medios con FFmpeg

Aquí hay algunos comandos de ejemplo para volver a codificar archivos de video usando FFmpeg.

Codificador

Comando

Comentarios

VP9, Opus, WebM

ffmpeg -i "INPUTFILE" -c:v libvpx-vp9 -b:v 0 -crf 5 -vf scale=-2:600 -cpu-used 5 -row-mt 1 -c:a libopus -b:a 96K "OUTPUTFILE.webm"

"-vf scale=-2:600" reduce el video a una resolución vertical de 600p manteniendo la relación de aspecto. "-crf 5" es la calidad del video de 0 a 63, más bajo es mejor. Para que la calidad constante funcione, la tasa de bits debe establecerse en "0" por medio de "-b:v 0".

VP9 (Acelerado por hardware), Opus, WebM

ffmpeg -i "INPUTFILE" -c:v vp9_vaapi -b:v 2000k -c:a libopus -b:a 96K "OUTPUTFILE.webm"

Actualmente, la aceleración de hardware VP9 solo es compatible con Intel Kaby Lake o APU más recientes. VP9 acelerado por hardware no tiene una configuración de calidad constante, por lo que se debe usar la tasa de bits en su lugar.

VP8 (Acelerado por hardware), Opus, WebM

ffmpeg -i "INPUTFILE" -c:v vp8_vaapi -b:v 2000k -vf scale=-2:600 -c:a libopus -b:a 96K "OUTPUTFILE.webm"

Actualmente, la aceleración de hardware VP8 solo es compatible con Intel Cherryview/Braswell y las APU's más nuevas.

Theora, Opus, Matroska

ffmpeg -i "INPUTFILE" -c:v libtheora -q:v 10 -vf scale=-2:600 -c:a libopus -b:a 96K "OUTPUTFILE.mkv"

"-q:v 10" es la calidad de 0 a 10, cuanto mayor es mejor.

Puedes usar el comando ffmpeg -codecs para ver los códecs compatibles.

Puede encontrarse información adicional con el comando ffmpeg -h

Alternativamente, puedes explorar estos enlaces:

Procesamiento por Lotes

Aquí hay un script de shell de ejemplo para volver a codificar por lotes el contenido de una carpeta en Linux usando FFmpeg:

Puedes nombrarlo como: vircadia_reencode.sh

Con este código en él:

# Modified version of https://gist.github.com/ralphcrisostomo/56fc395b1646bd55aeeb2eb442043887
# Usage: ./vircadia_reencode.sh /SourceDirectory /DestinationDirectory

SOURCE=$1
DESTINATION=$2

while IFS= read -d '' -r ITEM
do

  echo $ITEM

  FILE=${ITEM##*/}
  EXT=${ITEM##*.}
  EXT=$(echo $EXT | tr "[:upper:]" "[:lower:]")
  OUTPUT="$DESTINATION/${FILE%.*}.mkv"

  # Create directory
  [[ -d $DESTINATION ]] || mkdir -p $DESTINATION

echo "" | ffmpeg -i "$ITEM" -c:v libvpx-vp9 -b:v 0 -crf 5 -vf scale=-2:600 -cpu-used 5 -row-mt 1 -c:a libopus -b:a 96K "$OUTPUT"

# All files with the listed extensions will be reencoded.
done< <(find "$SOURCE" \( -iname '*.mp4' -or -iname '*.avi'  -or -iname '*.mkv' -or -iname '*.mts' \) -print0) |

Nota

No te olvides de configurar el script como ejecutable en Linux usando algo como el siguiente comando: chmod +x vircadia_reencode.sh

Reproductor de Video

Puedes incrustar videos usando la etiqueta de video de HTML5. Este código de ejemplo se puede poner en un archivo HTML en un servidor web y usarse en una entidad web.

<video controls="controls" src="EXAMPLEDIRECTORY/EXAMPLEFILE.webm">
    Your browser does not support the HTML5 Video element.
</video>

Ver también