Convertire un file video in un formato OGG, Matroska e MP4 mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.

Convertire un file video nel formato OGG

Per convertire un file video in un file video di formato OGG mediante il Componente gb.media, è possibile usare il seguente codice:

Private pl As New MediaPipeline
Private bo As Boolean


Public Sub Main()

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

 temporaneo = Temp

 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"] = temporaneo

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

 pl.Play()

 While Not bo
   Wait 0.01
 Wend

 Copy temporaneo To "/tmp/video.ogg"

 pl.Close
 Quit 

End

Public Sub PLine_End()

 bo = True

End

Convertire un file video nel formato Matroska

Private pl As New MediaPipeline
Private bo As Boolean


Public Sub Main()

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

 temporaneo = Temp

 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"] = temporaneo

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

 pl.Play()

 While Not bo
   Wait 0.01
 Wend

 Copy temporaneo To "/tmp/video.mkv"

 pl.Close
 Quit 

End

Public Sub PLine_End()

 bo = True

End

Convertire un file video nel formato MP4

Private pl As New MediaPipeline
Private bo As Boolean


Public Sub Main()

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

 temporaneo = Temp

 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"] = temporaneo

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

 pl.Play()

 While Not bo
   Wait 0.01
 Wend

 Copy temporaneo To "/tmp/video.mp4"

 pl.Close
 Quit 

End

Public Sub PLine_End()

 bo = True

End