254 messaggi dal 01 agosto 2003
Ciao a tutti
qualcuno sa come convertire in asp net (vb)
un file avi in mp4 ?

Oppure
fare in modo che i file avi vengano in qualche modo visualizzati sul mio sito


Grazie

victor
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao victor,
puoi convertire il tuo AVI usando il software gratuito FFmpeg, che funziona da riga di comando. Io lo uso anche nel server da un'applicazione ASP.NET ma tu per il momento prova a fare la conversione (anche detta "trascodifica") a mano.

Quindi, passo 1: scaricati FFmpeg per Windows da qui.
https://ffmpeg.zeranoe.com/builds/

Passo 2: scompatta lo zip ovunque tu voglia e copiaci dentro il file AVI.
Passo 3: entra in quella directory dal prompt dei comandi e digita:
ffmpeg -i video.avi video.m3u8

Questo comando eseguirà la conversione, che potrebbe richiedere svariati minuti, in base alla lunghezza del tuo video. Alla fine, avrai ottenuto svariati file video*.ts (dati del video) e un file video.m3u8 (il "manifest" testuale, che referenzia i file ts). Copia sia il file m3u8 che i file ts in una directory della tua applicazione, ad esempio /video.
Questo formato che hai ottenuto sarà ottimale per lo streaming HLS, ed è il formato che gode della migliore compatibilità oggi sul web. (E dove non è compatibile può facilmente sopperire il player). Il codec video usato è H.264 e l'audio è AAC (advanced audio codec).

Passo 4: installa un player nella tua pagina web.
Io uso JWPlayer ma richiede una licenza a pagamento. In alternativa puoi provare hls.js (ma ce ne sono svariati altri), ecco qui le istruzioni:
https://github.com/video-dev/hls.js/

In pratica, metti questo codice javascript nella pagina:
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<video id="video"></video>
<script>
  var urlDelTuoVideo = "/video/video.m3u8"; //Il percorso al manifest
  var video = document.getElementById('video');
  if(Hls.isSupported()) {
    var hls = new Hls();
    hls.loadSource(urlDelTuoVideo);
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = urlDelTuoVideo;
    video.addEventListener('loadedmetadata',function() {
      video.play();
    });
  }
</script>


Se tutto funziona, puoi passare alla prossima fare, che consiste nell'automatizzare la trascodifica con FFmpeg dalla tua applicazione ASP.NET. Io uso questo pacchetto:
https://github.com/mysteryx93/EmergenceGuardian.Encoder

Ma non so se è fattibile nel tuo caso. Sei in hosting condiviso o hai libero accesso al server (via Desktop Remoto)?

ciao,
Moreno
Modificato da BrightSoul il 19 marzo 2019 21:10 -

Enjoy learning and just keep making
254 messaggi dal 01 agosto 2003
Ciao Moreno
allora io ho un sito su aruba
e da una pagina dentro al sito faccio degli upload multipli (grazie al tuo suggerimento del fileupload)

ti spiego meglio dove sta il mio problema:

quando faccio degli upload di vari file (jog, mp4, ecc...)
li faccio poi visualizzare attraverso il tag EMBED
e devo dire che vengono tutti visualizzati sulla pagina web.

L'unico mio problema (fino adesso) è che con i file avi non li visualizza su web, ma li scarica sul pc.

Allora mi sono detto che forse mi servirebbe qualcosa per fare in modo che durante la fase di upload vengano modificati in mp4.

Oppure, se tu hai una soluzione, puoi consigliarmi qualcosa, invece che EMBED, per fare in modo che i file avi vengano automaticamente riprodotti sulla pagina web.


Io vorrei usare quel tuo suggerimento
ovvero
https://github.com/mysteryx93/EmergenceGuardian.Encoder

ma non ci ho capito nulla.

Esiste un codice in asp net per fare questa trascodifica?

Se si quale è?

Grazie mille

victor
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, per prima cosa fai pratica con FFmpeg in locale e verifica se riesci a visualizzare il video .m3u8 nella tua pagina web tramite hls.js.
In pausa pranzo ti manderò un esempio di codice con EmergenceGuardian.Encoder, che dietro le quinte richiama FFmpeg. Temo che in hosting condiviso su Aruba non funzionerà, specie se sei in hosting condiviso e in regime di medium trust.
Nel frattempo scrivi all'assistenza di Aruba per chiedere se passando al Full Trust ti è concesso eseguire FFmpeg per fare la trascodifica di video.

ciao,
Moreno

Enjoy learning and just keep making
254 messaggi dal 01 agosto 2003
la vedo una cosa molto complicata
per caso conosci qualche tag diverso invece che embed
che mi possa aiutare?
grazie

victor
254 messaggi dal 01 agosto 2003
Ciao Moreno
ho provato a usare quella soluzione che mi hai indicato

ffmpeg -i video.avi video.m3u8


ma dice
che non è riconosciuto come comando interno o esterno

victor
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,


ho provato a usare quella soluzione che mi hai indicato

Da riga di comando devi spostarti nella directory in cui si trova l'eseguibile di ffmpeg.
Ripartiamo da capo: scompatta lo zip di ffmpeg ovunque tu voglia e poi apri la cartella con Esplora Risorse. Addentrati nelle sottocartelle finché non arrivi dentro bin. Incolla il file .avi e poi copia il percorso completo della cartella bin da Esplora risorse. Supponiamo che il percorso che hai copiato fosse C:\ffmpeg-20190320-0739d5c-win64-static\bin\ quindi apri il prompt dei comandi e digita:
cd "C:\ffmpeg-20190320-0739d5c-win64-static\bin"


A questo punto ti trovi nella directory che contiene l'eseguibile di ffmpeg. Lancia il comando e continua a seguire la guida che ti avevo scritto.
ffmpeg -i video.avi video.m3u8



la vedo una cosa molto complicata

Non esiste una soluzione più semplice che consista solo nel cambiare un tag. Il problema è che non tutti i browser supportano tutti i contenitori video (avi) o tutti i codec esistenti (non so quali stia usando il file avi).


per caso conosci qualche tag diverso invece che embed
che mi possa aiutare?

Prova con <video> ma vedrai che su alcuni browser avrai comunque problemi di visualizzazione.

FFmpeg è la via. Aruba sarà l'ostacolo.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.