Differenze tra le versioni di "Estrarre una traccia di un CD audio convertendola in un file MP3 con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 5: | Riga 5: | ||
− | + | Public Sub Main() | |
Dim pl As MediaPipeline | Dim pl As MediaPipeline | ||
Dim src, cnv, enc, mux, snk As MediaControl | Dim src, cnv, enc, mux, snk As MediaControl | ||
− | + | pl = New MediaPipeline | |
+ | |||
+ | src = New MediaControl(pl, "cdiocddasrc") | ||
+ | src["track"] = 10 | ||
+ | cnv = New MediaControl(pl, "audioconvert") | ||
+ | enc = New MediaControl(pl, "lamemp3enc") | ||
+ | enc["target"] = bitrate | ||
+ | enc["bitrate"] = 192 | ||
+ | mux = New MediaControl(pl, "mpegpsmux") | ||
+ | snk = New MediaControl(pl, "filesink") | ||
+ | snk["location"] = "/tmp/audio.mp3" | ||
+ | |||
+ | src.LinkTo(cnv) | ||
+ | cnv.LinkTo(enc) | ||
+ | enc.LinkTo(mux) | ||
+ | mux.LinkTo(snk) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<FONT Color=gray>' ''Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:''</font> | <FONT Color=gray>' ''Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:''</font> | ||
− | + | pl.Play() | |
− | + | ||
− | + | Repeat | |
<FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:''</font> | <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:''</font> | ||
− | + | Write "\rDurata del brano: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & " - Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000)) | |
− | + | Flush | |
− | + | Wait 0.01 | |
+ | Until (pl.Position >= pl.Duration) | ||
− | + | pl.Stop() | |
− | + | pl.Close() | |
− | + | End | |
− | Analogamente possiamo utilizzare anche il plugin " | + | Analogamente possiamo utilizzare anche il plugin "cdparanoiasrc" di ''GStreamer''. |
Mostriamo un semplice esempio pratico: | Mostriamo un semplice esempio pratico: | ||
Riga 48: | Riga 49: | ||
− | + | Public Sub Main() | |
Dim pl As MediaPipeline | Dim pl As MediaPipeline | ||
Dim src, cnv, enc, mux, snk As MediaControl | Dim src, cnv, enc, mux, snk As MediaControl | ||
− | + | pl = New MediaPipeline | |
+ | |||
+ | src = New MediaControl(pl, "cdparanoiasrc") | ||
+ | src["track"] = 10 | ||
+ | cnv = New MediaControl(pl, "audioconvert") | ||
+ | enc = New MediaControl(pl, "lamemp3enc") | ||
+ | enc["target"] = bitrate | ||
+ | enc["bitrate"] = 192 | ||
+ | mux = New MediaControl(pl, "mpegpsmux") | ||
+ | snk = New MediaControl(pl, "filesink") | ||
+ | snk["location"] = "/tmp/audio.mp3" | ||
+ | |||
+ | src.LinkTo(cnv) | ||
+ | cnv.LinkTo(enc) | ||
+ | enc.LinkTo(mux) | ||
+ | mux.LinkTo(snk) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<FONT Color=gray>' ''Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:''</font> | <FONT Color=gray>' ''Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3:''</font> | ||
− | + | pl.Play() | |
− | + | Repeat | |
<FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:''</font> | <FONT Color=gray>' ''Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati:''</font> | ||
− | + | Write "\rDurata del brano: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & " - Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000)) | |
− | + | Flush | |
− | + | Wait 0.01 | |
+ | Until (pl.Position >= pl.Duration) | ||
− | + | pl.Stop() | |
− | + | pl.Close() | |
− | + | End |
Versione attuale delle 08:11, 30 lug 2023
Per estrarre una traccia di un CD audio e convertirla conseguentemente in un file MP3 mediante il Componente gb.media, è possibile utilizzare il plugin "cdiocddasrc" di GStreamer.
Mostriamo un semplice esempio pratico:
Private Enum quality = 0, bitrate Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, enc, mux, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "cdiocddasrc") src["track"] = 10 cnv = New MediaControl(pl, "audioconvert") enc = New MediaControl(pl, "lamemp3enc") enc["target"] = bitrate enc["bitrate"] = 192 mux = New MediaControl(pl, "mpegpsmux") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/audio.mp3" src.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(mux) mux.LinkTo(snk) ' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3: pl.Play() Repeat ' Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati: Write "\rDurata del brano: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & " - Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000)) Flush Wait 0.01 Until (pl.Position >= pl.Duration) pl.Stop() pl.Close() End
Analogamente possiamo utilizzare anche il plugin "cdparanoiasrc" di GStreamer.
Mostriamo un semplice esempio pratico:
Private Enum quality = 0, bitrate Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, enc, mux, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "cdparanoiasrc") src["track"] = 10 cnv = New MediaControl(pl, "audioconvert") enc = New MediaControl(pl, "lamemp3enc") enc["target"] = bitrate enc["bitrate"] = 192 mux = New MediaControl(pl, "mpegpsmux") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/audio.mp3" src.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(mux) mux.LinkTo(snk) ' Avvia la procedura di estrazione dei dati audio della traccia e della successiva conversione nel file MP3: pl.Play() Repeat ' Mostra in console la posizione, espressa in secondi, all'interno dei dati audio processati: Write "\rDurata del brano: " & CStr(Time(0, 0, 0, pl.Duration * 1000)) & " - Tempo trascorso: " & CStr(Time(0, 0, 0, pl.Position * 1000)) Flush Wait 0.01 Until (pl.Position >= pl.Duration) pl.Stop() pl.Close() End