PDA

View Full Version : [IRIX] Media Recorder


Uomo_ombra
08-02-2012, 22:12
Ciao a tutti,
ho un problema spinoso con il comportamento di Media Recorder sotto IRIX 6.5 su una macchina O2 (Silicon Graphics).

Quando Media Recorder è settato per registrare video via software (l'altra opzione, non usata, è via hardware), con output in .MOV, anche col frame rate più basso (circa 5 frame/secondo), se l'area di schermo da registrare viene estesa fino ad essere prossima alle dimensioni dello schermo (anche senza raggiungerle), Media Recorder si ferma una frazione di secondo dopo l'inizio della registrazione, senza dare messaggi di errore: semplicemente si ferma come se io avessi cliccato REC STOP, col risultato che non attengo il mio video... Se riduco l'area di registrazione, ma non di molto (rispetto alle dimensioni dello schermo), la durata di registrazione arriva a qualche secondo, non di più. Riducendo ancora, si riesce ad arrivare a durate di registrazione massima di qualche minuto, che corrispondono ad una dimensione del file .MOV di uscita di poche decine di MB. Quello che non capisco è perchè succeda questo, dato che sul disco ci sono parecchi GB liberi, e quindi non è un problema di "disk full"... :muro:

Grazie! :)

Gimli[2BV!2B]
08-02-2012, 22:42
Se non sbaglio è hardware della metà degli anni '90, senza l'aiuto dell'opzione hardware non credo abbia "cavalli" sufficienti per codificare in tempo reale un video e mostrarlo a video.

Il motivo per cui il problema si manifesti in modo così lineare in funzione della dimensione del video riprodotto potrebbe dipendere dal presentarsi del primo casuale istante in cui la codifica inizia a perdere fotogrammi.


Motivo per non utilizzare l'accelerazione hardware, che dovrebbe sfruttare un processore apposito?
Il formato mov che hai citato è un container, con che codec viene codificato il contenuto? C'è anche audio? Potresti utilizzare il codec video e audio più leggero disponibile (con il rovescio della medaglia che aumenterà lo spazio occupato per unità temporale, ma potresti trovare un buon compromesso).

Uomo_ombra
08-02-2012, 22:59
Sì, è effettivamente hardware della metà degli anni '90.
L'opzione "via hardware", se non sbaglio, non è disponibile (ma domani mattina comunque vado in ufficio e ti so dire meglio).
Lui non deve codificare E mostrare a video, deve codificare e generare il file di uscita, niente di più.

La durata massima del video non sembra affatto aumentare linearmente con la diminuzione dell'area di cattura: con un dimezzamento (a occhio e croce) di detta area, si passa da qualche secondo ad almeno 4 minuti (forse anche di più, non l'ho lasciato andare più avanti). Sembra che le cose si facciano molto critiche quando si è vicini alle dimensioni massime dello schermo, e migliorano parecchio appena ci si allontana.

Non c'è audio, registro solo il video.

Non posso toccare i codec perchè si tratta di un sistema particolare, una installazione customizzata: se qualcosa va a pallino saremmo nella :ncomment: profonda...

Gimli[2BV!2B]
08-02-2012, 23:46
Ah, scusa, avevo letto con distrazione ed ho capito ora che registra ciò che viene visualizzato.

Se mostra una progressione geometrica o più del tempo registrabile in funzione della dimensione delle immagini da codificare, mi farebbe anche pensare ad un possibile utilizzo anomalo della memoria durante la codifica. Però il programma che stai utilizzando mi sembra serio, quindi resta il mio sospetto di prima.
Potresti provare a controllare come evolvono i parametri di sistema con comandi come gr_osview (http://nixdoc.net/man-pages/IRIX/gr_osview.1.html)/osview (http://www.bga.org/~lessem/psyc5112/usail/man/irix/osview.1.html) o top.


Leggendo il manuale del software mi sembra di capire che la scheda di accelerazione sia un componente opzionale, quindi potrebbe non essere disponibile. (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_EndUser/books/MediaTls_UG/sgi_html/ch01.html#LE92098-PARENT)
Leggendo poi la sezione riguardante le impostazioni dei codec disponibili (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_EndUser/books/MediaTls_UG/sgi_html/ch01.html#LE16569-PARENT) vedo due formati made in mela mordicchiata: CinePak (pesante in codifica, piccolo in dimensione) e un generico Apple QuickTime Video (veloce e di dimensione media).
Potenzialmente interessante anche l'X advisor (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0650/bks/SGI_EndUser/books/MediaTls_UG/sgi_html/ch01.html#LE75309-PARENT).


Mi sembra di capire che non c'è molto spazio di manovra, potresti però almeno controllare come sono impostati i valori.

Uomo_ombra
09-02-2012, 00:09
Guardate, adesso filo a dormire perchè comincio a vedere due tasti al prezzo di uno :zzz: però domani appena arrivo al lavoro accendo lo stufone e vi so dire qualcosa in diretta, a quest'ora non mi fido molto della mia memoria... :ronf:

Uomo_ombra
09-02-2012, 12:11
Allora, innanzitutto GRAZIE MILLE per le dritte e per l'ottima documentazione su Media Recorder! :ave: già che c'ero, ho scaricato l'intero manuale di Media Tools ;) Poi, riguardo all'opzione "screen using O2 hardware", ho constatato che è sì attiva, ma non ti consente di scegliere le dimensioni del riquadro di cattura, cosa che per me è ovviamente cruciale. A questo punto, devo fare un bel po' di pazienti prove con tutte le varie opzioni disponibili, davanti a tutte l'X Advisor... Le immagini che devo riprendere io cambiano (vengono aggiornate) solo 1 volta al secondo, quindi dal punto di vista dell'"impegno" sarebbe una situazione molto rilassata per la macchina... se solo riuscissi a dirglielo! :(

Uomo_ombra
10-02-2012, 13:28
Allora, intanto ho fatto un'interessante scoperta, e cioè che il file temporaneo in cui viene registrata la cattura video, prima del "rendering", aumenta di dimensioni con una velocità impressionante (la documentazione mette in guardia su questo) e che guarda caso, la directory temporanea in cui Media Recorder va a scrivere questo file si trova sul più piccolo dei tre HD di cui è dotata la macchina, oltretutto lo stesso HD su cui c'è IRIX! Per cui la prima cosa che farò sarà cambiare la directory "scratch" e metterla su uno dei due HD da 16 GB, praticamente vuoti e felicemente disoccupati...

Rimane l'X Advisor. Sembrerebbe una opzione interessante, soprattutto nel mio caso, dato che le immagini che devo registrare si aggiornano solo 1 volta al secondo e con cambiamenti sempre minimali da un frame al successivo (sempre che abbia capito bene quello che fa l'X Advisor). Quello che non capisco è il perchè la casellina di spunta sia inattiva: non c'è il √ e non lo si può mettere!!! :mbe:

Gimli[2BV!2B]
10-02-2012, 20:47
Quel file temporaneo sembra molto promettente.
Sembra semplice definire un'altro percorso per i file temporanei, come spiegato in questa man più approfondita (http://nixdoc.net/man-pages/irix/man1/mediarecorder.1.html):mediarecorder makes use of temporary files when recording movies. By
default, the temporary files are placed in the current working directory,
except if the environment variable TMPDIR is set. If TMPDIR is set, the
temporary files are placed in the path named by TMPDIR.

Riguardo all'X advisor c'è questa precisazione:When you record from the screen using software, the X advisor is always
used as an intrinsic part of the recording process. Therefore, the
checkbox is disabled in the Custom Settings dialog. (http://nixdoc.net/man-pages/irix/man1/mediarecorder.1.html#SCREEN%20RECORDING%20AND%20THE%20X%20ADVISOR)

Uomo_ombra
10-02-2012, 21:04
Porca paletta mi era sfuggito l'X Advisor! OK, occhiali nuovi! :D
Il file temporaneo incrementa di circa 1 GB ogni 2 minuti per un'area di registrazione pari a circa 1/4 dello schermo :sofico: per cui l'idea di metterlo su un HD da 6 GB (su cui oltretutto c'è pure il S/O) non è proprio brillantissima... :doh: il percorso lo si può cambiare molto facilmente da Media Recorder stesso, ho già visto come si fa, quindi non è un problema. Piuttosto è un altro. Ossia, per rapido che sia l'incremento di quel file, ciò non spiega perchè il funzionamento di Media Recorder si blocchi pressochè istantaneamente non appena si inizia a catturare a tutto schermo. Il motivo dev'essere un altro. Sospetto che possa essere la mancanza di "cavalli" di cui parlavi. Ho provato a lanciare gr_osview, e sembra che anche con aree di cattura decisamente più piccole la CPU dia fuori di matto... Il guaio è che non so come fare a liberare ulteriori risorse (=potenza di calcolo) per cercare di non grattare il fondo durante la registrazione... :mc:

Gimli[2BV!2B]
10-02-2012, 21:46
Il file temporaneo incrementa di circa 2 GB/minuto per un'area di registrazione pari a circa 1/4 dello schermo
:sbavvv: pur usando pochissimi frame al secondo?

Hai letto la sezione ACHIEVING HIGH QUALITY VIDEO CAPTURES (http://nixdoc.net/man-pages/irix/man1/mediarecorder.1.html#ACHIEVING HIGH QUALITY VIDEO CAPTURES)?

Da notare quindi questa parte:HIGH SCHEDULING PRIORITY FOR VIDEO CAPTURE

When you record movies from live video using mediarecorder, it will
attempt to run its internal video recording threads at a very high
priority. It will also attempt to pin down physical memory buffers for
video capture.

Both of these actions help achieve optimal video captures. However, in
order to take advantage of these features, you must run mediarecorder as
the root user. If you do not run mediarecorder as the root user, it will
record video just fine, but at possibly reduced efficiency compared to
what it would achieve while running as the root user.

Uomo_ombra
10-02-2012, 22:00
Attenzione, c'era un errore nel mio post (che ho corretto probabilmente mentre scrivevi la risposta!), non sono 2 GB/minuto ma 1 GB/2 minuti... che è in ogni caso tantissimo! Il frame rate è il più basso, naturalmente: una cosa piuttosto curiosa è che pur selezionando 15 frame/secondo (che è appunto il minimo), il file .MOV generato riproduce a circa 5 frame secondo (il valore esatto è 5 punto qualcosa, adesso non ricordo perchè non ce l'ho qui, ma comunque è il valore che si legge facendo "Get movie properties" in QuickTime) e comunque l'azione del filmato si svolge alla velocità corretta... veramente strano. In ogni caso, anche 5 catture/secondo vanno più che bene per me.
Io credo di avere l'accesso al livello più alto, non ce ne sono mai stati altri che io sappia... comunque, al power-up non mi chiede nessun login con username/password, si avvia e basta... :eh:

Gimli[2BV!2B]
10-02-2012, 22:25
In caso di crisi di identità: whoami (http://nixdoc.net/man-pages/IRIX/whoami.1.html)

Sulle dimensioni resta una media altina, anche se realistica, ricordando gli avi non compressi e ragionando a risoluzioni più elevate dei video a risoluzione classica con cui giocavo anni fa.
Dovrebbe comunque permetterti di registrare una mezz'oretta sul disco da 16 GB; tra l'altro sembra sia possibile usare più cartelle temporanee.By default, mediarecorder uses only one temporary directory. It is
possible to specify more than one temporary directory for movie
recording. If you specify temporary directories on different disk
volumes, mediarecorder can record to multiple disks at once, increasing
the amount of video which can be written to disk. To do this, choose the
Set Scratch Disks command from the Options menu. Type or drop icons for
each temporary directory, then click the Add button. To remove a
directory from the list, select it and click Remove.Riguardo i frame/sec ipotizzerei che vengano creati mov a frame rate variabile. Non so se l'acquisizione avvenga già in questo modo sfruttando il famoso X Advisor o se sia fatta ai 15 che imposti e sia poi compressa sfruttando la staticità del contenuto (però ripensando al file temporaneo forse funziona proprio così).

Uomo_ombra
10-02-2012, 22:45
Interessantissima la possibilità di usare più di una directory temporanea! :sborone: In questo modo potrei utilizzare tutti e due i dischi da 16 GB che sono pressochè vuoti nonchè disoccupati (contengono solo poche decine di MB di dati a cui oltretutto il sistema non ha bisogno di accedere durante la registrazione).

Mi sta fumando il cervello... :wtf: facciamo così, ci riaggiorniamo a lunedì, tanto adesso non ho qui lo stufone per giocarci, farei solo congetture... Buon weekend, e grazie di tutto, sei stato preziosissimo! :ave:

Uomo_ombra
13-02-2012, 13:18
Ciao! :mano:
Allora, ho provato il "whoami", e mi ha risposto con quello che evidentemente è il mio username... ma come faccio a sapere se sono io il root user??? :what: Perchè a questo punto, in effetti, il dubbio sorge... :confused:

Gimli[2BV!2B]
13-02-2012, 20:11
Il fatto che l'utente non si chiami root lascia il dubbio, in questo caso controlla se è presente root nell'output del comando groups (http://www.bga.org/~lessem/psyc5112/usail/man/irix/groups.1.html)

Uomo_ombra
14-02-2012, 10:33
Ho fatto adesso la prova... l'output del comando "groups" è identico a quello del "whoami", cioè una singola parola (il mio username)... Che fo? :wtf:

Gimli[2BV!2B]
14-02-2012, 20:54
Nessuno ne sa nulla di questa macchina? Direi che non hai diritti amministrativi.

Prova a stampare a schermo (http://nixdoc.net/man-pages/IRIX/cat.1.html) il file /etc/shadow (contiene tutti gli utenti, relativi hash delle password e altre impostazioni importanti, protette alla vista di utenti normali):cat /etc/shadowMi aspetto ti risponda picche (tipo cat: /etc/shadow: Permission denied).

Per acquisire diritti root è disponibile su (http://nixdoc.net/man-pages/IRIX/man4/su.1.html). Se la password di root non è mai stata impostata dovresti riuscire a diventare root (puoi anche provare password ovvie come il nome dell'azienda, ecc...).


Per finire è anche possibile resettare la password in molti modi. Solitamente il modo più sicuro è accedendo alla modalità single, come accennato in questa vecchia discussione con link (http://it.narkive.com/2005/12/5/3278998-sigi-indigo2-e-irix-6-2-problema-password-di-root.html).
Certamente non ti consiglio di farlo se non con autorizzazione, oppure se necessario nel caso sia una macchina di tua proprietà: è improbabile crei problemi al sistema ma non si può escludere.

Uomo_ombra
15-02-2012, 11:11
:mad: come avevi funestamente ipotizzato, il pezzent...ehm, il sistema risponde "Permission denied" alla richiesta di stampare shadow... :mad:

Per quanto riguarda le autorizzazioni, io sono l'unica persona autorizzata a mettere le mani su questa macchina, però

Nessuno ne sa nulla di questa macchina?

Nessuno ne sa nulla... la situazione è per certi versi anomala, perchè io questa macchina l'ho "ereditata" dalla persona alla quale, prima di me, toccava fare quello che adesso devo fare io... però anche lui accedeva al sistema allo stesso modo di come accedo io (senza alcun login/password: l'unica password che il sistema richiede è allo shutdown), e anche lui, anzi lui per primo, si era scontrato col problema di Media Recorder, senza però riuscire a venirne a capo.

Quindi a questo punto... che fo? :wtf: Tento di trasformarmi magicamente in root user?... :mc:

Gimli[2BV!2B]
15-02-2012, 20:20
senza alcun login/password: l'unica password che il sistema richiede è allo shutdownIl comando shutdown (http://nixdoc.net/man-pages/irix/man1/shutdown.1.html) necessita di diritti amministrativi per poter essere eseguito (un utente normale non deve avere il diritto di spegnere una macchina importante): la password a cui hai accennato potrebbe essere quella che serve.

Lancia il comandosu -e prova ad utilizzare quella.

Se non dovesse funzionare potresti fare altri tentativi sperando nella fortuna: l'unico effetto di una password sbagliata è qualche secondo di attesa ed una riga temporanea nei log di sistema.

Se l'unica strada fosse la sovrascrittura della password sconosciuta potresti seguire il procedimento standard illustrato nella documentazione ufficiale (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0620&db=bks&fname=/SGI_Admin/books/IA_ConfigOps/sgi_html/ch10.html), però devi avere ben chiaro il procedimento ed anche la sequenza di comandi.

How to Enter the Command (PROM) Monitor (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0620&db=bks&fname=/SGI_Admin/books/IA_ConfigOps/sgi_html/ch10.html#id5466465)
Lanciare il comando single per avviare in modalità single user.
Una volta che il sistema si sarà avviato dovresti poter lanciare il comando passwd e sovrascrivere la password presente.
Riavviare con shutdown -y -i6
Devo però dire che in GNU/Linux è richiesta la password di root per poter accedere alla modalità single user, l'unico modo per scavalcare questo blocco è forzare l'esecuzione di un diverso processo come init. È probabile che non fosse così anni fa, perché trovo molti riferimenti alla cosa.

Purtroppo non posso sapere se il sistema sia anche dotato di una password PROM (http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0620&db=bks&fname=/SGI_Admin/books/IA_ConfigOps/sgi_html/ch10.html#id5469282) (per resettarla è probabile occorra agire su un jumper sulla scheda madre) né se sia esattamente uguale a quello illustrato in quella documentazione.

Uomo_ombra
15-02-2012, 22:13
Allora, dunque... la password è effettivamente quella di shutdown (non ci avevo fatto caso fino ad oggi, ma al momento dello spegnimento, quando chiede la password, nella finestra c'è proprio scritto "root" :D ), ho provato il comando "su -" e lo ha accettato al primo colpo :sborone: (ho visto che c'è anche la possibilità di invocarlo senza "-" ma non ho capito la differenza tra i due modi), quindi direi che per fortuna ho scampato tutta l'odissea della sovrascrittura password :tie:

Però, però... :mbe: prima di continuare, considera questo. Media Recorder viene lanciato da un'icona (link) che si trova nel Catalogo delle applicazioni multimediali. Io invece, il comando "su -" lo invoco dalla "system console", oppure ho visto che lo si può lanciare anche dalla "UNIX shell" (altra console). Siamo sicuri che nel momento in cui eseguo Media Recorder, il sistema "sappia" che io sono lo stesso tizio che, nella console, lui ora riconosce come root user, e che quindi anche Media Recorder venga eseguito come root user? C'è un modo per verificare questo sul campo? (anzi, sul desktop :asd: ) Ti sembrerà una domanda del cavolo, ma dato che questa è l'ultima cartuccia che ho per cercare di superare il problema di partenza con Media Recorder (oltre al cambio del volume dove fargli creare il file temporaneo) devo essere sicuro di quello che sto facendo... :eh: Mi spiego meglio: la mia perplessità nasce dal fatto che dopo essermi "trasformato" in root user, il sistema NON viene riavviato... cioè, quando lui si "sveglia", io per lui non sono ancora il root user, capisci?...

Gimli[2BV!2B]
15-02-2012, 22:46
su con argomento meno, -, carica l'ambiente (in particolare le variabili d'ambiente) dell'utente che si sta "impersonando".

Il tentativo più semplice per lanciare Media Recorder da root è tramite il comando mediarecorder da eseguire nella console root.
Occorre prima predisporre l'ambiente per permettere al programma di utilizzare il monitor :0 usando xhost (http://nixdoc.net/man-pages/irix/man1/xhost.1.html) ed esportando la variabile DISPLAY (tutte impostazioni temporanee, che non sopravviveranno alla chiusura del terminale, nel caso di DISPLAY o al riavvio come i diritti dati da xhost).
Se tutto funziona come in GNU/Linux dovresti riuscirci con questi comandi:xhost +
su -
export DISPLAY=:0
mediarecorder

Gimli[2BV!2B]
15-02-2012, 23:02
Mi son scordato di precisare che se il lancio andrà a buon fine quasi certamente le impostazioni del programma risulteranno differenti da quelle impostate per l'utente (probabilmente saranno quelle di default se non è mai stato lanciato con quell'utente), quindi controllale subito.

Altra cosa che ho notato informandomi sull'utente root in Irix è che sembra avere la sua home buttata piuttosto brutalmente nella radice del sistema (http://forums.nekochan.net/viewtopic.php?f=7&t=14322), /.
Ne consegue che eventuali piccoli file di impostazione del Media Recorder potrebbero finire salvati nella radice del sistema.

Uomo_ombra
15-02-2012, 23:04
Quindi, se ho ben capito, con quella sequenza di comandi, Media Recorder verrà sicuramente eseguito come "root", mentre non è detto che lo sia (dopo aver beninteso invocato "su -") se lo si lancia da icona... Domani faccio la prova. Ma, ripeto, c'è il modo per sapere se una applicazione viene eseguita come root o come utente normale? Il punto è che contemporaneamente a Media Recorder viene sempre eseguita un'altra applicazione, che è proprio quella che riproduce sul monitor le "azioni" che verranno poi "filmate" da Media Recorder. In pratica, questa applicazione è un video player OEM, che prende certi dati precedentemente forniti al sistema, e li trasforma in un video che viene riprodotto a schermo, con tutti i comandi (PLAY, PAUSE, REW, FF ecc) normalmente associati ad un video player. Media Recorder è il mezzo per poter "fissare" questo video ed esportarlo in un formato (MOV) su cui ci si possa poi lavorare.

Gimli[2BV!2B]
15-02-2012, 23:24
Per vedere i dettagli dei processi in esecuzione dovresti poter usare il comando ps (http://nixdoc.net/man-pages/IRIX/ps.1.html):ps -afPer vedere solo le righe che contengono la stringa mediarecorder:ps -af | grep mediarecorder(spero di non aver toppato la sintassi, visto che sembra un po' diversa da quella a cui sono abituato)

Preciso che usando su non si innalzano i diritti dell'intero desktop grafico a livello amministrativo.
Si apre solamente un nuovo terminale che consente di lanciare dal suo interno nuovi comandi che verranno eseguiti con i suoi diritti, tutto il resto resta invariato.

Uomo_ombra
16-02-2012, 00:02
...che Dio o chi per lui me la mandi buona... :sperem: e magari senza mutande, perchè qui mi sa che la botta di :ciapet: avrà il suo peso... Grazie di tutto anche per oggi, ci sentiamo domani o forse dopodomani (mi sa che domani avrò un lavoro molto più urgente di questo da fare).

Ciaoooo! :ronf:

Uomo_ombra
19-02-2012, 11:06
Ciao! :) Venerdì non ho avuto praticamente tempo per mettermi con lo "stufone", però una prova l'ho fatta, e cioè digitare la famosa sequenza

xhost +
su -
export DISPLAY=:0
mediarecorder

e purtroppo alla terza linea ho avuto un messaggio di errore perchè non riconosceva il comando (terminava con "not found", mi pare che fosse proprio "command not found"). :(
Adesso, prima di andare avanti, voglio rileggere con calma i post passati per fare un attimo il punto della situazione. Certo che la cosa migliore sarebbe che io potessi fare un login come root user ad inizio di sessione, in modo che tutto quello che faccio dopo sia come root... ma il cornuto non ha mai chiesto il login all'avvio! :mad:

A presto...

Gimli[2BV!2B]
19-02-2012, 14:36
Non esiste export? Si tratta di un comando basilare per dichiarare una variabile di ambiente che verrà condivisa con eventuali shell figlie.
Puoi provare a spezzarla in dichiarazione ed esportazione:xhost +
su -
DISPLAY=:0
export DISPLAY
mediarecorderSe ci fossero comunque problemi mi serve sapere che shell stai usando, cioè l'output del comando echo $SHELL

Per il login automatico ci sono troppe variabili che non conosco. Posso riportarti questa discussione che ha una risposta che sembra concisa e precisa. (http://www.tek-tips.com/viewthread.cfm?qid=365675)

Uomo_ombra
21-02-2012, 11:55
...settimana ingolfata al lavoro... :incazzed: impossibile mettermici almeno per altri 2-3 giorni... :( ti faccio sapere appena riesco...

Uomo_ombra
02-03-2012, 12:55
Ciao! Finalmente un po' più di calma... :)
Allora, la riga che dà l'errore è proprio

DISPLAY=:0

uhm...

Uomo_ombra
02-03-2012, 14:34
Ah dimenticavo... :doh: l'output di echo $SHELL è

/usr/bin/tcsh

Gimli[2BV!2B]
02-03-2012, 20:45
In tcsh si usa questa sintassi: (http://www.cyberciti.biz/faq/freebsd-how-to-export-shell-variable/)xhost +
su -
setenv DISPLAY :0
mediarecorder

Uomo_ombra
20-04-2012, 13:39
Ciao! :)
Allora, dopo tanto fare e forcare, ti aggiorno sul mio problema...
Dunque, loggandomi come root user, non importa come, NON RIESCO a vedere l'applicazione (il famoso "player OEM") per riprodurre i video che poi dovrei registrare col Mediarecorder, per cui a quel punto lanciare Mediarecorder sarebbe perfettamente inutile dato che non c'è niente da registrare :(
Però, però... il semplice espediente di cambiare, nelle opzioni di Mediarecorder, il folder in cui viene generato il file provvisorio (scratch), da quello originale che si trovava nel HD più piccolo ai due HD più grandi e vuoti, nonchè di DISABILITARE la registrazione dell'AUDIO :doh: (averci pensato prima!) mi ha consentito di fare un salto gigantesco nella durata massima registrabile, per cui già con questo sarei QUASI contento...

Dico "quasi" perchè c'è un limite che non riesco a sfondare, e cioè la dimensione massima dell'area di schermo che riesco a registrare. Quando mi avvicino alle dimensioni massime, lasciando però fuori circa 3 cm per ogni lato (monitor da 21") la durata max di registrazione visualizzata da Mediarecorder è adesso di circa 1h 05'. Aumentando di poco l'area di cattura, Mediarecorder va in errore appena parte la registrazione. Il che mi fa pensare all'insufficienza di "cavalli" di cui mi parlasti subito all'inizio... :(

Adesso, ci sono 2 distinti aspetti su cui, credo, sia ancora possibile agire, per lo meno in teoria, però dovrei riuscire a capire se e come.

1) Il frame-rate del video. Le immagini da registrare col Mediarecorder si aggiornano solo 1 volta al secondo, per cui anche un frame-rate di ripresa bassissimo andrebbe più che bene, e ridurrebbe alla grande il carico di lavoro del processore. Però qui c'è una incongruenza. Il video .MOV finale generato da Mediarecorder viene riprodotto con un frame-rate di 5.84 frame/secondo (si visualizza in QuickTime con Movie|Get Movie Properties, poi scegliendo Video Track/Frame Rate), il che andrebbe benissimo per me, SE NON CHE in Mediarecorder, il frame-rate di registrazione più BASSO che si può scegliere (e che è quello che ovviamente scelgo io) è di 15 frame/secondo! Ora io non capisco per quale motivo io seleziono 15 (non avendo di meno) e lui mi genera un 5.84, che lo ripeto, a me va benissimo, però ho la sensazione, non so se giusta o no, di stare sprecando risorse per acquisire a una velocità quasi 3 volte più alta di quella del "prodotto finito"!

2) La codifica del colore. Sempre in QuickTime, con Movie|Get Movie Properties, e quindi scegliendo Video Track/Format, si legge "Colors: Millions", il che mi fa pensare che il colore sia codificato a 32 bit. Ora, le immagini in movimento che devono essere catturate da Mediarecorder, hanno la semplice palette di colori GIF, ossia a soli 8 bit... È evidente che se io potessi dire a Mediarecorder di codificarmi i colori con soli 8 bit anzichè 32, non solo ridurrei ulteriormente la dimensione del file di uscita (3 byte in meno a botta! Buttali via!) ma ridurrei anche l'impiego di risorse per codificare il colore con una risoluzione molto più bassa rispetto all'attuale, tutto ciò senza nessuna perdita qualitativa dell'immagine finale che non ne risentirebbe minimamente! Ma anche qui dovrei capire come fare... :help:

Gimli[2BV!2B]
20-04-2012, 22:46
Dunque, loggandomi come root user, non importa come, NON RIESCO a vedere l'applicazione (il famoso "player OEM") per riprodurre i video che poi dovrei registrare col Mediarecorder, per cui a quel punto lanciare Mediarecorder sarebbe perfettamente inutile dato che non c'è niente da registrareMa xhost non funziona proprio? Teoricamente in quel modo dovresti accedere al desktop come utente normale e lanciare solo e esclusivamente il processo mediarecorder con diritti di root.
Dovresti quindi poter avviare normalmente il player OEM ed utilizzare il mediarecorder con super poteri per registrare quel che fa.


Temo che i 6 scarsi che ottieni siano il minimo. Probabilmente in buona parte del video il frame rate sarà vicino al singolo frame per secondo che citi, però potrebbe salire in caso di transizioni interpretate come movimento dal codec video...
Apparentemente mediarecorder supporta tre spazi di colore: xbgr, xrgb, yuv422.
yuv422 dovrebbe memorizzare le informazioni di 2 pixel con 4 byte: 16 bit per pixel invece dei 24 di xbgr ed xrgb.
Non ho però trovato traccia di questa impostazione nell'interfaccia (l'ho letta nella man del comando (http://nixdoc.net/man-pages/irix/man1/mediarecorder.1.html)) ma soprattutto temo valga solo per il file prodotto finale, non per il famoso file temporaneo.
Temo anche che la conversione possa aggiungere calcoli che non aiuterebbero...
Ultima idea: riuscire ad avviare il desktop a 16 bit o meno, cosa che potrebbe costringere mediarecorder a registrare alla profondità di colore disponibile (se è in grado di farlo).

Uomo_ombra
04-05-2012, 09:08
"Avviare il desktop a 16 bit o meno"?!? MAGARI!!!! :rolleyes:

...ma come si fa?... :confused:

Gimli[2BV!2B]
04-05-2012, 21:28
Ho trovato vari riferimenti alla cosa, al solito bisogna avere la certezza di essere in grado di tornare indietro in caso di problemi...


Changing Colour Depth (http://software.majix.org/irix/desktop-depth.shtml) (questa sintassi delle opzioni è quella che ho riscontrato nella documentazione più recente)
How can I make my X Server use a 12-bit PseudoColor, 12- bit TrueColor or 24-bit TrueColor visual by default? (http://www.faqs.org/faqs/sgi/faq/graphics/section-71.html) (07 May 1993, da prendere con le pinze)
Discussione che va a finire sulle profondità di bitmap supportate da un O2 (http://forums.nekochan.net/viewtopic.php?f=7&t=745)

Queste sono le modalità che dovresti avere disponibili anche sul tuo O2 (salvo hardware video differente dall'O2 dell'utente di quel forum): visual:
visual id: 0x20
class: PseudoColor
depth: 8 planes
available colormap entries: 256
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x21
class: PseudoColor
depth: 8 planes
available colormap entries: 256
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x22
class: StaticColor
depth: 8 planes
available colormap entries: 256
red, green, blue masks: 0xe0, 0x1c, 0x3
significant bits in color specification: 8 bits
visual:
visual id: 0x23
class: TrueColor
depth: 8 planes
available colormap entries: 8 per subfield
red, green, blue masks: 0xe0, 0x1c, 0x3
significant bits in color specification: 8 bits
visual:
visual id: 0x24
class: TrueColor
depth: 8 planes
available colormap entries: 8 per subfield
red, green, blue masks: 0xe0, 0x1c, 0x3
significant bits in color specification: 8 bits
visual:
visual id: 0x25
class: PseudoColor
depth: 8 planes
available colormap entries: 256
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x26
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x27
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x28
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x29
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x2a
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x2b
class: PseudoColor
depth: 12 planes
available colormap entries: 4096
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits
visual:
visual id: 0x2c
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x2d
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x2e
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x2f
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x30
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x31
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x32
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x33
class: TrueColor
depth: 15 planes
available colormap entries: 32 per subfield
red, green, blue masks: 0x7c00, 0x3e0, 0x1f
significant bits in color specification: 8 bits
visual:
visual id: 0x34
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff, 0xff00, 0xff0000
significant bits in color specification: 8 bits
visual:
visual id: 0x35
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
visual:
visual id: 0x36
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
visual:
visual id: 0x37
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
visual:
visual id: 0x38
class: TrueColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits
visual:
visual id: 0x39
class: DirectColor
depth: 24 planes
available colormap entries: 256 per subfield
red, green, blue masks: 0xff0000, 0xff00, 0xff
significant bits in color specification: 8 bits

Uomo_ombra
10-05-2012, 14:13
C'è un problema, e non da poco... il famoso file

/usr/lib/X11/xdm/Xservers

nel mio sistema non c'è... per essere preciso, 1) non esiste una cartella xdm e 2) in tutto il disco non esiste nessun file di nome Xservers.

Anche un'altra cosa.
L'output di xdpyinfo, in mezzo a tante belle cose, mi dice che per lo schermo di default (screen #0), il default visual id è 0x20, il quale, secondo quanto appare appena più sotto, corrisponderebbe a:

visual id: 0x20
class: PseudoColor
depth: 8 planes
available colormap entries: 256
red, green, blue masks: 0x0, 0x0, 0x0
significant bits in color specification: 8 bits

cioè ad una visualizzazione che sarebbe già a 256 colori, o sbaglio?...
Però, visualizzando a schermo il famoso diagramma di cromaticità CIE, ho comprovato senza ombra di dubbio che il display sta lavorando con MOLTO più di 256 livelli di colore, non so se 65535 o milioni, ma di sicuro non 256... quindi sembrerebbe esserci una incongruenza, se non ho capito male... :confused: