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