vp9 vp10 h264 ffmpeg webm

ffmpeg - vp10 - ¿Cómo crear un archivo de video webm?



ffmpeg vp9 (8)

Después de revisar el proyecto web, no veo evidencia de una manera de generar un video webm. Veo controladores para Windows y Quicktime, pero no hay evidencia de que la utilidad más común ffmpeg sea compatible.

¿Hay algún convertidor de código abierto que produce webm?

Gracias.


Configuré esto recientemente, pero es un poco doloroso. Esto es lo que tenía que hacer:

Primero, genere ffmpeg desde la fuente para incluir los controladores libvpx (incluso si usa una versión que la tiene, necesita las más nuevas (a partir de este mes) para transmitir webm porque simplemente agregaron la funcionalidad para incluir encabezados globales). Hice esto en un servidor y computadora de escritorio de Ubuntu, y esta guía me mostró cómo: las instrucciones para otros sistemas operativos se pueden encontrar aquí .

Una vez que haya obtenido la versión adecuada de ffmpeg / ffserver, puede configurarlos para la transmisión, en mi caso esto se hizo de la siguiente manera.

En el dispositivo de captura de video:

ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm

  • La parte "-f video4linux2-standard ntsc -i / dev / video0" puede cambiar dependiendo de la fuente de entrada (la mía es para una tarjeta de captura de video).

Extracto relevante de ffserver.conf:

Port 8090 #BindAddress <server_ip> MaxHTTPConnections 2000 MAXClients 100 MaxBandwidth 1000000 CustomLog /var/log/ffserver NoDaemon <Feed 0.ffm> File /tmp/0.ffm FileMaxSize 5M ACL allow <feeder_ip> </Feed> <Feed 0_webm.ffm> File /tmp/0_webm.ffm FileMaxSize 5M ACL allow localhost </Feed> <Stream 0.mpg> Feed 0.ffm Format mpeg1video NoAudio VideoFrameRate 25 VideoBitRate 256 VideoSize cif VideoBufferSize 40 VideoGopSize 12 </Stream> <Stream 0.webm> Feed 0_webm.ffm Format webm NoAudio VideoCodec libvpx VideoSize 320x240 VideoFrameRate 24 AVOptionVideo flags +global_header AVOptionVideo cpu-used 0 AVOptionVideo qmin 1 AVOptionVideo qmax 31 AVOptionVideo quality good PreRoll 0 StartSendOnKey VideoBitRate 500K </Stream> <Stream index.html> Format status ACL allow <client_low_ip> <client_high_ip> </Stream>

  • Tenga en cuenta que esto está configurado para que un servidor en feeder_ip ejecute el comando ffmpeg mencionado anteriormente, y para el servidor en server_ip, de modo que el servidor entre a client_low_ip a través de client_high_ip mientras maneja la conversación de mpeg a webm en server_ip (continúa más abajo).

Este comando ffmpeg se ejecuta en la máquina a la que anteriormente se hace referencia como server_ip (maneja la conversión real de mpeg -> webm y la reenvía al ffserver en una fuente diferente):

ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm

Una vez que se hayan iniciado todos (primero el ffserver, luego el proceso feeder_ip ffmpeg, luego el proceso server_ip ffmpeg), debería poder acceder a la transmisión en vivo en http: //: 8090 / 0.webm y verificar el estado en http : //: 8090 /

Espero que esto ayude.


FFmpeg. MP4 a WebM. Tener lipsync y alta calidad.

$ ffmpeg -i input.mp4 -b:v 1M -q:v 10 -vcodec libvpx -acodec libvorbis output.webm ffmpeg version 2.8.6-1ubuntu2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311 configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ''SPBFRE_01.mp4'': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2015-05-29 14:49:20 Duration: 00:01:41.61, start: 0.000000, bitrate: 9452 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 9132 kb/s, 50 fps, 50 tbr, 50k tbn, 100 tbc (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : ?Mainconcept Video Media Handler encoder : AVC Coding Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 317 kb/s (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : #Mainconcept MP4 Sound Media Handler File ''output.webm'' already exists. Overwrite ? [y/N] y [libvpx @ 0x132af40] v1.5.0 Output #0, webm, to ''output.webm'': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 encoder : Lavf56.40.101 Stream #0:0(eng): Video: vp8 (libvpx), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 1000 kb/s, 50 fps, 1k tbn, 50 tbc (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : ?Mainconcept Video Media Handler encoder : Lavc56.60.100 libvpx Stream #0:1(eng): Audio: vorbis (libvorbis), 44100 Hz, stereo, fltp (default) Metadata: creation_time : 2015-05-29 14:49:20 handler_name : #Mainconcept MP4 Sound Media Handler encoder : Lavc56.60.100 libvorbis Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> vp8 (libvpx)) Stream #0:1 -> #0:1 (aac (native) -> vorbis (libvorbis)) Press [q] to stop, [?] for help frame= 755 fps= 10 q=0.0 size= 1987kB time=00:00:15.12 bitrate=1076.5kbits/s


No estaba seguro de si mi copia de FFMPEG es compatible con WebM, así que primero convertí mi video MPEG4 a video en bruto usando FFMPEG.

Luego utilicé el vpxenc.exe provisto con el SDK del proyecto WebM para convertirlo en WebM.

Enlace a la descarga del SDK: http://code.google.com/p/webm/downloads/list

Descargar, extraer y buscar en la carpeta "bin". Hay algunas aplicaciones de ejemplo allí. También se proporciona un decodificador.

Comando utilicé para convertir video en bruto a WebM:

vpxenc.exe -w 720 -h 480 --rt -o v1.webm v1.yuv

HTH


Pruébalo con avconv :

avconv -i inmovie.mp4 -flags global_header -strict experimental outmovie.webm


ffmpeg -i input.mp4 -c: v libvpx -crf 10 -b: v 1M -c: una salida de libvorbis.webm

Por defecto, el valor CRF puede ser de 4 a 63, y 10 es un buen punto de partida. Los valores más bajos significan una mejor calidad.


MiroVideoConverter es un buen contenedor multiplataforma y de código abierto alrededor de ffmpeg, que, en particular, admite la conversión a WebM.


Para Linux: el software de código abierto disponible para usar vp8 y vp9 codec para linux es Arista para el escritorio de gnome. Google: Arista Transcoder

Para Windows y Linux: Miro Video Converter también es gratuito y de código abierto con una GUI muy elegante. Puedes comprobarlo en: Google: mirovideoconverter

FFMPEG es una herramienta de línea de comandos y me pareció la más actualizada para estar al día con el proyecto webmd. No olvide consultar las opciones de codificación vp8 que ofrece el sitio webmproject https://sites.google.com/a/webmproject.org/wiki/ffmpeg . También debe consultar la Guía de codificación VPX: trac.ffmpeg.org/wiki/vpxEncodingGuide

Otra publicación mencionó vpxenc.exe Sin embargo, vpxenc.exe necesita ser compilado por fuente.

FFMEG Usos de ejemplo: Reemplace {NPUT} y {OUTPUT} a la ubicación del archivo. En Windows 7 tuve que usar el Power Shell (Inicio> Accesorios> Windows Power Shell> Power Shell) y proporcionar la ubicación completa para ffmpeg, entrada y salida. Tenga en cuenta que el parámetro -vcodec libvpx usa VP8 por defecto. Para usar VP9 reemplace con -vcodec libvpx-vp9

WedmbSD

ffmeg.exe -i {INPUT} -s hd480 -vcodec libvpx -g 120 -lag-in-frames 16 -deadline good -cpu-used 0 -vprofile 0 -qmax 63 -qmin 0 -b:v 768k -acodec libvorbis -ab 112k -ar 44100 -f webm {OUTPUT}


Puedes usar ffmpeg para convertir a webm. Asegúrese de compilarlo con los --enable-libvpx y --enable-libvorbis (consulte las guías de compilación de FFmpeg ), o visite la página de descarga de FFmpeg para ver los enlaces a las compilaciones que incluyen soporte. Después de eso, puedes usar el siguiente comando (estoy usando input.flv como mi archivo de entrada de ejemplo):

ffmpeg -i input.flv -vcodec libvpx -acodec libvorbis output.webm

Para obtener información adicional, consulte la Guía de codificación de FFmpeg vpx (WebM) .