Blog Linux Avante

ffmpegfs é um sistema de arquivos baseado em FUSE para transcodificação de vídeo e áudio em tempo real quando aberto

16 de junho de 2020

Recentemente me deparei com o ffmpegfs e o achei bastante útil, então pensei em fazer um post sobre ele, especialmente porque não há outros artigos sobre ele.

transcodificação automática ffmpegfs

ffmpegfs é um sistema de arquivos de transcodificação somente leitura baseado em FUSE gratuito e de código aberto que converte formatos de áudio e vídeo instantaneamente quando aberto e lido. Suporta muitos formatos, incluindo MP4, WebM, OGG, MP3, OPUS, MOV, ProRes (um contêiner MOV para vídeo Apple Prores e áudio PCM) e WAV, entre outros.

Isso é útil no caso de você ter muitos arquivos em sua coleção de mídia que não podem ser reproduzidos diretamente por algum hardware ou software (por exemplo, DaVinci Resolve, que tem suporte limitado a codecs na versão Linux gratuita). Em vez de transcodificar toda a coleção de mídia você pode usar ffmpegfs para transcodificar os arquivos em tempo real, quando eles são acessados / reproduzidos. Você também pode usar isso para transcodificar facilmente os arquivos: basta colocar alguns arquivos na pasta que você usou como um diretório de entrada para ffmpegfs, em seguida, copie os arquivos da pasta de saída ffmpegfs e os arquivos resultantes serão transcodificados para o formato que você especificou para ffmpegfs.

ffmpegfs é escrito em C e C ++ e faz uso das bibliotecas FUSE. Ele também precisa do FFmpeg para funcionar. Libav também era compatível, mas está desabilitado porque parece que não funciona corretamente. O suporte Libav deve ser retirado em breve.

É assim que esta ferramenta funciona. O comando ffmpegfs monta o diretório IN_DIR (que contém sua coleção de mídia) em OUT_DIR. Acessar OUT_DIR mostra o conteúdo de IN_DIR, com todos os arquivos de mídia suportados renomeados e transcodificados de forma transparente para um dos formatos de destino suportados no acesso.

Recursos do ffmpegfs:

  • A transcodificação inteligente pode criar diferentes formatos de saída para arquivos de vídeo e áudio. Por exemplo, arquivos de vídeo podem ser convertidos em MOV e arquivos de áudio em AIFF. Especifique o tipo de arquivo de vídeo e áudio separado por um sinal + (por exemplo: --desttype=mov+aiff)
  • "Cópia automática" realiza cópia de fluxo inteligente, por exemplo, se transcodificar um fluxo de transporte que já representa um vídeo H264 e/ou fluxo de áudio AAC, seria possível simplesmente reembalá-lo em um contêiner mp4 sem recodificação. Opções de autocópia: OFF (nunca copiar streams, transcodificar sempre), MATCH (copiar stream se o destino suportar codec), MATCHLIMIT (igual a MATCH, apenas copiar se o alvo não for maior, transcodificar caso contrário), STRICT (copiar stream se o codec corresponder ao destino desejado , transcodifique caso contrário) e STRICTLIMIT (igual a STRICT, apenas copie se o destino não for maior, transcodifique caso contrário)
  • Perfis de transcodificação integrados otimizados para navegador da web como Firefox, MS Edge e IE 11+, Chrome, Safari, Opera ou Maxthon
  • Especifique a taxa de bits de vídeo e áudio, largura e altura do vídeo, desentrelaque, habilite a arte do álbum no arquivo de saída e muito mais
  • Cache com várias opções
  • Suporte para DVD/Blu-ray
  • Especifique o número de threads do transcodificador

O suporte do Microsoft Windows está planejado para versões futuras.

Outros artigos relacionados ao FFmpeg do Linux Uprising que você pode gostar:

Vamos dar uma olhada em alguns exemplos de ffmpegfs.

Use ffmpegfs para transcodificar todos os vídeos da pasta ~/Videos para ~/ffmpegfs para WebM (allow_other: apenas o acesso de rootfbd0278876 para todos os usuários, incluindo o acesso rootfabd027887621788, incluindo o acesso de rootfabd027887621788, incluindo o acesso de rootfabd2278876 **, incluindo o acesso de rootfabd02788762, incluindo os arquivos de acesso à rootfabd: 1702788, incluindo o acesso à raiz do mdf44;

Comandos para usar no terminal

ffmpegfs --desttype=webm ~/Videos/Movies ~/ffmpegfs -o allow_other,ro

Por padrão, --desttype é definido como mp4.

Observe que a opção allow_other FUSE por padrão só pode ser usada pelo root. Você deve executar ffmpegfs como root ou melhor adicionar user_allow_other a /etc/fuse.conf.

Use ffmpegfs para transcodificar todos os arquivos de música de ~/Music usando ~/ffmpegfs como o diretório de saída, para MP3 com uma taxa de bits de áudio de 256K: **

Comandos para usar no terminal

ffmpegfs --audiobitrate=256K --desttype=mp3 ~/Music ~/ffmpegfs2 -o allow_other,ro

Transcodifique todos os arquivos de vídeo de ~/media para MOV e todos os arquivos de áudio da mesma pasta para AIFF, para ~/transcoded como a pasta de saída, com o nível de registro definido como DEBUG (as mensagens de log padrão são enviadas para o modo de depuração padrão ), e com o caso residindo em /tmp/cache:

Comandos para usar no terminal

ffmpegfs --desttype=mov+aiff --log_maxlevel=DEBUG --cachepath=/tmp/cache ~/media ~/transcoded

Você também pode montar o sistema de arquivos via /etc/fstab. Para obter mais informações sobre como usar o ffmpegfs, consulte sua ajuda (ffmpegfs --help) e a página do manual (man ffmpegfs). Você também pode visitar sua documentação online, embora observe que alguns bits estão desatualizados.

Instale ffmpegfs

ffmpegfs não está disponível nos repositórios oficiais para a maioria das distribuições Linux. O Debian recentemente adicionou ffmpegfs aos repositórios Bullseye e Sid e, como resultado, este pacote agora também está disponível nos repositórios Ubuntu 20.04 e em distribuições Linux baseadas nele, como Pop!_OS 20.04. Instale-o nestas distribuições Linux a partir dos repositórios:

Comandos para usar no terminal

sudo apt install ffmpegfs

Para Arch Linux e Manjaro, você pode obter ffmpegfs no Arch User Repository (AUR), onde está disponível como a versão estável mais recente ou o código mais recente do Git.

Em outras distribuições Linux, você precisará instalá-lo a partir do código-fonte. Consulte as instruções oficiais de instalação para obter detalhes.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.