Visualizzazione post con etichetta smartphone. Mostra tutti i post
Visualizzazione post con etichetta smartphone. Mostra tutti i post

giovedì 23 aprile 2009

ffmpeg+ "Seems stream 0 codec frame rate differs from container frame rate"

Incredibile, dopo mezz'ora di tentativi ho scoperto che il problema era che il file di input era in audio 5.1 .. dico "incredibile" per il fatto che l'errore di ffmpeg di certo non aiutava, per cui non ho ben capito come ho fatto a risolverlo.. cmq il comando che uso ora per fare l'encoding di filmati per lo smartphone (che spiegavo qui) è diventato:

ffmpeg -i $input -s qvga -vcodec wmv2 -r 25k -acodec wmav2 -ar 22050 -ab 64k -ac 2 $output.wmv


con l'aggiunta di ac 2 per forzare la modalità stereo..

domenica 8 marzo 2009

Va bene scrivere libri, ma bisogna anche saper distribuirli..

Piccola nota polemica verso il libro Producing Open Source.. o meglio, verso chi ha deciso come distribuirlo..
Infatti dopo aver letto i commenti positivi espressi su Coding Horror ho deciso di leggerlo.

Prima una digressione:
Da tempo ormai il poco che riesco a leggere è in forma di file chm decompilato da visualizzare splendidamente sullo smartphone durante i miei allegri spostamenti da pendolare.

Il motivo è che il formato pdf è scomodo. Infatti è vero che esiste il formato tagged pdf, per permettere il reflow (aumentando lo zoom la riga va a capo), ma i visualizzatori che li supportano sono a pagamento oppure non sono compatibili col mio smartphone. Per cui il dover continuare a fare lo scroll orizzontale per leggere la riga, poi tornare indietro per la riga successiva mi avrebbe fatto passare la voglia di leggere qualunque cosa.

La soluzione mi è venuta in mente quando avevo tra le mani un file in formato chm che mi interessava. Dopo aver cercato un viewer, ho pensato di affrontare il problema da un altro punto di vista: decompiliamolo.

Quindi ho apt-get installato arCHMage e ho iniziato a decompilare i chm, mettendo poi le cartelle contenenti i file html direttamente sullo smartphone. Si vedono bene, nel senso che si riesce a fare uno zoom adeguato e la riga va a capo per cui c'è da fare solo lo scroll verticale di tanto in tanto.

Da quando ho iniziato a sfruttare in questo modo il tempo perso sui mezzi pubblici ho sofferto meno l'infelice decisione di prendere questo smartphone..

Comunque il libro in questione (Producing Open Source Software) è disponibile gratuitamente in queste modalità:
* paginona singola online (credo che mi bloccherebbe lo smartphone per 10 minuti circa per caricarlo)
* multi-pagine online (perfetto, quello che voglio, c'è anche un archivio da scaricare con queste pagine?)
* pdf
* formato RocketBook (ho dovuto cercare in rete per capire che era un antenato del kindle)
* oppure tar.gz da 11MB con dentro pdf, sorgenti docbook, file per rocketbook, html singolo e html multi-pagina il tutto in 20 lingue diverse .. e per fortuna che non ho voluto lo zip, che supera 20MB ..

eh cazzo, avrei fatto prima a fare un download automatico con wget ..

Per altro ho dovuto modificare il css, che creava dei margini di 130px a destra e 130px a sinistra.. per uno schermo di 320px di larghezza non era proprio ottimale..

domenica 28 settembre 2008

FFmpeg per video su smartphone windows mobile 6

Oggi ho deciso di perdere qualche decina di minuti nel secondo round di uno scontro che avevo abbandonato tempo fa..

Infatti ho deciso di riprendere in mano ffmpeg e fare un secondo tentativo per capire come adattare i video per il dannato smartphone windows-based (quanto mai, ne ho dovuto effettuare un terzo hard reset in circa un anno..).

Comunque, dato che ormai lo sto pagando (visto che fa parte del contratto business) ogni tanto mi viene in mente di sfruttarlo il più possibile (vedi la voce su liferea hacking).

Su debian bisogna aggiungere prima di tutto il repository debian-multimedia, per avere più facilmente codec aggiornati/proprietari e software compilati in modo ottimale per certe operazioni.
Per la cronaca, installare ffmpeg da debian-multimedia manderà a puttane vlc.

Detto questo, ecco il comando che sto attualmente usando per effettuare l'encoding di un video qualsiasi in modo da poterlo vedere/sentire sullo smartphone:

> ffmpeg -i $input -s qvga -vcodec wmv2 -b 128k -r 24 -acodec wmav2 -ar 22050 -ab 64k $output.wmv

Quindi:
* dimensione: qvga, cioè 320*240
* video: wmv2 (la mia versione non ha wmv3) a 128kbps con 24 frame al secondo
* audio: wmav2 (si potrebbe provare mp3 o msmpeg4, ma la mia versione non li supporta, per cui per ora mi accontento) con audio sample rate 22050Hz e bitrate 64kbps)

$input può essere qualsiasi tipo di filmato supportato (quindi .mov . avi..) mentre $output è meglio che sia un .wmv, così il vostro amato smartphone eviterà di rompere troppo..

Per dare un'ordine di grandezza dell'output, ho fatto l'encoding di un .avi di 20 minuti da 160 MB:

> Duration: 00:20:30.00, start: 0.000000, bitrate: 1090 kb/s
> Stream #0.0: Video: mpeg4, yuv420p, 576x432 [PAR 1:1 DAR 4:3], 29.97 tb(r)
> Stream #0.1: Audio: mp3, 44100 Hz, stereo, 128 kb/s


ed il risultato è stato un file da 31MB.
Sicuramente c'è ancora margine di miglioramento, a partire dai codec audio, ma per ora è sufficiente così! :)

venerdì 9 maggio 2008

Audio e video per windows media player 10 mobile

Sto bestemmiando con ffmpeg per convertire un po' di filmati in un formato ottimale da visualizzare sullo smartphone, quindi procedo con qualche appunto sparso.
i formati supportati sono:
Windows Media Audio (WMA), Windows Media Video (WMV) e MP3

mentre dalla documentazione pare che i codec supportati siano:
Microsoft Windows Media Video codec versions 7, 8, and 9.
Microsoft Windows Media Video 9 Image codec versions 1.0 and 2.0.
Microsoft MPEG-4 codec version 2.0 and 3.0.
ISO MPEG-4 video codec version 1.0.

Ovviamente la mia versione di ffmpeg, da quello che ho visto, non supporta NESSUNO di questi codec.. è compilato in modo un po' troppo restrittivo, quindi dovrò lavorarci un po'.

per quanto riguarda la risoluzione, invece, dipende dal dispositivo. Il mio, per esempio, è in 320x240, risoluzione anche conosciuta come qvga (un quarto di VGA), per cui ad ffmpeg va passata l'opzione -s qvga.

Alla prossima