O que é FFmpeg?
FFmpeg é uma ferramenta de linha de comando gratuita e de código aberto para transcodificar arquivos multimídia. Incluindo o conjunto de bibliotecas compartilhadas de áudio e vídeo, como libavcodec, libavformat e libavutil. Com o FFmpeg, você pode converter formatos de vídeo e áudio, definir taxas de amostragem e redimencionar vídeos.
O presente tuturial explica como instalar o FFmpeg na distro Debian e serve também para os derivados do Debian, como o Ubuntu, e exemplos para converter arquivos de áudio e vídeo.
Instalando o FFmpeg no Debian e derivados
Primeiramente, atualizar a lista de repositório do sistema
$ sudo apt update
Próxima etapa é instalar via gerenciador de pacotes do Debian e derivados
$ sudo apt install ffmpeg
Verificar a versão do FFMpeg instalada
$ ffmpeg -version
Para exibir os encoders e decoders do FFmpeg
$ ffmpeg -encoders
$ ffmpeg -decoders
Convertendo arquivo de áudio e vídeo
Após instalar o FFmpeg, veremos alguns exemplos para converter arquivos de vídeo e áudio.
Ao converter arquivo de áudio e vídeo com FFmpeg, você não precisa especificar os formatos de entrada e saída. O formato do arquivo de entrada é detectado automaticamente e o formato de saída é calculado a partir da extensão do arquivo.
Converter um arquivo de vídeo .mp4 para .webm
$ ffmpeg -i input-file.mp4 output-file.webm
Converter um arquivo de áudio .mp3 para .ogg
$ ffmpeg -i input-file.mp3 output-file.ogg
Especificando codecs
Ao converter arquivos, você pode especificar os codecs que deseja usar com a opção -c. O codec pode ser o nome de qualquer decodificador ou codificador compatível ou uma cópia de valor especial que simplesmente copia o fluxo de entrada.
Convertendo um arquivo de áudio .mp4 para .webm usando o codec de vídeo libvpx e codec de áudio libvorbis
$ ffmpeg -i input-file.mp4 -c:v libvpx -c:a libvorbis output-file.webm
Convertendo um arquivo de áudio .mp3 para .ogg codificado com o codec libopus
$ ffmpeg -i input-file.mp4 -c:a libopus output-file.ogg
Convertendo URL RTSP Live stream para HLS
Se você quer exibir uma live RTSP para um browser, você pode fazê-lo transcodificando-o para HLS. Você pode usar o FFmpeg para fazer isso.
$ ffmpeg -fflags nobuffer \
-rtsp_transport tcp \
-i <sua URL RTSP> \
-vsync 0 \
-copyts \
-vcodec copy \
-movflags frag_keyframe+empty_moov \
-an \
-hls_flags delete_segments+append_list \
-f segment \
-segment_list_flags live \
-segment_time 0.5 \
-segment_list_size 1 \
-segment_format mpegts \
-segment_list <diretório-destino>/index.m3u8 \
-segment_list_type m3u8 \
-segment_list_entry_prefix <diretorio-destino>/ \
<diretorio-destino>/%3d.ts
Depois de executar este comando, você encontrará o arquivo index.m3u8 junto com vários .ts (arquivos de segmento) no diretório destino que especificou no comando. O index.m3u8 é o arquivo playlist e os arquivos .ts são os fragmentos. Você precisa servir esses arquivos usando um servidor HTTP (Apache, Nginx ou qualquer outro). Para exibir este vídeo em um navegador, você precisa incluir este arquivo index.m3u8 na tag de vídeo em sua página HTML, conforme o exemplo abaixo.
<video id="video-player" controls preload="none">
<source src="/diretorio-destino/index.m3u8" type="application/x-mpegURL">
</video>
Uma vez feito isso, acesse até a página HTML do seu navegador, você será capaz de ver a transmissão ao vivo no Windows, Linux e macOS, sem nenhum plugin.
No diretorio-destino é o DocumentRoot que corresponde o diretório do servidor HTTP, no caso do Apache e Nginx, o DocumentRoot default é /var/www/html. Caso tenha diversos vídeos a ser transmitidos ao vivo para os usuários (clientes) acessarem no navegador, uma sugestão é criar dois diretórios a partir do DocumentRoot default, o primeiro sendo lives e o segundo sendo o titulo da live correspondente.
Ex: /var/www/html/lives/titulolive. Esse seria o diretório destino que poderia especificar no comando para converter RTSP para HLS. Assim no navegador, os usuários (clientes) podem acessar: https://dominio.com/lives/titulolive
Conclusão
Você instalou com sucesso o FFmpeg no Debian ou Ubuntu. Agora você pode acessar a página de documentação oficial do FFmpeg e aprender como usar o FFmpeg para converter seus arquivo de vídeo e áudio.
Como bônus aprendeu como converter URL RTSP para HLS usando FFmpeg e exibir na página web.
Feito!
Nenhum comentário:
Postar um comentário