How Tech Giants Cut Corners to Harvest Data for A.I. by Cade Metz, Cecilia Kang, Sheera Frenkel, Stuart A. Thompson and Nico Grant


By Cade Metz, Cecilia Kang, Sheera Frenkel, Stuart A. Thompson and Nico Grant

OpenAI, Google and Meta ignored corporate policies, altered their own rules and discussed skirting copyright law as they sought online information to train their newest artificial intelligence systems.

Published: April 5, 2024 at 06:00PM

from NYT Technology https://ift.tt/OhytUxb
via IFTTT

FFmpeg 7.0 «Dijkstra» llega con mejoras de soporte, ejecución paralela y mas

FFmpeg

FFmpeg es el marco multimedia líder

FFmpeg 7.0 «Dijkstra» ya fue liberado y en esta nueva versión se presentan una serie de mejoras significativas que abarcan desde la mejora de compatibilidad con diversos formatos, asi como la introduccion de nuevas funcionalidades, mejoras en codificadores, decodificadores, correcciones de errores y más.

En esta nueva versión que se presenta de FFmpeg 7.0 una de las novedades más destacadas es la implementación de la ejecución paralela de operaciones, esto permite realizar múltiples tareas simultáneamente, como desempaquetar/empaquetar contenedores de medios, decodificar, codificar y aplicar filtros.

Otra de las mejoras que se presenta en FFmpeg 7.0 son las de compatibilidad con formatos, y es que se destaca la introduccion del soporte para la codificación y decodificación de vídeo en formato MPEG-5 (EVC – Essential Video Coding) a través de la biblioteca externa libxevd.

Además, se han añadido desempaquetadores y empaquetadores de contenedores de medios para formatos como QOA (Quite OK Audio) este formato se utiliza para la transmisión de audio sin pérdida de calidad y se destaca por su rendimiento superior en comparación con otros formatos, pues se afirma que es tres veces más rápida que la decodificación en Ogg-Vorbis.

Tambien se destaca el soporte añadido para los desempaquetadores y empaquetadores para el formato IAMF (Immersive Audio Model and Format). Este formato está diseñado para distribuir sonido envolvente de manera efectiva, proporcionando un contenedor que incluye información adicional necesaria para el funcionamiento de algoritmos que reconstruyen escenarios sonoros y realizan mezclas de sonido.

Por otra parte, FFmpeg 7.0 incluye un decodificador experimental para el formato VVC (Versatile Video Coding), también conocido como H.266. Este nuevo decodificador representa un avance en la capacidad de FFmpeg para manejar la compresión de vídeo de última generación, facilitando la reproducción y manipulación de contenido en resoluciones desde SD hasta 8K, con soporte para HDR (High Dynamic Range) y vídeo panorámico en modo de 360 grados.

Además de estas mejoras en compatibilidad y funcionalidad, en FFmpeg 7.0 se ha implementado la capacidad de utilizar API D3D12VA (Direct 3D 12 Video Encoding) para la aceleración por hardware de la decodificación de varios formatos como H264, HEVC, VP9, AV1, MPEG-2 y VC1, mejorando el rendimiento y la eficiencia en sistemas compatibles con esta tecnología.

De los demás cambios que se destacan:

  • Ahora es compatible con la decodificación acelerada por hardware utilizando las API Vulkan y libplacebo.
  • Se ha añadido soporte para el protocolo URI de contenido utilizado en la plataforma Android.
  • Los requisitos de compilación han aumentado; ahora se necesita un compilador que admita el estándar C11 para compilar FFmpeg.
  • Para los codificadores basados en QSV (Intel Quick Sync Video), se ha cambiado el método de control de velocidad de bits predeterminado de VBR a CQP.
  • Se ha introducido un nuevo desempaquetador para contenedores de medios DVD-Video, basado en las bibliotecas libdvdnav y libdvdread del proyecto VideoLAN.
  • Ahora es posible transmitir metadatos en paquetes en la implementación del formato flv.
  • Se ha agregado el codificador DXV DXT1 y el decodificador LEAD MCMP.
  • Para los formatos MP4 e ISOBMFF, se ha implementado la inclusión de metadatos AVE.
  • Se ha incorporado la compatibilidad con la tecnología AFGS1, utilizada en la especificación AV1 Film Grain, para mejorar la compresión de imágenes granuladas.
  • Se ha añadido soporte para imágenes fijas en formatos HEIF y AVIF, así como imágenes fijas en mosaico.
  • El perfil Dolby Vision ahora está disponible para el formato AV1.
  • Por último, se proporciona soporte para reenviar metadatos HDR10 al codificar a través de las bibliotecas libx264, libx265 y libsvtav1.

Para quienes estén interesados en poder conocer más al respecto sobre este nuevo lanzamiento o conocer más sobre FFmpeg, pueden consultar los detalles en el siguiente enlace.

Descargar y obtener FFmpeg 7.0

Finalmente, para quienes quieran realizar la instalación o actualización de FFmpeg 7.0 deben saber que este paquete se encuentra en la mayoría de las distribuciones de Linux o si lo prefieren pueden descargar su código fuente para su compilación desde el siguiente enlace.

Y para realizar la instalación desde el código fuente, basta con ejecutar la secuencia de comandos ya conocidos:

./configure
make
make install

Para el caso de los que son usuarios de Ubuntu, Debian o cualquier otro derivado de estas distribuciones basta con abrir una terminal y en ella ejecutar el siguiente comando:

sudo apt install ffmpeg

Mientras que para el caso de Fedora el comando a ejecutar es el siguiente:

sudo dnf install ffmpeg

Y para el caso de los que son usuarios de Arch Linux, Manjaro o cualquier otro derivado de Arch Linux basta con ejecutar el siguiente comando:

sudo pacman -S ffmpeg

from Linux Adictos https://ift.tt/TfplRxN
via IFTTT

En systemd se plantea la idea de reducir las dependencias de libsystemd

systemd

systemd es un conjunto de demonios de administración de sistema

Recientemente, los desarrolladores de systemd tuvieron una discusión en la cual se puso sobre la mesa el tema de la reducción de las dependencias de la biblioteca libsystemd (la biblioteca encargada de implementar servicios e interactuar con systemd). Esto debido a que actualmente se plantea una cierta preocupación sobre el aumento de dependencias de terceros en libsystemd que no son controladas por el proyecto y esto aumenta de la superficie de ataque. El iniciador de la discusión destaca que libsystemd carga varias bibliotecas críticas, como libzstd, liblz4 y libgcrypt, además de liblzma y glibc. Esto plantea problemas de seguridad significativos, especialmente si estas bibliotecas de terceros se ven comprometidas.

En Fedora, por ejemplo, más de 150 paquetes dependen de libsystemd, lo que aumenta la complejidad y los riesgos asociados. La propuesta para abordar esto implica dividir libsystemd en varias librerias separadas, cada una responsable de una API específica. Esto permitiría cargar dependencias de terceros solo cuando sean necesarias, reduciendo así la exposición a posibles vulnerabilidades en bibliotecas no controladas directamente por los desarrolladores de systemd.

Sin embargo, los desarrolladores de systemd argumentan que esta separación sería problemática debido a la interconexión de los controladores presentes en libsystemd. Consideran que la división requeriría mucho trabajo y podría resultar en una pérdida de eficiencia o la necesidad de duplicar el código, lo que contrarrestaría los beneficios de seguridad buscados.

En lugar de una separación completa, libsystemd ha optado por un enfoque más dinámico al cargar dinámicamente las bibliotecas liblzma, libzstd y liblz4 cuando sea necesario, utilizando la llamada dlopen(). Se planea implementar un cambio similar para libgcrypt en futuras versiones para abordar tanto las preocupaciones de seguridad como las necesidades de eficiencia y mantenibilidad del código.

Creo que la mayoría de estas dependencias no son necesarias para implementar funciones centrales de libsystemd, como las mencionadas anteriormente.

Este problema puede significar dividir libsystemd en múltiples bibliotecas que implementen diferentes API, una de las cuales, por ejemplo, libsystemd-core, solo dependería de libc, y otras bibliotecas más especializadas agregarían otras dependencias. Además, si algunas de las dependencias solo son necesarias para ciertos servicios systemd, mueva las dependencias a esos servicios.

El efecto final de esto debería ser reducir la superficie de ataque y mejorar la seguridad del sistema.

Durante la discusión hubo un punto el cual la mayoría de los desarrolladores criticaron, y es que mencionan que la decisión de cargar bibliotecas de terceros de forma implícita mediante dlopen() en libsystemd generaría un trabajo adicional debido a la complejidad añadida en el diagnóstico y la falta de visibilidad de los enlaces, además de que mencionan que esto complica la identificación de llamadas API de libsystemd que se conectan a funciones de bibliotecas externas, ya que no es obvio en el código. Esta nueva forma de carga, aunque no cambia la arquitectura subyacente, oculta los componentes externos de los mantenedores y usuarios.

Lenart Pottering expresó su desacuerdo con la idea de dividir libsystemd en varias bibliotecas debido a las complicaciones que esto conllevaría en el intercambio de código y el mantenimiento de la estabilidad de la API y los espacios de nombres. Dividir libsystemd requeriría exponer todos los controladores internos o compilarlos estáticamente por separado en cada biblioteca, lo que podría aumentar el tamaño debido a la duplicación de código o dificultar la gestión de la estabilidad y coherencia del sistema.

En lugar de la división, la estrategia de cargar bibliotecas externas solo cuando sea necesario se considera óptima, además de que para abordar la complejidad añadida en el diagnóstico, se propone agregar campos adicionales a los archivos ELF con información sobre las dependencias dinámicas cargadas, permitiendo que los depuradores procesen esta información y la muestren en la salida de herramientas como readelf. Esto proporcionaría una mayor transparencia y visibilidad sobre las dependencias dinámicas utilizadas por libsystemd, facilitando así el diagnóstico y la depuración de problemas relacionados con las bibliotecas externas cargadas dinámicamente.

Lenart recomendó a los desarrolladores de aplicaciones que, en lugar de vincularse directamente con libsystemd para una función específica, se implemente un controlador de protocolo a nivel de aplicación.

Esta estrategia de implementar controladores de protocolo a nivel de aplicación ofrece varias ventajas:

  • Reduce la dependencia de libsystemd y evita la carga de bibliotecas externas cuando no son necesarias.
  • Proporciona más flexibilidad y control sobre la funcionalidad específica requerida por la aplicación.
  • Simplifica el diagnóstico y la depuración al tener un control más directo sobre la implementación de funciones específicas.
  • En general, esta aproximación promueve la modularidad y la independencia de las aplicaciones, mejorando la flexibilidad y la eficiencia en el desarrollo y mantenimiento del software.

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/T2rRjcx
via IFTTT

Kodi 21.0 Omega ya disponible con soporte para FFmpeg 6.0, capacidad de leer y escribir listas M3U8 y despidiéndose del repositorio para Ubuntu

Kodi 21.0 Omega

Han pasado unos 15 meses desde el lanzamiento de la anterior versión mayor y ya tenemos aquí la nueva. Kodi Team ha lanzado – sí, la imagen de bienvenida es así de borrosa –  Kodi 21.0 Omega, y llega con una lista de novedades en la que destaca el soporte para FFmpeg 6.0. Ya está disponible la v7.0 de la famosa librería multimedia, pero, como es habitual en estos casos, se elige incluir algo más maduro y no software más nuevo que puede contener bugs.

Entre las novedades, una noticia: el equipo de desarrolladores decidió en marzo descontinuar el repositorio para Ubuntu. El motivo es que ese repositorio sólo es compatible con un grupo de distribuciones Linux, y Kodi Team va a centrar sus esfuerzos Linuxeros en desarrollar y mantener la versión flatpak. Es una decisión lógica que no gustará tanto a los usuarios de Ubuntu. Aunque los paquetes flatpak gustan, no deja de ser cierto que requieren dependencias que engordan el peso de una aplicación, por lo menos en las primeras instalaciones.

Novedades más destacadas de Kodi 21.0 Omega

  • Mejorada la representación de textos de etiquetas.
  • Eliminada la declaración hacia adelante de FlatBufferBuilder.
  • Subtítulos:
    • Añadido soporte a la colección de fuentes (.ttc).
    • Habilitado paréntesis bidi para subtítulos adaptados.
    • Evitar llamadas a métodos virtuales en destructor.
  • Mejoras en el disipador de audio en webOS.
  • Sincronización de traducciones de metadatos de addons.
  • Gestión de Re pág/Av Pág, etc en ajustes.
  • Mantener la posición de selección después del final de la reproducción / cambio de estado observado.
  • Estuary:
    • Reiniciar temporizador 1110_seekbar en búsquedas.
    • También iniciar temporizador (con reset) en búsquedas.
    • Reiniciar temporizador mientras se muestre el osd.
  • PVR.
    • Diálogo de configuración del temporizador: Establecer ciertos ajustes por defecto en el cambio de tipo de temporizador.
    • Tipos de temporizador dinámicos.
    • Corregir algunas advertencias CPPCheck y clang-tidy.
  • Arreglar el filtro visto/no visto no funciona al crear reproducciones.
  • Traducciones actualizadas.
  • Arreglada la reproducción automática del siguiente vídeo no funciona desde el interior del diálogo de información de vídeo.

Por plataformas

  • Windows:
    • Añadir DXVA Video Super Resolution upscaler.
    • DXVA: comprobar si los espacios de color HDR10 son compatibles con el procesador de vídeo.
    • Eliminar registro innecesario para Intel sin soporte de escalador de súper resolución.
    • HLG > PQ HDR Reproducción correcciones.
    • Desactivar el mapeo de tonos del procesador para AMD y HDR a HDR.
    • Añadir información del método de renderizado al OSD de depuración.
    • Refactorizar el código del procesador de vídeo.
    • Distinguir entre host/nativo descarga/herramientas para windows construir.
    • Eliminar solución para Video Super Resolución.
    • Probar el soporte del procesador de vídeo para la conversión SDR a SDR.
    • Actualizar libass a 0.17.1.
    • Añadir componente de registro «Gráficos» para Direct3D.
    • Hacer HiDPI más genérico/plataforma agnóstica.
    • Configuración para procesamiento de alta precisión / mapeo de tonos HDR.
    • Refactorizar DXGI_FORMAT a std::string para depurar información OSD.
    • Refactorizar Video Super Resolución.
    • Eliminar código no utilizado en DeviceResources.cpp.
    • Eliminar la duplicación de velocidad de fotogramas extra no utilizada para resoluciones entrelazadas en CVideoSyncD3D.
    • Corregido: mostrar 119.88Hz y futuras frecuencias de refresco más altas correctamente.
    • RetroPlayer: Arreglar colores azules/rosas en pantallas de 10 bits.
    • Refactorizar CProcessorHD/CEnumeratorHD para eliminar el acceso directo a las interfaces del enumerador D3D.
    • Arreglar el diálogo de confirmación que no se muestra al mover a pantalla completa.
  • macOS:
    • Compatible con pantallas HiDPI (retina).
    • Apoyar movimiento a pantalla completa / Fijar pantalla perdida.
    • Ventana nativa por defecto.
    • Comprobar y actualizar la configuración del monitor al iniciar.
  • Android:
    • Ajustar macros de acuerdo a la API que están apuntando.
    • Eliminar constantes innecesarias if y use MediaFormat.
    • Preferir el decodificador de Google raw a MediaTek en dispositivos viejos.
  • Linux:
    • Añadido –audio-backend=.
    • Simplificada la configuración de la prioridad de los hilos.
    • Uso de XB_FMT como enum en los hilos.
    • Pipewire: Capturar excepciones en CPipewire::Create().

Ya disponible

Kodi 21.0 Omega se anunciará oficialmente pronto y ya se puede descargar desde su página web oficial, por lo menos para Windows. Los usuarios de Linux deberemos esperar un poco más de tiempo. Como hemos explicado, ahora la versión oficial es el paquete flatpak, y para que aparezca como opción tiene que pasar un proceso de revisión. En las próximas horas aparecerá también en los repositorios oficiales de algunas distribuciones Linux. El tiempo aproximado dependerá de la filosofía de actualizaciones de cada proyecto.

from Linux Adictos https://ift.tt/jFtahsW
via IFTTT