User avatar
ulysess
Posts: 305
Joined: Thu Aug 02, 2012 6:35 am
Location: Spain
Contact: Website

Grabar audio y video desde Bash o Python

Fri Feb 14, 2014 11:44 am

Tengo un micrófono USB y la Raspicam. Me gustaría grabar a la vez el audio y el vídeo para un proyecto. Me da igual hacerlo desde la terminal con un script o con Python y el uso de alguna librería.

Lo que estoy haciendo es grabar por un lado el audio con arecord y por otro el video con raspivid.

¿Alguna idea?
Mis apuntes de...Raspberry Pi: http://misapuntesde.com
Google Docs RPi: http://goo.gl/Iwhbq

blamarpa
Posts: 454
Joined: Thu May 23, 2013 4:02 pm
Location: España

Re: Grabar audio y video desde Bash o Python

Mon Feb 17, 2014 1:21 pm

No tengo micrófono pero sabiendo que raspivid nos da un churro h264 y que ffmpeg admite origenes de audio y video distintos para generar un fichero, entiendo que no sería dificil que ffmpeg lo hiciera diciéndole que capture el video de uno y el audio de otro con algo así (no lo he probado):

Code: Select all

raspivid -t 10000 -w 640 -h 480 -fps 25 -b 0 -qp 30 -o - | ffmpeg -i - -vcodec copy -f alsa -i default --acodec libmp3lame -ab 128k -ar 48000 -ac 2 video.avi
Esto para grabar un video de 10 segundos a 640x480 con vbr tomado de la cámara y sin tocar el h264 para que la cpu no tenga que trabajar, y el audio del canal por defecto de alsa en estereo de 16 bits a 48khz, pasado a mp3, 128k de bitrate.

No lo he probado, esta tarde lo hago (tendré que poner a reproducir algo para sacar el audio). Ya comentaré si consigo algo.
Para tirar del micro, entiendo que tendrías que saber el número del canal en alsa del mismo.
ffmpeg puede ser muy complicado y hay que hacer pruebas hasta conseguir la mejor calidad sobre todo con maquinas que andan justitas como esta. Habrá que probar primero sin el audio y luego con él para comprobar cuanto penaliza y que codec y formato dan los mejores resultados.

Probado me da error pues no tengo ningún canal en alsa para grabación,
lo único que puedo hacer es grabar el video con sentencias como:

Code: Select all

 raspivid -t 10000 -w 640 -h 480 -fps 25 -n -b 500000  -o - |  avconv -i - -vcodec copy  /var/www/images/video.avi
Ahora que... tendré que buscar el bigote y el sombrero de Charlot porque se me desmadran los cuadros por segundo.

Rine74
Posts: 2
Joined: Mon Jul 16, 2018 5:31 am

Re: Grabar audio y video desde Bash o Python

Thu Jul 19, 2018 7:55 am

No. There is no single library/solution in python to do video/audio recording simultaneously. You have to implement both separately and merge the audio and video signal in a smart way to end up with a video/audio file. Telldunkin Donuts

I got a solution for the problem you present. My code addresses your three issues:

  • Records video + audio from webcam and microphone simultaneously.
  • It saves the final video/audio file as .AVI
  • Un-commenting lines 76, 77 and 78 will make the video to be displayed to screen while recording.

My solution uses pyaudio for audio recording, opencv for video recording, and ffmpeg for muxing the two signals. To be able to record both simultaneously, I use multithreading. One thread records video, and a second one the audio. I have uploaded my code to github and also have included all the essential parts it here.

Return to “Español”

Who is online

Users browsing this forum: No registered users and 2 guests