[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux_var] De mplayeribus smadonnibus [WAS: (Software per) webcam decente?]
Il giorno 16/apr/09, alle ore 16:44, Luca Lesinigo ha scritto:
Registro il video senza problemi con mplayer (tv:// -tv
driver=v4l2) ma non sono ancora riuscito a far registrare
contemporanemente anche l'audio (il driver v4l2 di mplayer
dovrebbe, teoricamente, poter prendere l'audio da un dispositivo
ALSA) nonostante una robusta dose di RTFM ed una ancor più robusta
dose di smadonnamenti. Qualcuno ha mai registrato audio e video
insieme con mplayer/mencoder ed il driver v4l2?
Nevermind, oggi ci sono riuscito.
Dopo aver lasciato da parte manuali, ragionamenti, indagini varie,
ho praticamente cominciato a scrivere commandline a casaccio e alla
fine ho azzeccato la registrazione anche dell'audio :D
La faccenda si sta contorcendo un po' su sé stessa, per questo ho
pensato di sottoporvela più in dettaglio, magari qualcuno ha un'idea
brillante o magari sarà semplicemente un'interessante lettura :D
Background: tutte le prime prove sono state fatte con Easy Peasy 1.0
(in pratica Ubuntu 8.10, kernel 2.6.27-8-eeepc, mplayer-1.0-
rc2-0ubuntu17+medibuntu1), in seguito sono passato ad usare il sistema
che mi sono preparato io (basato su Gentoo Linux, kernel 2.6.29-gentoo-
r1, mplayer-1.0_rc2 snapshot del 22/3/2009, tutto compilato con flag
ottimizzati).
Non che questo sembri cambiare gran che visto che quanto segue accade
con entrambi i sistemi.
La webcam onboard dell'EEE701 è una USB Video Class e quindi utilizza
il driver uvcvideo, interfaccia V4L2. Sembra che il driver riesca ad
uscirsene nei formati UYVY ed YUYV (il secondo è chiaramente un
semplice byte shift). La webcam di test che uso è una Logitech E1000,
driver gspca_zc3xx, interfaccia V4L2, output in formato 422P (yuv422p)
Per vedere/registrare uso mplayer/mencoder col driver v4l2 (tv:// -tv
driver=v4l2:opzioni...) - il suddetto driver prevede la possibilità di
prendere l'audio da una fonte ALSA, e sfrutto questa cosa per
registrare l'audio dal microfono del pc (la webcam non ha microfono).
Infine, da test vari fatti l'unico codec praticabile per registrare in
tempo reale è MJPEG - per l'audio uso MP2 che va benone (e non mi
serve chissà quale qualità). La command line è una roba del genere:
$ mencoder tv:// -o file.avi -tv
driver=v4l2:forceaudio:alsa:audiorate=48000 [.....]
Ho stabilito di quale framerate dovrebbero essere capaci le webcam
(sia quella dell'asus, per le prove, sia la E1000 che sto testando
sulla moto) provando vari setting di bitrate (:fps=XX nel driver v4l2)
fino a che nelle statistiche finali non tornavano i conti (fps * tempo
= numero_frames_totale). Salta fuori che per la E1000 abbiamo due
scelte: 320x240 con un massimo effettivo di 11.5fps, oppure 640x480 a
6.3fps.
Passato tutto il malloppone di info, veniamo ai miei due problemi:
1) con la webcam dell'EEE tutto ok come sopra, ma quando uso la E1000
mplayer/mencoder crashano (Floating Point Exception) a meno che non
disattivo la registrazione dell'audio! Mi tocca registrare l'audio a
parte (uso arecord | twolame). Ricordo che capita sia con ubuntu che
con gentoo, ho provato anche a compilare mplayer senza ottimizzazioni,
etc etc.
2) il video prodotto con la E1000 settata a fps=11.5 non è a velocità
costante, il framerate reale varia durante la ripresa in particolare
quando c'è movimento nella scena
Sviluppi futuri:
- credo e spero di risolvere entrambe le cose in un colpo solo quando
arriva la S7500 (che produce nativamente MJPEG)
- vorrei comunque far andare la E1000 (è anche una questione di
principio! non può averla vinta!) e qui ho due ipotesi:
-- una è che se riuscissi a registrare insieme audio e video avrei il
"tempo" giusto quando riproduco (anche se il framerate variasse
chissene, ma almeno un minuto di file corrisponderebbe ad un minuto di
wall clock :D) a causa dell'interleaving e/o sync tra i flussi audio e
video
-- l'altra, fin che non risolvo la parte audio, è provare ad usarla ad
un framerate più basso di quello che riesce a produrre (d'altra parte
i miei test sono stati fatti su scene quasi statiche) e vedere se così
"ci sta dietro"
Domande:
- ma non esiste nessun altro canchero di software per registrare video
da V4L2 (con formati vari da riconvertire in MJPEG) ed audio da ALSA?
chiaramente da console.
- idee per il problema audio+video in mplayer/mencoder ?
Ciao a tutti ;)
--
Luca Lesinigo
--
Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
Archivi web e configurazione: http://ml.linuxvar.it/ml/