Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C#] Creazione DLL da Command Line

    Salve, l'argomento sarà duro e sicuramente infruttuoso perché nessuno saprà la risposta

    Tempo fa ho fatto uno script in PHP che girando sotto Linux e utilizzando varie applicazioni a riga di comando (lame, normalize-audio, sox) mi processava dei file mp3, trasformandoli prima in wav (sox), normalizzandoli secondo uno schema preciso (normalize-audio) e riconvertendoli in mp3 secondo determinate impostazioni (lame).

    Per sbaglio mi sono perso tutto, ma non è un gran problema, come l'ho fatto una volta lo rifaccio

    Solo che mi chiedevo se non fosse possibile ripetere la stessa procedura in un applicativo fatto in C# per Windows.

    Per quanto riguarda Lame non c'è problema, la DLL esiste ed è gratuita, però non riesco a trovare una DLL per la normalizzazione dell'audio.

    Per la conversione vedrò, ma intanto mi sto concentrando su questa.

    Mi chiedevo, esiste un modo per ricreare da un'applicazione a riga di comando Linux (es. normalize-audio) un DLL usabile anche in ambiente Windows?

  2. #2
    Se è scritta nativamente per Linux dovresti riuscire a portarla su Windows compilandola per cygwin (otterresti però naturalmente un eseguibile, non una dll).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Interessante, proverò

    Bhè, una dll sarebbe meglio ma sempre meglio di niente

  4. #4
    Anf, chi la dura la vince

    Premessa: sarebbe da fare una statua marmorea a MItaly che mi ha fatto conoscere cygwin

    Allora, sono riuscito ad ottenere infine ciò di cui ho bisogno per iniziare il mio applicativo:

    1° lame.exe (si può scaricare senza difficoltà)
    2° normalize.exe (sarebbe il normaliza-audio di linux)
    3° sox.exe

    Lame è stato il più semplice perché si trova già in versione exe e pronto all'uso, scaricando il sorgente si trova al suo intreno una cartella con le soluzioni SLN per visual studio 9, tramite quello ho anche compilato una dll (libmp3lame.dll) ma ancora la devo sperimentare.

    Con normalize ho usato cygwin dal sorgente, ho prima dato di ./configure e poi di make, lui mi ha creato il file normalize.exe, purtroppo ha qualche tara, ad esempio non riconosce i comandi short da linea di comando ma solo quello integrali (es. -t non lo prende ma --average-threshold= si).

    Per Sox, anch'esso sorgente, è stato un bagno di sangue.
    Un primo tentativo con cygwin non è andato bene, produceva un sox.exe che non funzionava...
    Ho cercato delle guide e con queste ho prodotto un altro sox.exe che funzionava meglio ma non supportava gli mp3 (a me serve appositamente per convertire gli mp3 in wav).

    Ho cercato altre guide ma o non le trovavo, o trovavo gente col mio stesso problema o le trovavo ma non mi aiutavano.

    Alla fine ho rosicato, ho aperto il file configure e me lo sono spulciato, ho scoperto che da lì si possono abilitare le librerire di Lame e di Mad (un altro che serve per gli mp3).

    Occorre però mettere nella cartella /usr/local/include/ di cygwin una cartella lame con dentro il file lame.h che c'è nel sorgente di lame, poi il file mad.h (dentro include e non in una sottocartella) che si trova nel sorgente di libmad.

    Servono anche varie librerie sia di lame che di libmad che vanno messe dentro /usr/local/lib/ quindi mi sono dovuto scaricare il sorgente libmad e compilare anche questo

    Ma alla fine è uscito un sox.exe con i fiocchi e finalmente converte da mp3 a wav!

    Uff, queste sono soddisfazioni

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Un po' laborioso.. e molto arruffato.. con directShow ed un paio di filtri facevi molto prima..

  6. #6
    In ogni caso, lieto che tu abbia risolto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Beh, directShow non l'avevo mai sentito prima di adesso

    Cmq il discorso è questo, tempo fa feci uno script php a linea di comando (quindi per shell) che su linux, usando sox, normalize-audio e lame, mi prendeva una cartella (ricorsivamente entrando nelle sotto cartelle) e mi stanava tutti gli mp3 e li normalizzava.

    Purtroppo normalize-audio da solo non bastava perché non riusciva a lavorare direttamente gli mp3, quindi la procedura per ogni singolo file era:

    1° trasformazione in wav tramite sox
    2° cancellazione mp3
    3° normalizzazione secondo uno standard
    4° riconversione ad hoc in mp3 secondo determinate direttive (lame ne sa parecchio)
    5° cancellazione wav

    Purtroppo ho smarrito questo script dopo un format ma in sostanza il grosso lo facevano tutto quei tre applicativi.

    Volevo creare un applicativo C# che +/- faceva le stesse cose e migliorare un pò la cosa e volevo mantenere quei tre applicativi perché mi ci sono trovato mooooolto bene in passato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.