Posted on: August 11, 2021 06:33 PM
Posted by: Renato
Views: 1128
INSTALAR E UTILIZAR O FFMPEG NO UBUNTU
Como instalar e usar o FFmpeg no Ubuntu 20.04
O FFmpeg é uma coleção de ferramentas que grava, converte e cria arquivos multimídia em diversos formatos, sendo um programa em linha de comando, software livre de código aberto. Ele contém uma série de bibliotecas públicas de áudio e vídeo, como libavcodec, libavformat e libavutil. Com o FFmpeg você pode realizar a conversão entre diversos formatos de áudio e vídeo, definir taxas de amostragem, capturar streaming de áudio ou vídeo, além de redimensionar vídeos.
Neste artigo irei demonstrar como instalar o FFmpeg no Ubuntu 20.04 LTS.
INSTALAR O FFMPEG
Os repositórios oficiais do Ubuntu possuem os pacotes do FFmpeg, portanto podemos realizar a instalação através do comando apt, sendo então, esta é a forma mais prática de realizar a instalação no Ubuntu. Para realizar a instalação, execute os seguintes comandos:
sudo apt update
sudo apt install ffmpeg
Para verificar a instalação, utilize o comando ffmpeg -version, que exibe sua versão.
ffmpeg -version
O retorno do comando acima deve ser parecido com esta:
ffmpeg version 4.2.4-1ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)
Para exibir todos os encoders e decoders do FFmpeg, utilize:
ffmpeg -encoders
ffmpeg -decoders
Pronto! O FFmpeg está instalado no seu computador.
EXEMPLOS COM O FFMPEG
Iremos agora abordar alguns exemplos de utilização do ffmpeg.
Conversão básica #
CONVERSÃO
Quando convertemos áudio e vídeo com o ffmpeg, não é necessário especificar os formatos de entrada e de saída, já que, o formato de entrada é detectado automaticamente, enquanto que o de saída é definido pela extensão do arquivo.
Converter um vídeo do mp4 para webm:
ffmpeg -i input.mp4 output.webm
Converter um áudio do mp3 para ogg:
ffmpeg -i input.mp3 output.ogg
ESPECIFICANDO OS CODECS
Quando convertemos arquivos, podemos utilizar a opção -c para definir os codecs que serão utilizados. Para isto, podemos utilizar o nome de qualquer decoder/encoder ou o valor copy que copia o valor do arquivo de entrada.
Converter um arquivo de vídeo do mp4 para o webm, utilizando o codec libvpx e o codec de áudio liborbis:
ffmpeg -i input.mp4 -c:v libvpx -c:a libvorbis output.webm
Convertendo um arquivo de áudio do mp3 para o ogg utilizando o codec libopus:
ffmpeg -i input.mp3 -c:a libopus output.ogg
Dicas
renato@renato-dev:~/Videos$ which ffmpeg
/usr/bin/ffmpeg
renato@renato-dev:~/Videos$ which ffprobe
/usr/bin/ffprobe
ffmpeg -y -i route.mp4 -threads 12 -vcodec libx264 -acodec libmp3lame -b:v 500k -refs 6 -coder 1 -sc_threshold 40 -flags +loop -me_range 16 -subq 7 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -trellis 1 -b:a 128k -vf "[in]scale=960:540 [out]" -pass 1 route1.mp4
ffmpeg -i route.mp4 output.webm
ffmpeg '-y' '-i' route.mp4 '-async' '1' '-metadata:s:v:0' 'start_time=0' '-threads' '12' '-vcodec' 'libx264' '-acodec' 'libfaac' '-b:v' '1000k' '-refs' '6' '-coder' '1' '-sc_threshold' '40' '-flags' '+loop' '-me_range' '16' '-subq' '7' '-i_qfactor' '0.71' '-qcomp' '0.6' '-qdiff' '4' '-trellis' '1' '-b:a' '128k' '-pass' '1' '-passlogfile' '/tmp/ffmpeg-passes57ad320a1b685j794u/pass-57ad320a1b716' 2efeb41a1a7085a1dbd469c4895ac23e.mp4
Abaixo exemplos com PHP
'ffprobe.binaries' => '/usr/local/bin/ffprobe']);
'ffprobe.binaries' => '/usr/local/bin/ffprobe']);
$ffprobe = $ffprobe_prep->format($video_file);
$duration = $ffprobe->get('duration');
// TODO: Try stereo later...
$format = new FFMpeg\Format\Video\X264('libmp3lame', 'libx264');
$format
-> setKiloBitrate(128)
-> setAudioChannels(1)
-> setAudioKiloBitrate(8);
->streams($video_file)
->videos()
->first();
// Resize to 558 x 314 and resize to fit width.
$video
->filters()
->resize(new FFMpeg\Coordinate\Dimension(VIDEO_WIDTH, ceil(VIDEO_WIDTH / 16 * 9)));
}
if($duration > MAX_VIDEO_PLAYTIME){
->filters()
->clip(FFMpeg\Coordinate\TimeCode::fromSeconds(0), FFMpeg\Coordinate\TimeCode::fromSeconds(MAX_VIDEO_PLAYTIME));
}
$video
->filters()
->framerate(new FFMpeg\Coordinate\FrameRate(16), 9);
$video->filters()->synchronize();
'ffmpeg.binaries' => '/opt/local/ffmpeg/bin/ffmpeg',
'ffprobe.binaries' => '/opt/local/ffmpeg/bin/ffprobe',
'timeout' => 3600,//The timeout for the underlying process
'ffmpeg.threads' => 12, //The number of threads that FFMpeg should use
));
'position'=>'relative',
'bottom'=>50,
'right'=>50
);
CONCLUSÕES
Demonstrei como instalar e utilizar o FFmpeg no Ubuntu 20.04 LTS. Convido você a visitar a documentação oficial do site ffmpeg Documentation, além de realizar conversões nos seus arquivos de áudio e vídeo do seu computador.
Se você encontrou um problema ou tem feedback, deixe um comentário abaixo.
Fontes:
- https://www.vivaolinux.com.br/artigo/Instalar-e-utilizar-o-FFmpeg-no-Ubuntu
- https://linuxize.com/post/how-to-install-ffmpeg-on-ubuntu-20-04/
Donate to Site
Renato
Developer