Criando Thumbnails de vídeos

Como não existem componentes grátis para essa função, teremos que improvisar, usando um programa externo, para isso você vai precisar alterar a segurança da pasta.

Por Programação Pular para comentários
Criando Thumbnails de vídeos Introdu??o
Como n?o existem componentes gr?tis para essa fun??o, teremos que improvisar, usando um programa externo, para isso voc? vai precisar alterar a seguran?a da pasta. Mas veremos isso mais para frente. Vamos aproveitar para fazer o sistema completo, desde o upload do arquivo.

Iniciando o exemplo
Com o Visual Studio aberto, crie um novo Web Form, com o nome que preferir. Aqui vamos usar "EnviarVideo.aspx":
Criando Thumbnails de vídeos
Figura 01. Criando aplica??o.

Agora, abra a Toolbox, arraste um controle File Upload, Button (ou Link Button, como voc? preferir) e uma Label.
Criando Thumbnails de vídeos
Figura 02. Inserindo componentes.


Com um duplo clique no objeto Button ele ir? criar a a??o.

Preencha conforme a Listagem 01:

01 - protected void Button1_Click(object sender, EventArgs e)
02 - {
03 -     if (FileUpload1.HasFile)
04 -     {
05 -         string arq_tipo = FileUpload1.FileName.Remove(0, FileUpload1.FileName.Length - 3);
06 -         if (arq_tipo.ToString() == "wmv")
07 -         {
08 -             string video = Server.MapPath("upload/") + "nome_do_video.wmv";
09 -             string imagem = Server.MapPath("upload/") + "nome_da_imagem.jpg";
10 -             FileUpload1.SaveAs(video);
11 -         }
12 -     }
13 - }

Listagem 01. Enviando v?deo.

Para quem j? estiver familiarizado com o C# ser? simples entender, mas vamos explicar por partes.

Linha 03: Verificamos se tem o arquivo foi escolhido.

Linhas 05 e 06: pegamos a extens?o do arquivo e verificamos s? um v?deo.

Linha 08 e 09: indicam o nome e a pasta dos arquivos a serem salvos (v?deo e imagem, respectivamente).

Linha 10: o v?deo ? salvo.

A primeira parte, o upload est? pronta. Vamos agora ao que realmente interessa, como tirar uma thumbnail de um arquivo de v?deo.

Para isso vamos usar um programa chamado FFMPEG, segue o aplicativo junto com o material fonte (voc? tamb?m pode encontra-lo no google).

Coloque ele numa pasta chamada ffmpeg, dentro da mesma pasta da p?gina que estamos criando a p?gina que vai executar o programa. Nessas duas pastas voc? deve dar autoriza??o para Ler, Gravar e Executar.

Depois da linha 10, vamos incluir conforme a Listagem 02:
01 - string executavel = Server.MapPath("ffmpeg/ffmpeg.exe");
02 - string parametros = " -y -i " + video + " -vframes 1 -ss 00:00:03 -an -vcodec mjpeg -f rawvideo " + imagem;
03 - System.Diagnostics.Process.Start(@executavel, parametros);

Listagem 02. Configurando captura de imagem.

Veja o que foi feito:
Linha 01: informamos o local do arquivo execut?vel.

Linha 02: definimos os par?metros para execu??o do programa. Existem v?rios par?metros, mas vou comentar apenas os mais importantes:

    * -i video = definimos o arquivo de v?deo que fizemos o upload.
    * -ss 00:00:03 = momento em que a thumbnail ser? tirada, no caso aos 3 segundos.
    * imgem = local onde a imagem ser? sava, que definimos antes.
    * voc? pode encontrar mais par?metros e formatar da forma que preferir, se fizer alguma melhora, divida com os demais d=).

Depois, vamos informar ao usu?rio que o arquivo foi salvo:

01 - Label1.Text = "V?deo enviado!";

O c?digo final ficar? igual a Listagem 03:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class EnviarVideo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string arq_tipo = FileUpload1.FileName.Remove(0, FileUpload1.FileName.Length - 3);
if (arq_tipo.ToString() == "wmv")
{
string video = Server.MapPath("upload/") + "nome_do_video.wmv";
string imagem = Server.MapPath("upload/") + "nome_da_imagem.jpg";

FileUpload1.SaveAs(video);

string executavel = Server.MapPath("ffmpeg/ffmpeg.exe");
string parametros = " -y -i " + video + " -vframes 1 -ss 00:00:03 -an -vcodec mjpeg -f rawvideo " + imagem;
System.Diagnostics.Process.Start(@executavel, parametros);

Label1.Text = "V?deo enviado!";
}
}
}
}

Listagem 03. C?digo completo.

Lembrem-se de colocar as permiss?es nas pastas, mas aten??o, preferencialmente crie uma pasta separada e use autentica??o pois essas permiss?es v?o diminuir a seguran?a da sua aplica??o.
Criando Thumbnails de vídeos

Pronto! Simples, n?o?
At? a pr?xima, enviem sugest?es.

Autor:GABRIEL DOS SANTOS POTUMATI


========================================
Conhe?a nosso parceiro e fonte desta mat?ria:

Criando Thumbnails de vídeos    

Compartilhe com seus amigos:
Quer conversar com o(a) Redação, comente:
Carregar comentários
Últimas notícias