Hi
I am trying create a site to upload a video files from a file upload control and convert them into a single format before storing the file path in a database for easy retrieval. I have managed to do all of the uploading and storing file path part, but i'm struggling with the converting. I have listed my code below.
Please help as i'm new to asp and i'm really struggling with the ffmpeg thing??
Thanks in advance
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConfirm.Click
If IsPostBack Then
'declare the file path to store uploads
Dim path As String = Server.MapPath("~/UploadedVideos/")
Dim fileOK As Boolean = False
'If the file upload control has a file
If FileUploadVideo.HasFile Then
'check to see if the number of characters does not exceed 50 and is not empty
If Len(txtVideoName.Text) <= 50 And txtVideoName.Text IsNot "" Then
'clear the error message
lblErrorTitle.Text = ""
'check to see if a course has been added to the list
If lstCourses.SelectedIndex <> -1 Then
lblErrorCourse.Text = ""
'check to see if a module has been added to the list
If lstModules.SelectedIndex <> -1 Then
lblErrorModule.Text = ""
'check to see if the number of characters does not exceed 50 and is not empty
If Len(txtKeywords.Text) <= 50 And txtKeywords.Text IsNot "" And txtKeywords.Text = Replace(txtKeywords.Text, " ", "") Then
'clear the error message
lblErrorKeywords.Text = ""
'check the file to make sure it is of the required type
Dim fileExtension As String
fileExtension = System.IO.Path. _
GetExtension(FileUploadVideo.FileName).ToLower()
'declare the allowed extentions
Dim allowedExtensions As String() = _
{".mov", ".wmv", ".avi", ".vob", ".mp4"}
'loop to check the extention type
For i As Integer = 0 To allowedExtensions.Length - 1
If fileExtension = allowedExtensions(i) Then
'//////////////////////////// Convert File Here
Dim ffmpeg As Process
' creating process
Dim video As String
'Dim mpg As String
video = Page.MapPath(FileUploadVideo.FileName)
' setting video input name with path
'mpg = Page.MapPath("") & "\video.flv"
' thumb name with path !
ffmpeg = New Process()
ffmpeg.StartInfo.Arguments = " -i " & video & " -target pal-flv output.flv"
' arguments !
ffmpeg.StartInfo.FileName = Page.MapPath("ffmpeg.exe")
ffmpeg.Start()
' start !
ffmpeg.WaitForExit()
ffmpeg.Close()
fileOK = True
End If
'////////////////////////////////Upload File path
Next
If fileOK Then
Using Conn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
Try
'open the database connection
Conn.Open()
Dim FilePath = System.AppDomain.CurrentDomain.BaseDirectory & "UploadedVideos\" & FileUploadVideo.FileName
'Dim FilePath = path & FileUploadVideo.FileName
'insert statement to add the video details to the database
Const SQL As String = "INSERT INTO [Video] ([VideoName], [CourseNo], [ModuleNo], [DateUploaded], [VideoUrl], [Keywords]) VALUES (@VideoName, @CourseNo, @ModuleNo, @DateUploaded, @VideoUrl, @Keywords)"
Dim cmd As New SqlCommand(SQL, Conn)
cmd.Parameters.AddWithValue("@VideoName", txtVideoName.Text.Trim())
cmd.Parameters.AddWithValue("@CourseNo", cboCourse.SelectedValue())
cmd.Parameters.AddWithValue("@ModuleNo", cboModule.SelectedValue())
cmd.Parameters.AddWithValue("@DateUploaded", Date.Now)
cmd.Parameters.AddWithValue("@VideoUrl", FilePath)
cmd.Parameters.AddWithValue("@Keywords", txtKeywords.Text.Trim())
FileUploadVideo.PostedFile.SaveAs(path & _
FileUploadVideo.FileName)
'MsgBox("File Uploaded Successfully - Thank You", MsgBoxStyle.Information, "Video Upload")
'Successful upload message
lblError.Text = "File Uploaded Successfully - Thank You"
'clear the fields
lblHoldFilePath.Text = ""
lstModules.Items.Clear()
lstCourses.Items.Clear()
txtVideoName.Text = ""
txtKeywords.Text = ""
cboCourse.Text = ""
cboModule.Text = ""
cmd.ExecuteNonQuery()
'close the database connection
Conn.Close()
Catch ex As Exception
'file can't be uploaded error message
lblError.Text = "File could not be uploaded." & ex.Message
End Try
End Using
Else
'error message for incorrect file type
lblError.Text = "Cannot accept files of this type."
End If
Else
'error message for too many characters in the video name field
lblErrorKeywords.Text = "This is a required field with a maximum length of 50 characters and no spaces!"
End If
Else
lblErrorModule.Text = "You must add at least 1 Module to the list"
End If
Else
lblErrorCourse.Text = "You must add at least 1 course to the list"
End If
Else
'error message for too many characters in the keywords field
lblErrorTitle.Text = "This is a required field with a maximum length of 50 characters"
End If
Else
'error message for no file selected
lblHoldFilePath.Text = "Please Choose A File!!"
End If
End If
End Sub