Guarda, personalmente sono piuttosto ignorante in materia. Nella discussione che ho linkato si parla di 264 nell'ultima pagina mi pare... probabilmente l'ahi già letta. Io brutalmente avevo aggiornato un po' tutte le librerie che mi avevano suggerito essere importanti, compresa x264, vedi ultima pagina di quella discussione....
Hai fatto bene a puntualizzare, qualcuno più pratico di me in materia potrà capire meglio la tua obiezione.
Per quanto riguarda la prova: abbiamo il file "video.flv" da cui estrarre la "traccia" audio. Ecco alcune sue caratteristiche:
Ecco per me questo è un video in flash... detto in termini semplicistici.
Vediamo cosa dice ffmpeg seguendo le indicazioni di 414N.
Codice: Seleziona tutto
$ ffmpeg -i video.flv
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Apr 5 2011 18:41:36 with gcc 4.4.4
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/man --disable-debug --enable-shared --disable-static --enable-pthreads --enable-libtheora --enable-libvorbis --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-x11grab --arch=i686 --enable-libmp3lame --enable-libx264
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x806a4c0] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'video.flv':
Metadata:
duration : 314
starttime : 0
totalduration : 314
width : 854
height : 480
videodatarate : 932
audiodatarate : 113
totaldatarate : 1052
framerate : 25
bytelength : 41396978
canseekontime : true
sourcedata : BADC21323HH1301944896714849
purl :
pmsg :
Duration: 00:05:14.48, start: 0.000000, bitrate: 1069 kb/s
Stream #0.0: Video: h264, yuv420p, 854x480 [PAR 1:1 DAR 427:240], 953 kb/s, 25 tbr, 1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 115 kb/s
At least one output file must be specified
Penso che le indicazioni utili ai nostri fini stiano nella riga seguente:
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 115 kb/s
Bene, praticamente dovremmo ottenere un file audio di qualità 115kb/s, non so se è giusto eventualmente confermate.
Inoltre vediamo che il formato dell'audio è di tipo "aac". Personalmente non ho la più pallida idea di cosa voglia dire, ma proseguiamo.
414N diceva ffmpeg -i video -acodec copy -vn -sn audio.XXX in cui XXX è relativo al formato del flusso in ingrasso, che nel nostro caso ha quacosa a che fare con aac. Bene, chiedo a google cosa sia quell'aac e aquale tipo di formato è relativo, insomma voglio capire quale estensine vada messa al posto di "XXX".
Ok, cerco estensione formato aac e da una riga di google leggo:
Il file audio estratto ha estensione .aac
Provo allora a sostituire XXX con aac:
Codice: Seleziona tutto
$ ffmpeg -i video.flv -acodec copy -vn -sn audio.aac
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Apr 5 2011 18:41:36 with gcc 4.4.4
configuration: --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/man --disable-debug --enable-shared --disa
ble-static --enable-pthreads --enable-libtheora --enable-libvorbis --enable-gpl --enable-version3 --enable-postproc --enable-
swscale --enable-x11grab --arch=i686 --enable-libmp3lame --enable-libx264
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.74. 0 / 1.74. 0
libswscale 0.12. 0 / 0.12. 0
libpostproc 51. 2. 0 / 51. 2. 0
[flv @ 0x806a4c0] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'video.flv':
Metadata:
duration : 314
starttime : 0
totalduration : 314
width : 854
height : 480
videodatarate : 932
audiodatarate : 113
totaldatarate : 1052
framerate : 25
bytelength : 41396978
canseekontime : true
sourcedata : BADC21323HH1301944896714849
purl :
pmsg :
Duration: 00:05:14.48, start: 0.000000, bitrate: 1069 kb/s
Stream #0.0: Video: h264, yuv420p, 854x480 [PAR 1:1 DAR 427:240], 953 kb/s, 25 tbr, 1k tbn, 50 tbc
Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 115 kb/s
Output #0, adts, to 'audio.aac':
Metadata:
duration : 314
starttime : 0
totalduration : 314
width : 854
height : 480
videodatarate : 932
audiodatarate : 113
totaldatarate : 1052
framerate : 25
bytelength : 41396978
canseekontime : true
sourcedata : BADC21323HH1301944896714849
purl :
pmsg :
encoder : Lavf52.93.0
Stream #0.0: Audio: aac, 44100 Hz, stereo, 115 kb/s
Stream mapping:
Stream #0.1 -> #0.0
Press [q] to stop encoding
size= 4414kB time=314.96 bitrate= 114.8kbits/s
video:0kB audio:4321kB global headers:0kB muxing overhead 2.145766%
Bene, e alla fine si ottiene apputno questo file "audio.aac", come vedete c'è una bella differenza rispetto al wav ottenuto con mplayer:
Codice: Seleziona tutto
$ file audio.aac&&ls -lh audio.aac
audio.aac: MPEG ADTS, AAC, v4 LC, 44.1 kHz, stereo
-rw-r--r-- 1 joe users 4.4M 2011-04-05 20:35 audio.aac
$ file audio.wav&&ls -lh audio.wav
audio.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
-rw-r--r-- 1 joe users 53M 2011-04-05 00:24 audio.wav
Bene, grazie a tutti per gli interventi e l'appoggio allora.
Offtopic: Avrei ancora una domanda.
Diciamo di voler scaricare un video da youtube SOLO SE la sua qualita AUDIO è buona, sopra una certo limite di bitrate tanto per capirci.
C'è qualche possibilità di saperlo in anticipo, senza dover scaricare preventivamente tutto il video?