加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

视频m3u8文件转ts视频,vb.net源码(各小段视频下载合并)

发布时间:2020-12-17 07:43:04 所属栏目:百科 来源:网络整理
导读:Imports System.IOImports System.ThreadingImports System.Text.RegularExpressionsPublic Class Form1 Dim mythread As Thread Dim strWebFile() As String Dim Flag As String Private Sub btnChange_Click(sender As Object,e As EventArgs) Handles btn
Imports System.IO
Imports System.Threading
Imports System.Text.RegularExpressions

Public Class Form1
    Dim mythread As Thread
    Dim strWebFile() As String
    Dim Flag As String

    Private Sub btnChange_Click(sender As Object,e As EventArgs) Handles btnChange.Click
        Dim i As Integer,j As Integer,myfile As String,strAllfile() As String

        lblState.Text = "检测目录..."
        Dim fi As New DirectoryInfo("D:Open21") '创建两个目录
        If Not fi.Exists Then
            fi.Create()
        End If
        fi = Nothing
        fi = New DirectoryInfo("D:Open211")
        If Not fi.Exists Then
            fi.Create()
        End If

        dlgOpen.Multiselect = True                      '输入m3u8原始文件
        dlgOpen.Filter = "m3u8 files (*.m3u8)|*.m3u8"
        If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then
            strAllFile = dlgOpen.FileNames.ToArray
        Else
            Exit Sub
        End If

        lblState.Text = "逐个文件分析...."
        For i = 0 To strAllfile.GetUpperBound(0)

            Dim fso As New StreamReader(strAllfile(i))  '逐个m3u8文件读取
            Dim strTemp As String = fso.ReadToEnd

            lblState.Text = "提取服务器上各小TS地址"
            Dim reg As New Regex("http:[^,]*.ts")       '提取服务器上各小TS地址
            For j = 1 To reg.Matches(strTemp).Count
                ReDim Preserve strWebFile(j - 1)
                strWebFile(j - 1) = reg.Matches(strTemp)(j - 1).Value
            Next

            For j = 0 To strWebFile.GetUpperBound(0)    '下载各小Ts文件
                Flag = "down"
                lblState.Text = "下载第" & i + 1 & "个文件中第" & j + 1 & "号ts视频文件..."
                mythread = New Thread(AddressOf DownFile)
                mythread.Start(j)

                Do While Flag = "down"
                    Application.DoEvents()
                Loop
            Next

            lblState.Text = "第" & i & "个文件全部小ts下载完成!"
            Dim file As New FileInfo(strAllfile(i))
            myfile = "D:Open21" & Replace(file.Name,".m3u8","") & ".ts"
            '合并
            j = Shell("cmd /c copy /b D:Open211*.ts  """ & myfile & """",vbNormalFocus) ',vbHide)
            System.Threading.Thread.Sleep(60000) '等待6秒,上面基本合并完成
            Kill("D:Open211*.ts") '删除
        Next
    End Sub

    Private Sub DownFile(ByVal n As Integer)
        My.Computer.Network.DownloadFile(strWebFile(n),"D:Open211" & n + 1 & ".ts")

        Flag = "stop"
        mythread.Abort()
    End Sub

End Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读