Por causa de um projecto, perdi imenso tempo a tentar implementar uma ferramenta que me convertesse ficheiros de vídeos, on Upload, para flv. (flash).
Não foi fácil, principalmente por querer apenas utilizar recursos freeware.
Deixo aqui o código de implementação em Code Behind para Vb.Net
-----------------------
Protected Sub BtAddTrailler_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_Submit.Click
'--- fileuploadImageVideo é o nome que dei á ferramenta/componente do VS para uploads
If fileuploadImageVideo.HasFile Then
'-- Server.MapPath indica a pasta para onde é feito o upload
fileuploadImageVideo.SaveAs(Server.MapPath("~\Uploads\Original") & "\" & fileuploadImageVideo.FileName)
'----Conversão de Video
'- Busca o path da aplicação
Dim AppPath As String = Request.PhysicalApplicationPath
'-- Path input
Dim inputPath As String = ("Uploads\Original\") & fileuploadImageVideo.FileName
'-- Path output
Dim outputPath As String = ("Uploads\Videos\") & fileuploadImageVideo.FileName.Remove(fileuploadImageVideo.FileName.IndexOf(".")) & ".flv"
'-- guarda a string para o delete
FicheiroD = "~\Uploads\Original\" & fileuploadImageVideo.FileName
FicheiroV = "~\Uploads\Videos\" & fileuploadImageVideo.FileName
'-- Comando ffmpeg
Dim fileargs As String = "-i " & inputPath & " -ar 44100 -ab 96 -f flv " & outputPath & ""
'-- função para executar comandos
Dim proc As New System.Diagnostics.Process
proc.StartInfo.FileName = AppPath & ("ffmpeg")
proc.StartInfo.WorkingDirectory = Server.MapPath("~\")
proc.StartInfo.Arguments = fileargs
proc.StartInfo.UseShellExecute = False
proc.StartInfo.CreateNoWindow = False
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.WindowStyle = Diagnostics.ProcessWindowStyle.Hidden
Try
proc.Start()
Response.Write("Ficheiro carregado com sucesso!")
LabelTrailler.Text = fileuploadImageVideo.FileName.Remove(fileuploadImageVideo.FileName.IndexOf(".")) & ".flv"
Catch ex As Exception
MsgBox("O ficheiro que carregou no servidor está corrompido! Por favor carregue outro ficheiro.")
System.IO.File.Delete(Server.MapPath("~\Uploads\Original\" & fileuploadImageVideo.FileName))
End Try
Else
MsgBox("Não seleccionou ficheiro para carregar no servidor")
End If
End Sub
End Class
'------ Fim de código
É necessário ainda o ficheiro ffmpeg.exe e alguns codecs. para o código acima todos os ficheiros estão na raiz da aplicação.
Deixo o link para descarregar os ficheiros necessário.... já que dá um pouco de trabalho tentar descarregar todos individualmente.
FFMpeg and Others
Espero ter ajudado!
Sem comentários:
Enviar um comentário