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) .