Convertire un file video in un formato OGG, Matroska e MP4 mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 5 nov 2023 alle 16:33 di Vuott (Discussione | contributi)
Indice
Convertire un file video nel formato OGG
Ottenere una conversione in formato OGG senza audio
Si otterrà un file video del formato OGG, ma privo di audio:
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 pl.Duration < 1 Wait 0.01 Wend Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000) Repeat Write "\r\e[0mTempo trascorso: \e[31m" & Time(0, 0, 0, pl.Position * 1000) Wait 0.01 Until bo Copy temporaneo To "/tmp/video.ogg" pl.Close Quit Print "\n\e[0mConversione terminata !" End Public Sub PLine_End() bo = True End
Convertire un file video nel formato Matroska
Si otterrà un file video del formato Matroska, ma privo di audio:
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 pl.Duration < 1 Wait 0.01 Wend Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000) Repeat Write "\r\e[0mTempo trascorso: \e[31m" & Time(0, 0, 0, pl.Position * 1000) Wait 0.01 Until bo Copy temporaneo To "/tmp/video.mkv" pl.Close Quit Print "\n\e[0mConversione terminata !" End Public Sub PLine_End() bo = True End
Convertire un file video nel formato MP4
Si otterrà un file video del formato MP4, ma privo di audio:
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 pl.Duration < 1 Wait 0.01 Wend Print "Durata del file video: "; Time(0, 0, 0, pl.Duration * 1000) Repeat Write "\r\e[0mTempo trascorso: \e[31m" & Time(0, 0, 0, pl.Position * 1000) Wait 0.01 Until bo Copy temporaneo To "/tmp/video.mp4" pl.Close Quit Print "\n\e[0mConversione terminata !" End Public Sub PLine_End() bo = True End