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

mercoledì 6 maggio 2009

Canonical, perchè? DTube v0.3

Il motivo per cui Canonical cambia i nomi dei pacchetti nei repository alla cazzo mi è proprio misterioso? Già, mi devono proprio spiegare per quale motivo nel giro di sei mesi il libavcodec51 è diventato libavcodec52, costringendo così chiunque a farsi in quattro se si voglion configurare anche solo due cosette...

Comunque tutto a posto, oggi ho lavorato un po' su DTube, ho riordinato alcune cose:
+ Conversione in ogg (audio)
+ Risolti i download in eccesso (404 - Not Found)
+ Introdotto l'help
+ Download del solo flv
+ Conversione in wav
+ Rivisti codec da utilizzare e dipendeze (tolto VLC)
+ Conversione in avi (video)
+ Conversione in mp4 (video)
+ Introdotto riconoscimento errori di input
+ Eliminato output di wget
Alcune note:
- Gli ogg audio escono enormi
- Non c'è ancora alcuna ottimizzazione
- Non essendoci alcun tipo di debug è difficile comprendere i problemi

Da qui riprendo a scrivere oggi, Giovedì 7. Dicevo, la cosa più importante è aver risolto il problema delle dipendenze e dei codec, a tal proposito metto a disposizione i deb per semplificare l'installazione sia per Jaunty che per Intrepid, se riesco anche per Hardy (perchè mi aspetto roba come libavcodec50). Di seguito vi lascio lo script, ricordandovi che se volete il deb dovete chiedermelo via mail:
#!/bin/bash
# DTube 0.3
echo "Sto raccogliendo le informazioni necessarie..."
wget -q $3 -O .youtube-spl.htm 1> /dev/null
nome=$4
temp=".tmp.flv"
url_base="http://youtube.com/get_video.php?"
DOWNLOAD () {
if [[ -d .dtube ]]
then
echo " "
else
mkdir .dtube
fi
mv .youtube-spl.htm .dtube
cd .dtube
video=$(cat .youtube-spl.htm | grep -i fullscreenurl | cut -d "/" -f2 | cut -d "'" -f1 | cut -d " " -f1)
end=${url_base}${video}
echo "Download del video in corso..."
wget -q ${end} -O ${temp}
}

RMTEMP () {
cd ..
rm -rf .dtube
}

case $1 in
-a | --audio )
DOWNLOAD
case $2 in
mp3 )
ffmpeg -i ${temp} ../${nome}.mp3
;;
ogg )
ffmpeg -i ${temp} -vn ../${nome}.ogg
;;
wav )
ffmpeg -i ${temp} ../${nome}.wav
;;
* )
echo "Errore! Devi indicarmi anche il formato!"
exit
;;
esac
RMTEMP
;;
-v | --video )
DOWNLOAD
case $2 in
ogg )
ffmpeg -i ${temp} ../${nome}.ogg -acodec libvorbis
;;
mpg )
ffmpeg -i ${temp} ../${nome}.mpg
;;
-d | --download-only )
mv ${temp} ../${nome}.flv
;;
mp4 )
ffmpeg -i ${temp} ../${nome}.mp4
;;
avi )
ffmpeg -i ${temp} ../${nome}.avi
;;
* )
echo "Errore! Devi indicarmi anche il formato!"
exit
;;
esac
RMTEMP
;;
-h | --help )
cat /usr/share/doc/dtube/help
;;
* )
echo "Errore, non so su cosa lavorare!"
exit
;;
esac
Come vedete rimane sempre una cosa molto semplice, per alcuni versi molto simile a script già esistenti, che appoggia il suo funzionamento solamente su ffmpeg. L'help non è disponibile se non si installa da deb, comunque ve lo lascio di seguito:
Uso: dtube [opzione] [formato] [indirizzo del video] [nome del file]

-a, --audio Viene importato il solo audio
mp3 Il file finale sarà in formato mp3
ogg Il file finale sarà in formato ogg
wav Il file finale sarà in formato wav
-v, --video Viene importato l'intero video
ogg Il video sarà in formato ogg
mpg Il video sarà in formato mpg
mp4 Il video sarà in formato mp4
avi Il video sarà in formato avi
-d, --download Il video viene scaricato, ma non convertito
-h, --help Viene stampato questo help

Per segnalare errori, richiedere features o collaborare contattare
Simone Cavalcanti all'indirizzo spillo.gle@gmail.com
Comunque oggi vorrei apportare alcune modifiche alla struttura del lavoro e rendere il tutto un po' più standard, vedo cosa riesco a fare, vorrei infatti anche inserire i log e togliere l'output anche di ffmpeg. Ciau e buona giornata

martedì 5 maggio 2009

Prima panoramica su DTube (rel. 0.2)

Volevo editare il precedente post, anche per rispondere ad Alex, ma preferisco farne uno nuovo in modo da presentare anche lo script.


Lasciamo stare per un attimo il logo che è naturalmente temporaneo e andiamo a visualizzare lo script in sè, per lo meno ciò che è ora:
#!/bin/bash
wget $3 -O .youtube-spl.htm
nome=$4
temp=".tmp.flv"
url_base="http://youtube.com/get_video.php?"
DOWNLOAD () {
mkdir .dtube
mv .youtube-spl.htm .dtube
cd .dtube
video=$(cat .youtube-spl.htm | grep -i fullscreenurl | cut -d "/" -f2 | cut -d "'" -f1)
end=${url_base}${video}
wget ${end} -O ${temp}
}
RMTEMP () {
cd ..
rm -rf .dtube
}
case $1 in
-a | --audio )
DOWNLOAD
case $2 in
mp3 )
ffmpeg -i ${temp} ../${nome}.mp3
;;
esac
RMTEMP
;;
-v | --video )
DOWNLOAD
case $2 in
ogg )
ffmpeg -i ${temp} ../${nome}.ogg -acodec libvorbis
;;
mpg )
ffmpeg -i ${temp} ../${nome}.mpg
;;
esac
RMTEMP
;;
esac
Ho tolto tutti i commenti ed ammetto che non è scritto bene, oltre ad offrire davvero poco, ma ho già fatto una faticaccia a farlo funzionare perchè sulla 8.10 di Ubuntu ffmpeg ha diversi problemi... Ho paura di dover inserire come dipendenza addirittura VLC.

Ad ogni modo, cosa fa? E come si usa? Nell'attesa di un'interfaccia grafica che probabilmente non arriverà mai perchè mi stancherò prima ( ^^'' ), è necessario metter mano al terminale. Il comando da eseguire è semplice e facilmente comprensibile, vado con ordine...

Estrarre l'audio da un video di Youtube e salvarlo in mp3
Il comando è il seguente:
./dtube -a mp3 indirizzo_del_video nome_del_file
Ad esempio
./dtube -a mp3 http://www.youtube.com/watch?v=VhtxaYawXVc Dammene_ancora
In questo modo verrà creato nella cartella in cui vi trovate il file "Dammene_ancora.mp3".

Scaricare il video in formato Ogg
Il comando è il seguente
./dtube -v ogg indirizzo_del_video nome_del_video
Ad esempio
./dtube -v ogg http://www.youtube.com/watch?v=VhtxaYawXVc Dammene_ancora
In questo modo verrà creato nella cartella in cui vi trovate il file "Dammene_ancora.ogg". Questo è il formato video consigliato da usare.

Scaricare il video in formato Mpg
Il comando è il seguente
./dtube -v mpg indirizzo_del_video nome_del_video
Ad esempio
./dtube -v ogg http://www.youtube.com/watch?v=VhtxaYawXVc Dammene_ancora
In questo modo verrà creato nella cartella in cui vi trovate il file "Dammene_ancora.mpg".

Banale no? Tre raccomandazioni: seguite esattamente l'ordine dei comandi perchè ancora non percepisce gli errori di input in modo intelligente, non inserite l'estensione del file (tanto non serve), non preoccupatevi dei numerosi "Not found" di WGet ;)

Non ho inserito la trasformazione in audio ogg oltre che mp3 perchè non riesco... Per il futuro spero di riuscire ad implementare la trasformazione in avi, 3gp, mp4 e ogg audio. Vorrei inoltre eliminare la serie di problemi (so già come fare) relativi ai warning e ai download di troppo di wget, vorrei permettere il semplice download in flv, crearne il deb, risolvere i problemi di codec con la 8.10 di Ubby (io l'ho fatto), aggiungere le ottimizzazioni in stato di conversione, permettere di decidere se mantenere anche il file originale, poter usare gli spazi nel nome del file finale e bo, magari dell'altro, magari chiedete se avete qualche esigenza particolare che vedo di implementarla ;)

Comunque, per Alex e tutti gli amici che vogliono provarlo copiate il source in un file, salvatelo e date il comando:
chmod a+x nome_file
Quindi eseguitelo come indicato sopra. Non voglio dire cazzate, ma penso che lo script possa essere usato anche su Windows grazie a Cygwin. Mi sono rotto di scrivere, per qualsiasi cosa mi trovate qui, un bacio a tutti. :P


EDIT:
Dimenticavo, vi lascio anche il changelog:
dtube v0.2 (added features e bugfix)
+ Lavoro in cartella temporanea
+ Estrazione del solo audio in mp3
+ Conversione in ogg (video)
+ Modifiche su variabili
+ Conversione in mpg
+ Rivista struttura codice

dtube v0.1 (features iniziali)
+ Viene riconosciuto il file da scaricare
+ Download del file
Ho anche provato il deb della prossima release (quello che ne esiste al momento per lo meno) e pare funzionare, fico :) Ah! Per chi volesse provarlo su Ubuntu ho usato queste dipendenze: vlc, ffmpeg, wget. Ciau

mercoledì 23 luglio 2008

Totem, GStreamer e Theora
Ieri ho scoperto che devo aver sbagliato qualcosa nella preparazione della mia Gentoo box, Totem non leggeva i file .ogv...


Tutto è iniziato dopo la faticosa compilazione di RecordMyDesktop, che in realtà è velocissima (meno di cinque minuti) e semplice, infatti dopo varie imprecazioni contro gcc ho scoperto che ero io a sbagliare, un "-" di troppo fra le USE scombinava il mondo... Ad ogni modo dopo aver imparato ad usare il software (rigorosamente a riga di comando) faccio una provetta (non quella da laboratorio) e sembra che tutto sia a posto, fino a quando non tento di aprire il video creato: Totem mi comunica un errore di streaming non meglio spiegato...

Cacchio, per un attimo ho pensato di esser l'unico utente Linux a non esser in grado di leggere gli ogg, ma non era così, il problema me lo dava con i file video e basta, non capivo...

Controllo le librerie ed i codec, tra l'altro avevo appena installato libtheora quindi pensavo di esser a posto...
media-libs/libogg presente
media-plugins/gst-plugins-ogg presente
media-plugins/gst-plugins-vorbis presente
media-libs/libvorbis presente
Non mi sembra ci sia roba particolare per gli ogv, sempre ogg sono (tant'è che anche modificandone l'estensione andrebbero lo stesso), quindi inizio la ricerca in google, ma non trovo nulla di utile al mio caso. Quindi inizio a studicchiarmi un po' piu a fondo la questione... Considerando che ho sempre usato Theora per i codec relativi all'ogg, che sul mio pc la gestione dei codec è affidata a GStreamer e che sono fermo senza poter leggere sti benedetti video senza motivazione apparente uno solo può essere il colpevole: per l'appunto GStreamer! Altra ricerchina i portage ed ecco trovato il pacchetto adatto: gst-plugins-theora.

Tutto è bene quel che finisce bene, ora posso visualizzare con soddisfazione gli ogv :D