Differenze tra le versioni di "Convertire un file video in un formato OGG, Matroska e MP4 mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
==Convertire un file video nel formato OGG==
 
==Convertire un file video nel formato OGG==
 +
 +
===Ottenere una conversione in formato OGG con audio===
 +
Si otterrà un file video del formato OGG, ma <SPAN Style="text-decoration:underline">con audio</span>, se il file originario è un file audio/video:
 +
Private bo As Boolean
 +
 +
 +
Public Sub Main()
 +
 +
  Dim pl As MediaPipeline
 +
  Dim src, vdcb, tee, vcon, the, adcb, acon, vor, ogg, snk As MediaControl
 +
  Dim que1, que2, que3 As MediaControl
 +
 
 +
  pl = New MediaPipeline As "PLine"
 +
 +
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 +
  tee = New MediaControl(pl, "tee")
 +
  vdcb = New MediaControl(pl, "decodebin")
 +
  que1 = New MediaControl(pl, "queue")
 +
  vcon = New MediaControl(pl, "videoconvert")
 +
  the = New MediaControl(pl, "theoraenc")
 +
  adcb = New MediaControl(pl, "decodebin")
 +
  que2 = New MediaControl(pl, "queue")
 +
  acon = New MediaControl(pl, "audioconvert")
 +
  vor = New MediaControl(pl, "vorbisenc")
 +
  que3 = New MediaControl(pl, "queue")
 +
  ogg = New MediaControl(pl, "oggmux")
 +
  snk = New MediaControl(pl, "filesink")
 +
  snk["location"] = "/tmp/video.ogg"
 +
 +
<FONT Color=gray>' '''''Parte video:'''''</font>
 +
  src.LinkTo(tee)
 +
  tee.LinkTo(vdcb)
 +
  vdcb.LinkLaterTo(que1)
 +
  que1.LinkTo(vcon)
 +
  vcon.LinkTo(the)
 +
  the.LinkTo(ogg)
 +
<FONT Color=gray>' '''''Parte audio:'''''</font>
 +
  tee.LinkTo(adcb)
 +
  adcb.LinkLaterTo(que2)
 +
  que2.LinkTo(acon)
 +
  acon.LinkTo(vor)
 +
  vor.LinkTo(que3)
 +
<FONT Color=gray>' '''''Combinazione dei dati audio e video:'''''</font>
 +
  que3.LinkTo(ogg)
 +
<FONT Color=gray>' '''''Creazione del file ogg finale:'''''</font>
 +
  ogg.LinkTo(snk)
 +
 
 +
<FONT Color=gray>' ''Avvia la conversione audio-video:''</font>
 +
  pl.Play()
 +
 +
  While pl.Duration < 1
 +
    Wait 0.01
 +
  Wend
 +
  Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 +
  While Not bo
 +
    Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 +
    Wait 0.01
 +
  Wend
 +
 +
  pl.Stop()
 +
  pl.Close()
 +
  Print "\nTermine registrazione"
 +
  Quit
 +
 +
End
 +
 +
 +
Public Sub PLine_End()
 +
 +
  bo = True
 +
 +
End
 +
  
 
===Ottenere una conversione in formato OGG senza audio===
 
===Ottenere una conversione in formato OGG senza audio===
 
Si otterrà un file video del formato OGG, ma <SPAN Style="text-decoration:underline">privo di audio</span>:
 
Si otterrà un file video del formato OGG, ma <SPAN Style="text-decoration:underline">privo di audio</span>:
  Private pl As New MediaPipeline
+
  Private pl As MediaPipeline
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
Riga 10: Riga 84:
 
   
 
   
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
  Dim temporaneo As String
 
 
  temporaneo = Temp
 
 
   
 
   
 
   pl = New MediaPipeline As "PLine"
 
   pl = New MediaPipeline As "PLine"
 
   
 
   
 
   src = New MediaControl(pl, "filesrc")
 
   src = New MediaControl(pl, "filesrc")
   src["location"] = "<FONT Color=gray>''/percorso/del/file/video''</font>"
+
   src["location"] = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 
   dcb = New MediaControl(pl, "decodebin")
 
   dcb = New MediaControl(pl, "decodebin")
 
   vdc = New MediaControl(pl, "videoconvert")
 
   vdc = New MediaControl(pl, "videoconvert")
Riga 23: Riga 94:
 
   mux = New MediaControl(pl, "oggmux")
 
   mux = New MediaControl(pl, "oggmux")
 
   snk = New MediaControl(pl, "filesink")
 
   snk = New MediaControl(pl, "filesink")
   snk["location"] = temporaneo
+
   snk["location"] = "/tmp/video.ogg"
 
   
 
   
 
   src.LinkTo(dcb)
 
   src.LinkTo(dcb)
Riga 37: Riga 108:
 
   Wend
 
   Wend
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
   Repeat
+
   While Not bo
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Wait 0.01
 
     Wait 0.01
   Until bo
+
   Wend
 
  Copy temporaneo To "/tmp/video.ogg"
 
 
   
 
   
 
   pl.Close
 
   pl.Close
Riga 58: Riga 127:
 
  End
 
  End
  
==Convertire un file video nel formato Matroska==
+
==Convertire un file video senza audio nel formato Matroska==
Si otterrà un file video del formato Matroska, ma <SPAN Style="text-decoration:underline">privo di audio</span>:
+
Si otterrà un file video del formato Matroska, ma <U>privo di audio</u>:
  Private pl As New MediaPipeline
+
  Private pl As MediaPipeline
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
Riga 67: Riga 136:
 
   
 
   
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
  Dim temporaneo As String
 
 
  temporaneo = Temp
 
 
   
 
   
 
   pl = New MediaPipeline As "PLine"
 
   pl = New MediaPipeline As "PLine"
 
   
 
   
 
   src = New MediaControl(pl, "filesrc")
 
   src = New MediaControl(pl, "filesrc")
   src["location"] = "<FONT Color=gray>''/percorso/del/file/video''</font>"
+
   src["location"] = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 
   dcb = New MediaControl(pl, "decodebin")
 
   dcb = New MediaControl(pl, "decodebin")
 
   vdc = New MediaControl(pl, "videoconvert")
 
   vdc = New MediaControl(pl, "videoconvert")
Riga 80: Riga 146:
 
   mux = New MediaControl(pl, "matroskamux")
 
   mux = New MediaControl(pl, "matroskamux")
 
   snk = New MediaControl(pl, "filesink")
 
   snk = New MediaControl(pl, "filesink")
   snk["location"] = temporaneo
+
   snk["location"] = "/tmp/video.mkv"
 
   
 
   
 
   src.LinkTo(dcb)
 
   src.LinkTo(dcb)
Riga 94: Riga 160:
 
   Wend
 
   Wend
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
   Repeat
+
   While Not bo
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Wait 0.01
 
     Wait 0.01
   Until bo
+
   Wend
 
  Copy temporaneo To "/tmp/video.mkv"
 
 
   
 
   
 
   pl.Close
 
   pl.Close
Riga 115: Riga 179:
 
  End
 
  End
  
==Convertire un file video nel formato MP4==
+
==Convertire un file video senza audio nel formato MP4==
Si otterrà un file video del formato MP4, ma <SPAN Style="text-decoration:underline">privo di audio</span>:
+
Si otterrà un file video del formato MP4, ma <U>privo di audio</u>:
  Private pl As New MediaPipeline
+
  Private pl As MediaPipeline
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
Riga 124: Riga 188:
 
   
 
   
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
 
   Dim src, dcb, vdc, enc, mux, snk As MediaControl
  Dim temporaneo As String
 
 
  temporaneo = Temp
 
 
   
 
   
 
   pl = New MediaPipeline As "PLine"
 
   pl = New MediaPipeline As "PLine"
 
   
 
   
 
   src = New MediaControl(pl, "filesrc")
 
   src = New MediaControl(pl, "filesrc")
   src["location"] = "<FONT Color=gray>''/percorso/del/file/video''</font>"
+
   src["location"] = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 
   dcb = New MediaControl(pl, "decodebin")
 
   dcb = New MediaControl(pl, "decodebin")
 
   vdc = New MediaControl(pl, "videoconvert")
 
   vdc = New MediaControl(pl, "videoconvert")
Riga 137: Riga 198:
 
   mux = New MediaControl(pl, "mp4mux")
 
   mux = New MediaControl(pl, "mp4mux")
 
   snk = New MediaControl(pl, "filesink")
 
   snk = New MediaControl(pl, "filesink")
   snk["location"] = temporaneo
+
   snk["location"] = "/tmp/video.mp4"
 
   
 
   
 
   src.LinkTo(dcb)
 
   src.LinkTo(dcb)
Riga 151: Riga 212:
 
   Wend
 
   Wend
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 
   Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
   Repeat
+
   While Not bo
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Write "\r\e[0mTempo trascorso:    \e[31m" & Time(0, 0, 0, pl.Position * 1000)
 
     Wait 0.01
 
     Wait 0.01
   Until bo
+
   Wend
 
  Copy temporaneo To "/tmp/video.mp4"
 
 
   
 
   
 
   pl.Close
 
   pl.Close

Versione attuale delle 04:38, 3 lug 2024

Convertire un file video nel formato OGG

Ottenere una conversione in formato OGG con audio

Si otterrà un file video del formato OGG, ma con audio, se il file originario è un file audio/video:

Private bo As Boolean


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, vdcb, tee, vcon, the, adcb, acon, vor, ogg, snk As MediaControl
 Dim que1, que2, que3 As MediaControl
  
 pl = New MediaPipeline As "PLine"

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file/video"
 tee = New MediaControl(pl, "tee")
 vdcb = New MediaControl(pl, "decodebin")
 que1 = New MediaControl(pl, "queue")
 vcon = New MediaControl(pl, "videoconvert")
 the = New MediaControl(pl, "theoraenc")
 adcb = New MediaControl(pl, "decodebin")
 que2 = New MediaControl(pl, "queue")
 acon = New MediaControl(pl, "audioconvert")
 vor = New MediaControl(pl, "vorbisenc")
 que3 = New MediaControl(pl, "queue")
 ogg = New MediaControl(pl, "oggmux")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/video.ogg"

' Parte video:
 src.LinkTo(tee)
 tee.LinkTo(vdcb)
 vdcb.LinkLaterTo(que1)
 que1.LinkTo(vcon)
 vcon.LinkTo(the)
 the.LinkTo(ogg)
' Parte audio:
 tee.LinkTo(adcb)
 adcb.LinkLaterTo(que2)
 que2.LinkTo(acon)
 acon.LinkTo(vor)
 vor.LinkTo(que3)
' Combinazione dei dati audio e video:
 que3.LinkTo(ogg)
' Creazione del file ogg finale:
 ogg.LinkTo(snk)
 
' Avvia la conversione audio-video:
 pl.Play()

 While pl.Duration < 1
   Wait 0.01
 Wend
 Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 While Not bo
   Write "\r\e[0mTempo trascorso:     \e[31m" & Time(0, 0, 0, pl.Position * 1000)
   Wait 0.01
 Wend

 pl.Stop()
 pl.Close()
 Print "\nTermine registrazione"
 Quit

End


Public Sub PLine_End()

 bo = True

End


Ottenere una conversione in formato OGG senza audio

Si otterrà un file video del formato OGG, ma privo di audio:

Private pl As MediaPipeline
Private bo As Boolean


Public Sub Main()

 Dim src, dcb, vdc, enc, mux, snk As MediaControl

 pl = New MediaPipeline As "PLine"

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file/video"
 dcb = New MediaControl(pl, "decodebin")
 vdc = New MediaControl(pl, "videoconvert")
 enc = New MediaControl(pl, "theoraenc")
 mux = New MediaControl(pl, "oggmux")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/video.ogg"

 src.LinkTo(dcb)
 dcb.LinkLaterTo(vdc)
 vdc.LinkTo(enc)
 enc.LinkTo(mux)
 mux.LinkTo(snk)

 pl.Play()

 While pl.Duration < 1
   Wait 0.01
 Wend
 Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 While Not bo
   Write "\r\e[0mTempo trascorso:     \e[31m" & Time(0, 0, 0, pl.Position * 1000)
   Wait 0.01
 Wend

 pl.Close
 Quit

 Print "\n\e[0mConversione terminata !"

End


Public Sub PLine_End()

 bo = True

End

Convertire un file video senza audio nel formato Matroska

Si otterrà un file video del formato Matroska, ma privo di audio:

Private pl As MediaPipeline
Private bo As Boolean


Public Sub Main()

 Dim src, dcb, vdc, enc, mux, snk As MediaControl

 pl = New MediaPipeline As "PLine"

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file/video"
 dcb = New MediaControl(pl, "decodebin")
 vdc = New MediaControl(pl, "videoconvert")
 enc = New MediaControl(pl, "x264enc")
 mux = New MediaControl(pl, "matroskamux")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/video.mkv"

 src.LinkTo(dcb)
 dcb.LinkLaterTo(vdc)
 vdc.LinkTo(enc)
 enc.LinkTo(mux)
 mux.LinkTo(snk)

 pl.Play()

 While pl.Duration < 1
   Wait 0.01
 Wend
 Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 While Not bo
   Write "\r\e[0mTempo trascorso:     \e[31m" & Time(0, 0, 0, pl.Position * 1000)
   Wait 0.01
 Wend

 pl.Close
 Quit

 Print "\n\e[0mConversione terminata !"

End


Public Sub PLine_End()

 bo = True

End

Convertire un file video senza audio nel formato MP4

Si otterrà un file video del formato MP4, ma privo di audio:

Private pl As MediaPipeline
Private bo As Boolean


Public Sub Main()

 Dim src, dcb, vdc, enc, mux, snk As MediaControl

 pl = New MediaPipeline As "PLine"

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file/video"
 dcb = New MediaControl(pl, "decodebin")
 vdc = New MediaControl(pl, "videoconvert")
 enc = New MediaControl(pl, "x264enc")
 mux = New MediaControl(pl, "mp4mux")
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/video.mp4"

 src.LinkTo(dcb)
 dcb.LinkLaterTo(vdc)
 vdc.LinkTo(enc)
 enc.LinkTo(mux)
 mux.LinkTo(snk)

 pl.Play()

 While pl.Duration < 1
   Wait 0.01
 Wend
 Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000)
 While Not bo
   Write "\r\e[0mTempo trascorso:     \e[31m" & Time(0, 0, 0, pl.Position * 1000)
   Wait 0.01
 Wend

 pl.Close
 Quit

 Print "\n\e[0mConversione terminata !"

End


Public Sub PLine_End()

 bo = True

End