Após dez meses de desenvolvimento, o pacote multimídia FFmpeg 5.0 está disponível, incluindo um conjunto de aplicativos e uma coleção de bibliotecas para operações com vários formatos multimídia (gravação, conversão e decodificação de áudio e vídeo). O pacote é distribuído sob licenças LGPL e GPL, e o desenvolvimento do FFmpeg é feito em conjunto com o projeto MPlayer. A mudança significativa no número da versão se deve a alterações substanciais na API e à adoção de um novo esquema de lançamentos, segundo o qual novas versões significativas serão lançadas anualmente, enquanto versões com suporte estendido sairão a cada dois anos. O FFmpeg 5.0 será o primeiro lançamento LTS do projeto.
As mudanças acrescentadas no FFmpeg 5.0 incluem:
- Foi realizada uma limpeza significativa das APIs antigas para codificação e decodificação e a transição para uma nova API N:M, que oferece uma interface de programação unificada para áudio e vídeo, além de separar os codecs para os fluxos de entrada e saída. Todas as APIs antigas marcadas como obsoletas foram removidas. Uma nova API para filtros de bitstream foi adicionada. Os formatos e codecs foram separados — os descompactadores de contêineres de mídia não incorporam mais todo o contexto dos decodificadores. APIs para registro de codecs e formatos foram removidas — todos os formatos agora estão sempre registrados.
- A biblioteca libavresample foi removida.
- A biblioteca libswscale recebeu uma API mais simples baseada em AVFrame.
- O suporte para a API gráfica Vulkan foi significativamente aprimorado.
- Adicionada a suporte para aceleração de hardware na decodificação e codificação dos formatos VP9 e ProRes usando a API VideoToolbox.
- Suporte adicionado para a arquitetura LoongArch, utilizada em processadores Loongson, assim como suporte para as extensões SIMD LSX e LASX oferecidas em LoongArch. Otimizações específicas para LoongArch foram implementadas para os codecs H.264, VP8 e VP9.
- Adicionada a suporte para o protocolo Concatf, que define o formato para a transmissão da lista de recursos ("ffplay concatf:split.txt").
- Novos decodificadores foram adicionados: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (imagens rasterizada).
- Novos codificadores foram adicionados: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. Os parâmetros do codificador AAC foram alterados para alcançar uma qualidade superior.
- Adicionados empacotadores de contêineres de mídia (muxer): Westwood AUD, Argonaut Games CVG, AV1 (bitstream de baixo overhead).
- Adicionados descompactadores de contêineres de mídia (demuxer): IMF, Argonaut Games CVG.
- Um novo parser foi adicionado para o codec de áudio AMR (Adaptive Multi-Rate).
- Adicionado um empacotador de dados payload (packetizer) para transmissão de vídeo não comprimido usando o protocolo RTP (RFC 4175).
- Novos filtros para vídeo:
- segment e asegment — divisão de um fluxo de vídeo ou áudio em vários fluxos com separação por tempo ou quadros.
- hsvkey e hsvhold — substituem na vídeo parte do espectro de cores HSV por valores em tons de cinza.
- grayworld — correção de cor de vídeo utilizando um algoritmo baseado na hipótese do mundo cinza.
- scharr — aplicação do operador Scharr (versão do operador Sobel com coeficientes diferentes) ao vídeo de entrada.
- morpho — permite a aplicação de várias transformações morfológicas ao vídeo.
- latency e alatency — medem a latência mínima e máxima da filtragem para o filtro aplicado anteriormente.
- limitdiff — determina a diferença entre dois ou três fluxos de vídeo.
- xcorrelate — calcula a correlação cruzada entre fluxos de vídeo.
- varblur — desfoque variável do vídeo com definição do raio de desfoque a partir de um segundo vídeo.
- huesaturation — aplicação de ajustes de matiz, saturação ou intensidade ao vídeo.
- colorspectrum — geração de fluxo de vídeo com espectro de cores especificado.
- libplacebo — aplicação de shaders HDR da biblioteca libplacebo para processamento.
- vflip_vulkan, hflip_vulkan e flip_vulkan — variantes de filtros de espelhamento vertical ou horizontal do vídeo (vflip, hflip e flip), implementadas com a API gráfica Vulkan.
- yadif_videotoolbox — variante do filtro de desentrelaçamento yadif baseada no framework VideoToolbox.
- Novos filtros para áudio:
- apsyclip — aplicação de um cortador psicoacústico ao fluxo de áudio.
- afwtdn — suprime ruído de banda larga.
- adecorrelate — aplicação de um algoritmo de decorrelação ao fluxo de entrada.
- atilt — aplicação de deslocamento espectral para uma banda de frequência especificada.
- asdr — determina a distorção do sinal entre dois fluxos de áudio.
- aspectralstats — exibe estatísticas com características espectrais de cada canal de áudio.
- adynamicsmooth — suavização dinâmica do fluxo de áudio.
- adynamicequalizer — equalização dinâmica do fluxo de áudio.
- anlmf — aplicação do algoritmo de mínimos quadrados ao fluxo de áudio.
Fonte: opennet.ru
