Video en gnu/linux
Qué se necesita
- debian multimedia repos
- cinelerra
- ffmepg
- mencoder
descargar videos de Youtube
Herramientas en firefox para descargar videos embebidos
- Download Helper
- Media Player Connectivity
procesar videos
Pasar videos a theora
lo mas recomendable (enero 2011), usar mencoder pasando de flv a un formato estandar, como DVD, haciendo el recorte o subtitulado, y luego comprimir al formato definitivo
mencoder-ss hh:mm:s -endpos hh:mm:ss \
-oac lavc -ovc lavc -of mpeg -mpegopts \
format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 \
-af lavcresample=48000 \
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000\
:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=4/3 \
-ofps 30000/1001 \
-sub subtitulos.srt -subfont-text-scale 3 -subpos 95 -utf8 \
-o temp_subtitulado.mpg Youtube-video.flv
# nota 1: el aspecto original para DVD es 16/9, pero aca lo llevamos a 4/3
# (ojo, aspect y tamaño (size) son cosas distintas, en el video los pixel
# se "estiran" con el aspecto)
# para llevar a 560px de ancho
# en 4/3 llevar a 630x420
con ffmpeg2theora
ffmpeg2theora origen.flv -x <ancho> -y <alto> -s <inicio segundos> -e <fin segundos> -v <video quality 0-10 0=max> -V <video bitrate en kb/s de 1 a 16778>
pasar a un formato DVD temporal, facil de procesar (sale un archivo pesado) con ffmpeg
ffmpeg -i Youtube-video.flv -target ntsc-dvd -aspect 4:3 temp.mpg
#nota: aspect depende del aspecto del video 16/9, o 4/3
o con mencoder y agregando subtitulos -> http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-vcd-dvd.html http://forums.debian.net/viewtopic.php?t=17783
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts \
format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 \
-af lavcresample=48000 \
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000\
:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=4/3 \
-ofps 30000/1001 \
-sub subtitulos.srt -subfont-text-scale 3 -subpos 95 -utf8 \
-o temp_subtitulado.mpg Youtube-video.flv
# nota 1: el aspecto original para DVD es 16/9, pero aca lo llevamos a 4/3
# (ojo, aspect y tamaño (size) son cosas distintas, en el video los pixel
# se "estiran" con el aspecto)
Formato para embeber theora/vorbis video html5 en mi blog
ffmpeg2theora temp_sub.mpg -x 560 -y 424 -V 1000 -o html5video.ogv
nota: -V 600 da como 5MB por minuto nota: 560px es el ancho del area principal de mi blog nota 2: por alguna razon, las dimensiones deben ser multiplos de 8 para theora
firefogg es un conversor a ogg con interfase gráfica que se instala como un plugin de firefox
más ejemplos con ffmepg
$ ffmpeg -i youtube.flv -vcodec libtheora -sameq -acodec vorbis -ab 128k -ar 44100 out.ogg
$ ffmpeg -i input.flv out_theora.ogg
# ojo! por defecto no usa vorbis para audio, puede usar flac
$ ffmpeg2theora input.avi
# output input.ogv
# con un .flv me da error!
Recortar un fragmento de tiempo
para marcar el inicio del recorte:
-ss 00:03:00
ó -ss 180
para marcar la duración del recorte:_
-t 00:12:00
ó -t 720
ejemplo, pasar de .flv a ogg solo 45 segundos desde el minuto 9
$ ffmpeg -i youtube.flv -ss 00:09:00 -t 45 -vcodec libtheora -sameq -acodec vorbis -ab 128k -ar 44100 out.ogg
Extraer Audio
$ ffmpeg -i Video_de_YouTube.flv -nv -acodec vorbis Just_The_Audio.ogg
controles de audio para ffmpeg
-aframes <number>
Set the number of audio frames to record. (??)
-ar <freq>
Define frecuencia de sampleo (default = 44100 Hz).
-ab <bitrate>
Define audio bitrate en bit/s (default = 64k).
-aq <q>
Define calidad del audio (depende del codec)
para vorbis
-aq 0 --> mala calidad
-aq 60 --> buena
-ac <channels>
Define numero de canales (default = 1, stereo = 2).
-an
Disable audio recording. (??)
-acodec <codec>
Define el codec:
ogg vorbis --> -acodec vorbis
-newaudio
Añade una pista nueva de audio. Si se desea
especificar parámetro, debe hacerse antes
de '-newaudio'. ejemplo:
ffmpeg -i file.mpg \
-vcodec copy \
-acodec ac3 -ab 384k test.mpg \
-acodec mp2 -ab 192k -newaudio
-alang code
Set the ISO 639 language code (3 letters)
of the current audio stream. (??)
Manuales de ffmpeg
Manuales Theora
Más recursos
- Muy buen recurso (en ingles) para HTML5a: Dive Into HTML5 by Mark Pilgrim -> sección video http://diveintohtml5.org/video.html
- Video/Audio Encoding Cheat Sheet http://rodrigopolo.com/ffmpeg/cheats.html
Embeber videos en HTML5
Ejemplo de código HTML5 para embeber video
<video controls>
<source type="video/ogg" src="path/to/video.ogg"></source>
<div>Tu navegador no soporta el elemento HTML5 estándar <samp>"video"</samp> para
reproducir video embebido en formato <a href="http://es.wikipedia.org/wiki/Ogg">ogg</a>
libre de patentes, estuviste flojo!
(<a href="http://www.mozilla-europe.org/es/firefox/">Actualizate</a> a Firefox 3.5!).<br />
Podés <a href="path/to/video.ogg">descargar el video desde aquí</a>.</div>
</video>
más actualizado (2012)
<video src="/ruta/a/video.ogg" controls poster="/ruta/a/imagenfija.jpg">
Lo siento, tu navegador no soporta este video embebido, puedes
<a href="/ruta/a/video.ogg">descargarlo dede aquí</a>.
</video>
opciones
autoplay
<video autoplay controls>
detalle de codecs (para theora/vorbis)
<source type="video/ogg; codecs="theora, vorbis"" src="source/video.ogg">
Eventos Javascript
ejemplo usando mootools
Agregar mootools en sección
<script type="text/javascript" src="ruta/a/mootools.js"></script>
Agregar
<audio src="musica.ogg" controls>
Su navegador no soporta el elemento <code>audio</code>.
</audio>
<a href="javascript:;" id="miboton">test-link</a>
tips de
'controls' muestra controles
'autoplay' ejecuta automaticamente
'autobuffer' carga el buffer de audio al incio
'loop' no implementado aun :(
código Javascript de ejemplo en
<script type="text/javascript">
<!--//--><![CDATA[//><!--
window.addEvent('domready', function() {
var musica = document.getElementsByTagName("audio")[0];
var boton = $("miboton");
boton.addEvents({
'mouseenter' : function() {
musica.play();
}
});
boton.addEvents({
'mouseleave' : function() {
musica.pause();
}
});
});
//--><!]]>
</script>
más info:
en developer.mozilla.org
- usando audio y video en firefox
<audio>
tag<video>
tag- Etiquetas audio y video en Firefox
- nsIDOMHTMLMediaElement
en camendesign.com
mas * Anieto2k: El elemento-audio del html5
subir videos por ftp
Partir videos en secciones
asi se facilita la subida por ftp
split (cortar)
$ split --bytes=[tamaño] [large_file] [prefix]
# ej:
$ split --bytes=2M video.ogg vid-
# produce vid-aa vid-ab vid-ac ... de 2 M cada uno
cat (unir)
$ cat prefix* > NEWFILENAME
Cinelerra
conversiones de formato aptos para cinelerra
El manual en español dice que lo ideal es NTSC estandar:
Video
- h.264 codec
- 720x480
- fps: 29.97
Audio
- aac mpeg2/4
- 44100
- 128
Conversiones
con ffmpeg
$ ffmpeg -i input_youtube_hq.mp4 -target ntsc-dvd -aspect 4:3 out_to_cinelerra_ok_import.mpg
con mencoder
de youtube flv a ntsc avi de 720x480
$ mencoder youtube_video.flv -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -vf scale=720:480 -oac mp3lame
indicando ademas fps (para ntsc 29.97)
$ mencoder youtube_video.flv -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -fps 29.97 -vf scale=720:480 -oac mp3lame
de youtube flv a ntsc avi de 720x480 solo una parte (cut)
$ mencoder youtube_video.flv -ss $inicio -endpos $duracion -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -vf scale=720:480 -oac mp3lame
nota: algunas veces los avi resultantes dan el "famoso" error virtual int FileMOV::read:frame(VFrame*): quicktime_read_frame/quicktime_decode_video failed
(este error tuvo consecuencias luego con los filtros de cinelerra)