Após cinco meses de desenvolvimento, o pacote multimídia FFmpeg 7.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 formatos de áudio e vídeo). O pacote é distribuído sob as licenças LGPL e GPL, e o desenvolvimento do FFmpeg está sendo feito em paralelo com o projeto MPlayer.
Entre as mudanças adicionadas no FFmpeg 7.0, destacam-se:
- Na ferramenta de linha de comando ffmpeg, foi garantida a execução paralela das operações de descompressão/compressão de contêineres de mídia, decodificação, codificação e aplicação de filtros.
- Foi implementado o suporte para codificação e decodificação de vídeo no formato MPEG-5 (EVC — Essential Video Coding), utilizando a biblioteca externa libxevd.
- Adicionados demuxers e muxers para o formato QOA (Quite OK Audio), utilizado para a transmissão de áudio sem perda de qualidade. Afirma-se que a decodificação do QOA é realizada três vezes mais rápido que o Ogg-Vorbis, alcançando uma qualidade e nível de compressão mais altos em comparação com o ADPCM.
- Adicionados demuxers e muxers para o formato IAMF (Immersive Audio Model and Format), que define um contêiner para a distribuição de áudio tridimensional. O formato permite a transmissão de informações adicionais necessárias para os algoritmos de recriação da cena de áudio e mixagem de som, além de considerar a propagação dos sinais sonoros no espaço tridimensional para recriar um som o mais próximo possível do natural. Foi garantido o suporte para metadados IAMF nos formatos MP4 e ISOBMFF.
- Adicionado um decodificador experimental para o formato VVC (Versatile Video Coding), também conhecido como o padrão de compressão de vídeo H.266, desenvolvido conjuntamente pelos grupos de trabalho MPEG (ISO/IEC JTC 1) e VCEG (ITU-T), com a participação de empresas como Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm e Sony. O H.266 substitui o H.265 (HEVC) e oferece alta eficiência na transmissão e armazenamento de todas as resoluções de tela (de SD e HD até 4K e 8K), suportando vídeo com faixa dinâmica expandida (HDR, High Dynamic Range) e vídeo panorâmico em 360 graus.
- Foi implementada a possibilidade de uso da API D3D12VA (Direct 3D 12 Video Encoding) para aceleração de hardware na decodificação de formatos H264, HEVC, VP9, AV1, MPEG-2 e VC1.
- A ferramenta ffplay agora suporta aceleração de hardware para decodificação, utilizando a API Vulkan e libplacebo.
- Suporte adicionado ao protocolo Content URI, utilizado na plataforma Android.
- Aumentados os requisitos do ambiente para construção — para compilar o FFmpeg agora é necessário um compilador que suporte o padrão C11. Em uma das próximas versões, a versão mínima suportada planejada é o C17.
- Para codecs baseados em QSV (Intel Quick Sync Video), o método de controle de bitrate padrão foi alterado de VBR (bitrate variável) para CQP (bitrate constante).
- Adicionado um novo descompactador de contêineres de mídia DVD-Video, baseado nas bibliotecas libdvdnav e libdvdread do projeto VideoLAN.
- Adicionada a possibilidade de transmissão de metadados em pacotes (PacketTypeMetadata) na implementação do formato flv.
- Adicionado o codificador DXV DXT1.
- Adicionado o decodificador LEAD MCMP.
- Adicionados os empacotadores de contêineres (muxer) RCWT (Raw Captions with Time) e AEA.
- Para os formatos MP4 e ISOBMFF, foi implementada a possibilidade de inclusão de metadados AVE (Ambient Viewing Environment).
- Implementado suporte à tecnologia AFGS1 (AOMedia Film Grain Synthesis 1), utilizada na especificação AV1 Film Grain e destinada a melhorar a eficácia de imagens granuladas.
- Adicionado suporte a imagens estáticas (still) nos formatos HEIF e AVIF, bem como a imagens mosaico estáticas.
- Para o formato AV1, foi implementado o perfil Dolby Vision.
- Garantido suporte à transmissão de metadados HDR10 durante a codificação através das bibliotecas libx264, libx265 e libsvtav1.
- Adicionadas otimizações para acelerar o funcionamento do formato HEVC em arquiteturas AArch64 e Loongarch. Foram realizadas otimizações de desempenho para acelerar a codificação e decodificação dos formatos AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 e VP8 em sistemas com arquitetura RISC-V.
- Novos filtros:
- tiltandshift — transformação de vídeo ao estilo Tilt-Shift, onde a atenção se concentra em uma parte específica da imagem, enquanto o restante do conteúdo é desfocado para criar uma impressão de miniatura.
- quirc — reconhecimento e decodificação de QR Codes usando a biblioteca libquirc.
- fsync — sincronização de quadros de vídeo com base em informações de um arquivo externo.
- aap — utiliza o algoritmo Affine Projection para determinar a similaridade de fragmentos sonoros.
- Adicionado backend dnn para a criação de filtros que utilizam modelos de aprendizado de máquina, carregados através da libtorch.
- Adicionado o filtro bitstream showinfo para depuração de informações sobre pacotes.
- Adicionado o manipulador qrencodesrc para inserção de QR Codes.
- A ferramenta ffmpeg agora suporta decodificadores loopback, permitindo o uso da opção '-bsf' para fluxos de entrada e saída, e removidas as opções obsoletas '-psnr' e '-map_channel'.
- Na ferramenta ffprobe, implementada a opção '-show_stream_groups' e garantida a saída de metadados ao usar a opção '-export_side_data film_grain'.
Fonte: opennet.ru
