# Ffmpeg

Published articles for Ffmpeg.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## From Livestream To Library: Publishing Flock To Fedora's Session Recordings

DevFeed: [From Livestream To Library: Publishing Flock To Fedora's Session Recordings](<https://devfeed.tech/articles/from-livestream-to-library-publishing-flock-to-fedora-s-session-recordings-12391.md>)

Original publisher: [Read original article](<https://fedoramagazine.org/from-livestream-to-library-publishing-flock-to-fedoras-session-recordings/>)

Author: Akashdeep Dhar

Published: 2026-09-09T08:00:00Z

Content type: article

Language: en

Sources: [Fedora Magazine](<https://devfeed.tech/sources/fedora-magazine.md>)

Topics: [Fedora](<https://devfeed.tech/topics/fedora.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [DRIVE](<https://devfeed.tech/topics/drive.md>), [Google](<https://devfeed.tech/topics/google.md>), [VLC](<https://devfeed.tech/topics/vlc-media-player.md>), [Quartz](<https://devfeed.tech/topics/quartz.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [2026](<https://devfeed.tech/tags/2026.md>), [article](<https://devfeed.tech/tags/article.md>), [community](<https://devfeed.tech/tags/community.md>), [drive](<https://devfeed.tech/tags/drive.md>), [events](<https://devfeed.tech/tags/events.md>), [fedora-project-community](<https://devfeed.tech/tags/fedora-project-community.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [flock-2026](<https://devfeed.tech/tags/flock-2026.md>), [google](<https://devfeed.tech/tags/google.md>), [livestream](<https://devfeed.tech/tags/livestream.md>), [livestreams](<https://devfeed.tech/tags/livestreams.md>), [marketing](<https://devfeed.tech/tags/marketing.md>), [media](<https://devfeed.tech/tags/media.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [youtube](<https://devfeed.tech/tags/youtube.md>)

### AI overview

This article documents the process of turning raw Flock To Fedora livestream footage from 2025 and 2026 into published session recordings. It covers vendor and platform use, footage organization, metadata and thumbnail preparation, timestamp annotation with VLC Media Player, and upload workflows for YouTube and PeerTube.

### Source excerpt

Intro After months of good old fashioned struggle with Google Drive and YouTube Studio, we were finally able to prepare the video sessions from the 2025 and 2026 Flock To Fedora event livestreams. These are now released to our YouTube and PeerTube communities. This article describes the details of the entire process that got us from the raw footage to the [...]

## A Real IntelliJ IDEA Inside Docker: Integration Tests with X Server, Window Manager, and Live Video

DevFeed: [A Real IntelliJ IDEA Inside Docker: Integration Tests with X Server, Window Manager, and Live Video](<https://devfeed.tech/articles/a-real-intellij-idea-inside-docker-integration-tests-with-x-server-window-manager-and-live-video-25425.md>)

Original publisher: [Read original article](<https://jonnyzzz.com/blog/2026/07/05/intellij-in-docker-integration-tests/>)

Author: Eugene Petrenko

Published: 2026-07-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Eugene Petrenko](<https://devfeed.tech/sources/eugene-petrenko.md>)

Topics: [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Docker Container](<https://devfeed.tech/topics/docker-container.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [MCP](<https://devfeed.tech/topics/mcp.md>)

Tags: [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [browser](<https://devfeed.tech/tags/browser.md>), [devrig](<https://devfeed.tech/tags/devrig.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-container](<https://devfeed.tech/tags/docker-container.md>), [eugene-petrenko](<https://devfeed.tech/tags/eugene-petrenko.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gui](<https://devfeed.tech/tags/gui.md>), [intellij](<https://devfeed.tech/tags/intellij.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [jonnyzzz](<https://devfeed.tech/tags/jonnyzzz.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-steroid](<https://devfeed.tech/tags/mcp-steroid.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [tag-41199d53f463](<https://devfeed.tech/tags/tag-41199d53f463.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial presents a reusable approach for running full IntelliJ IDEA integration tests inside Docker with a GUI. It covers the container image, X server, window management, IDE control, and streaming live video to a browser, with open-source code in the test-integration module.

### Source excerpt

Evals that boot a full IntelliJ IDEA -- pixels, dialogs, indexing and all -- inside a Docker container. Xvfb provides the display, fluxbox keeps the windows in place, ffmpeg records everything, and a tiny Node.js server streams the live video straight into a browser tab on your machine. Here is the whole recipe, so you can build your own.

## Quickly apply LUTs (color grading) with ffmpeg

DevFeed: [Quickly apply LUTs (color grading) with ffmpeg](<https://devfeed.tech/articles/quickly-apply-luts-color-grading-with-ffmpeg-10457.md>)

Original publisher: [Read original article](<https://www.jeffgeerling.com/blog/2026/apply-lut-color-grade-with-ffmpeg/>)

Author: jeff@jeffgeerling.com (Jeff Geerling)

Published: 2026-06-26T02:23:00Z

Content type: tutorial

Language: en

Sources: [Jeff Geerling](<https://devfeed.tech/sources/jeff-geerling.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Color Grading](<https://devfeed.tech/topics/color-grading.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [color-grading](<https://devfeed.tech/tags/color-grading.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [lut](<https://devfeed.tech/tags/lut.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A practical guide to applying camera-specific LUTs to Log video with FFmpeg, including batch conversion of MP4 files and hardware-specific encoding considerations.

### Source excerpt

This is a quick post, mostly for my own reference. I've avoided LUTs and 'Log' video footage for years1, mostly because of the extra tiny bit of workflow involved. Like RAW photos, 'Log' footage retains the video sensor's full dynamic range, so you can pull more color and luminance information out of the footage later. But unlike photography, where RAW has been a thing for decades, and many workflows 'just work' without me having to 'grade' every individual photo, in video precious few consumer apps handle Log footage gracefully. You generally end up with a muddy grey mess.

## Security Week 2624: троян в хентай-играх

DevFeed: [Security Week 2624: троян в хентай-играх](<https://devfeed.tech/articles/security-week-2624-23076.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/kaspersky/articles/1045054/>)

Author: Kaspersky\_Lab ("Лаборатория Касперского")

Published: 2026-06-08T17:00:51Z

Content type: news

Language: ru

Sources: ["Лаборатория Касперского" RU](<https://devfeed.tech/sources/ru-2.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [PowerShell](<https://devfeed.tech/topics/powershell.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [argamal](<https://devfeed.tech/tags/argamal.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [github](<https://devfeed.tech/tags/github.md>), [ip](<https://devfeed.tech/tags/ip.md>), [powershell](<https://devfeed.tech/tags/powershell.md>), [security](<https://devfeed.tech/tags/security.md>), [tag-9fe8963de219](<https://devfeed.tech/tags/tag-9fe8963de219.md>), [trojan](<https://devfeed.tech/tags/trojan.md>), [udp](<https://devfeed.tech/tags/udp.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

Kaspersky researchers analyzed the Argamal remote-access trojan, distributed with hentai games through file-sharing sites and torrent trackers. Modified ffmpeg.dll files trigger a PowerShell-based infection chain that retrieves an encrypted payload from GitHub and establishes persistence on Windows. The trojan can collect system information, execute commands, manipulate files, capture screenshots, and control the keyboard and mouse.

### Source excerpt

Исследователи "Лаборатории Касперского" опубликовали подробный разбор вредоносного ПО Argamal, распространяемого на специализированных ресурсах вместе с хентай-играми. Данная вредоносная кампания была обнаружена в этом году, хотя некоторые связанные с ней DLL-файлы существовали как минимум с 2024 года. Игры с вредоносным довеском, как правило, заливались на публичный файлообменник, ссылки на который публиковались на тематических веб-сайтах. Распространялись они и через торрент-трекеры. Во всех случаях это был архив с полностью функциональной игрой, которая дополнялась модифицированной библиотекой ffmpeg.dll. Читать далее

## Video Encoding and Decoding with Vulkan Compute Shaders in FFmpeg

DevFeed: [Video Encoding and Decoding with Vulkan Compute Shaders in FFmpeg](<https://devfeed.tech/articles/video-encoding-and-decoding-with-vulkan-compute-shaders-in-ffmpeg-15121.md>)

Original publisher: [Read original article](<https://www.khronos.org/blog/video-encoding-and-decoding-with-vulkan-compute-shaders-in-ffmpeg>)

Author: jphilips (jeff@khronosgroup.org)

Published: 2026-03-16T17:04:00Z

Content type: article

Language: en

Sources: [Blogs Khronos Blog](<https://devfeed.tech/sources/blogs-khronos-blog.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [blog-vulkan-vulkan-vide](<https://devfeed.tech/tags/blog-vulkan-vulkan-vide.md>), [compression](<https://devfeed.tech/tags/compression.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [performance](<https://devfeed.tech/tags/performance.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [video](<https://devfeed.tech/tags/video.md>), [vulkan](<https://devfeed.tech/tags/vulkan.md>)

### AI overview

This article explains how FFmpeg uses Vulkan Compute shaders to accelerate encoding and decoding of professional-grade video on consumer GPUs. It describes the parallel and serial stages of codec pipelines and how this approach complements Vulkan Video's fixed-function support.

### Source excerpt

In this blog we explore how FFmpeg uses Vulkan Compute to seamlessly accelerate encoding and decoding of even professional-grade video on consumer GPUs -- unlocking GPU compute parallelism at scale, without specialized hardware. This approach complements Vulkan Video's fixed-function codec support, extending acceleration to formats and workflows it doesn't cover.

## Auto-generating Synced Diagram Overlays for Technical Videos

DevFeed: [Auto-generating Synced Diagram Overlays for Technical Videos](<https://devfeed.tech/articles/auto-generating-synced-diagram-overlays-for-technical-videos-39644.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-02-24_auto-generating-synced-diagram-overlays>)

Published: 2026-02-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [Python](<https://devfeed.tech/topics/python.md>), [Claude](<https://devfeed.tech/topics/claude.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [claude](<https://devfeed.tech/tags/claude.md>), [code](<https://devfeed.tech/tags/code.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [python](<https://devfeed.tech/tags/python.md>), [sync](<https://devfeed.tech/tags/sync.md>), [technical](<https://devfeed.tech/tags/technical.md>), [whisper](<https://devfeed.tech/tags/whisper.md>)

### AI overview

This article describes technify-motions, a local Python pipeline that adds animated diagrams, flowcharts, summaries, and code snippets to technical videos in sync with the transcript. It covers audio extraction with FFmpeg, local transcription with faster-whisper, and scene classification using Claude.

### Source excerpt

. [Auto-generating Synced Diagram Overlays](auto-generating-synced-diagram-overlays-cover...

## What's new in Svelte: February 2026

DevFeed: [What's new in Svelte: February 2026](<https://devfeed.tech/articles/what-s-new-in-svelte-february-2026-3079.md>)

Original publisher: [Read original article](<https://svelte.dev/blog/whats-new-in-svelte-february-2026>)

Author: Dani Sandoval

Published: 2026-02-01T00:00:00Z

Content type: article

Language: en

Sources: [Svelte blog](<https://devfeed.tech/sources/svelte-blog.md>)

Topics: [Svelte](<https://devfeed.tech/topics/svelte.md>), [releases](<https://devfeed.tech/topics/releases.md>), [changelog](<https://devfeed.tech/topics/changelog.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [CSS](<https://devfeed.tech/topics/css.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [observability](<https://devfeed.tech/topics/observability.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Tauri](<https://devfeed.tech/topics/tauri.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>)

Tags: [changelog](<https://devfeed.tech/tags/changelog.md>), [conversion](<https://devfeed.tech/tags/conversion.md>), [css](<https://devfeed.tech/tags/css.md>), [developers](<https://devfeed.tech/tags/developers.md>), [docs](<https://devfeed.tech/tags/docs.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [html](<https://devfeed.tech/tags/html.md>), [observability](<https://devfeed.tech/tags/observability.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [releases](<https://devfeed.tech/tags/releases.md>), [svelte](<https://devfeed.tech/tags/svelte.md>), [tauri](<https://devfeed.tech/tags/tauri.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Svelte's February 2026 update introduces improvements across Svelte and SvelteKit, including richer select-element customization, an exported CSS parser, Shadow DOM configuration, remote form changes, configurable Node server timeouts, and improved Vercel observability. The article also highlights recent ecosystem vulnerability patches, changelogs, and community projects.

### Source excerpt

This month brings a few new features to Svelte and SvelteKit and quite a few new libraries from around the community. Also, in case you missed it last month, the Svelte maintainers released patches for 5 vulnerabilities across the Svelte ecosystem. So be sure you're up to date by reading the blog post, CVEs affecting the Svelte ecosystem. Now, without further ado, let's dive in... What's new in Svelte & SvelteKit To support newer browsers that allow it, you can now customize <select> elements using CSS and rich HTML content (svelte@5.47.0, Docs, #17429) Svelte's CSS parser is now exported from svelte/compiler as parseCss. It's a partial but lightweight CSS AST parser that is currently being used in SvelteKit (svelte@5.48.0, #17496) A ShadowRootInit object can now be passed to attachShadow() when shadow root is created with a customElement (svelte@5.49.0, Docs, #17088) A breaking change in SvelteKit's remote functions removes buttonProps from experimental remote form functions. Use <button {...myForm.fields.action.as('submit', 'register')}>Register</button> when creating mutliple submit buttons instead (kit@2.50.0, Docs, #15144) Node: The server's keepAliveTimeout and headersTimeout options can now be configured by setting the corresponding environment variable (sveltejs/adapter-node@5.5.0, Docs, #15125) Vercel: Remote function calls can now be found under the /_app/remote route in observability (sveltejs/adapter-vercel@6.3.1, #15098) For a full list of changes - including all the important bugfixes that went into the releases this month - check out the Svelte compiler's CHANGELOG and the SvelteKit / Adapter CHANGELOGs. Community ShowcaseApps & Sites built with Svelte Frame is a high-performance media conversion utility built on the Tauri v2 framework. It provides a native interface for FFmpeg operations, allowing for granular control over video and audio transcoding parameters LogTide is an open-source alternative to Datadog, Splunk, and ELK. Designed for developers

## How to Add "Convert to GIF" to Thunar on Linux (XFCE)

DevFeed: [How to Add "Convert to GIF" to Thunar on Linux (XFCE)](<https://devfeed.tech/articles/how-to-add-convert-to-gif-to-thunar-on-linux-xfce-25163.md>)

Original publisher: [Read original article](<https://www.ivanmorgillo.com/2025/11/12/how-to-add-convert-to-gif-to-thunar-on-linux-xfce/>)

Author: Ivan Morgillo

Published: 2025-11-12T09:05:34Z

Content type: tutorial

Language: en

Sources: [Ivan Morgillo](<https://devfeed.tech/sources/ivan-morgillo.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [xfce](<https://devfeed.tech/topics/xfce.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>)

Tags: [custom-action](<https://devfeed.tech/tags/custom-action.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gif](<https://devfeed.tech/tags/gif.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [script](<https://devfeed.tech/tags/script.md>), [shell](<https://devfeed.tech/tags/shell.md>), [shell-script](<https://devfeed.tech/tags/shell-script.md>), [thunar](<https://devfeed.tech/tags/thunar.md>), [video](<https://devfeed.tech/tags/video.md>), [xfce](<https://devfeed.tech/tags/xfce.md>)

### AI overview

A tutorial for adding a right-click Convert to GIF action to the Thunar file manager on Linux XFCE. It uses FFmpeg, Zenity, libnotify-bin, and a shell script to convert video files to GIFs.

### Source excerpt

Add a right-click Convert to GIF action to the Thunar file manager on Linux XFCE using FFmpeg and a shell script -- turn any video into a GIF in two clicks.

## Things I learned while building a yt-dlp wrapper

DevFeed: [Things I learned while building a yt-dlp wrapper](<https://devfeed.tech/articles/things-i-learned-while-building-a-yt-dlp-wrapper-37180.md>)

Original publisher: [Read original article](<https://arkadiuszchmura.com/posts/things-i-learned-while-building-a-yt-dlp-wrapper/>)

Published: 2024-10-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Arkadiusz Chmura](<https://devfeed.tech/sources/arkadiusz-chmura.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gui](<https://devfeed.tech/tags/gui.md>), [macos](<https://devfeed.tech/tags/macos.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-software](<https://devfeed.tech/tags/open-source-software.md>), [side-project](<https://devfeed.tech/tags/side-project.md>)

### AI overview

The author describes lessons from building ClipSnag, a native macOS GUI wrapper for yt-dlp. The article discusses how open-source licenses affect bundling dependencies such as FFmpeg and explores downloading and executing executables on macOS.

### Source excerpt

An opportunity to learn new things is a great reason to pursue side project.

## Chainguard Images April 2024: Secure, reliable, feature-rich

DevFeed: [Chainguard Images April 2024: Secure, reliable, feature-rich](<https://devfeed.tech/articles/chainguard-images-april-2024-secure-reliable-feature-rich-12953.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/chainguard-images-april-2024-secure-reliable-feature-rich>)

Published: 2024-05-09T00:00:00Z

Content type: release

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>), [container images](<https://devfeed.tech/topics/container-images.md>), [Security](<https://devfeed.tech/topics/security.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [MATLAB](<https://devfeed.tech/topics/matlab.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [fips](<https://devfeed.tech/tags/fips.md>), [fips-compliance](<https://devfeed.tech/tags/fips-compliance.md>), [harbor](<https://devfeed.tech/tags/harbor.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [rstudio](<https://devfeed.tech/tags/rstudio.md>), [secure-container-image](<https://devfeed.tech/tags/secure-container-image.md>), [security](<https://devfeed.tech/tags/security.md>), [software-supply-chain](<https://devfeed.tech/tags/software-supply-chain.md>), [software-supply-chain-security](<https://devfeed.tech/tags/software-supply-chain-security.md>), [tesseract](<https://devfeed.tech/tags/tesseract.md>), [valkey](<https://devfeed.tech/tags/valkey.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

Chainguard announces approximately 60 new Chainguard Images in its April 2024 release. The hardened, minimal images focus on software supply chain security, reliability, and reduced CVE exposure, with FIPS variants available for some images. Featured additions include rstudio, Harbor, FFmpeg, Tesseract, and Valkey.

### Source excerpt

Explore the latest features and security enhancements in Chainguard Images (April 2024 release). Strengthen your software supply chain.

## Does AI lead to AppSec hell or nirvana?

DevFeed: [Does AI lead to AppSec hell or nirvana?](<https://devfeed.tech/articles/does-ai-lead-to-appsec-hell-or-nirvana-7801.md>)

Original publisher: [Read original article](<https://snyk.io/blog/ai-appsec-hell-or-nirvana/>)

Author: Erin Cullen

Published: 2023-10-03T17:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Application Security](<https://devfeed.tech/topics/application-security.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [blog](<https://devfeed.tech/tags/blog.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [executive](<https://devfeed.tech/tags/executive.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [megawatt](<https://devfeed.tech/tags/megawatt.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This article examines whether using artificial intelligence in application development and application security will lead to better outcomes or greater risks. It describes AI as a productivity multiplier for developers and security professionals, including research assistance, code explanation, and support for AppSec tools. Examples include using ChatGPT to generate an FFmpeg command and using an AI-driven tool to explain code.

### Source excerpt

Ravi Maira and Randall Degges discussed using AI in AppSec during a LinkedIn live discussion in June 2023. Read on to catch some of the highlights from their talk.

## Critical WebP 0-day security CVE-2023-4863 impacts wider software ecosystem

DevFeed: [Critical WebP 0-day security CVE-2023-4863 impacts wider software ecosystem](<https://devfeed.tech/articles/critical-webp-0-day-security-cve-2023-4863-impacts-wider-software-ecosystem-7874.md>)

Original publisher: [Read original article](<https://snyk.io/blog/critical-webp-0-day-cve-2023-4863/>)

Author: Brian Clark; Eric Smalling; Jonathan Moses

Published: 2023-09-28T05:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Electron](<https://devfeed.tech/topics/electron.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [container images](<https://devfeed.tech/topics/container-images.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>)

Tags: [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [container-security](<https://devfeed.tech/tags/container-security.md>), [cve](<https://devfeed.tech/tags/cve.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [docker](<https://devfeed.tech/tags/docker.md>), [electron](<https://devfeed.tech/tags/electron.md>), [executive](<https://devfeed.tech/tags/executive.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [secrel](<https://devfeed.tech/tags/secrel.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk-container](<https://devfeed.tech/tags/snyk-container.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [snyk-security-intel](<https://devfeed.tech/tags/snyk-security-intel.md>), [software-supply-chain](<https://devfeed.tech/tags/software-supply-chain.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>), [supply-chain-security](<https://devfeed.tech/tags/supply-chain-security.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>), [vulnerability-insights](<https://devfeed.tech/tags/vulnerability-insights.md>)

### AI overview

This article examines the critical WebP library vulnerability CVE-2023-4863, which could be exploited through maliciously formed images. The issue affects Chrome, Chrome-powered applications, operating systems, application frameworks such as Electron, and software including Pillow, FFmpeg, and Gimp. Versions 0.5.0 through 1.3.1 are affected, and upgrading to at least version 1.3.2 is recommended. The article also highlights the vulnerability's broader software supply chain impact and the importance of scanning applications and container images.

### Source excerpt

CVE-2023-4863 vulnerability identified in the WebP library libwebp extends to more than just browsers - Learn how to find and fix this critical vulnerability with Snyk

## Fixing Android's 3-minute screen recording limitation

DevFeed: [Fixing Android's 3-minute screen recording limitation](<https://devfeed.tech/articles/fixing-android-s-3-minute-screen-recording-limitation-22886.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/fixing-androids-3-minute-screen-recording-limitation>)

Author: Leland Takamine

Published: 2023-08-24T07:00:00Z

Content type: tutorial

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [aosp](<https://devfeed.tech/topics/aosp.md>), [Code](<https://devfeed.tech/topics/code.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [aosp](<https://devfeed.tech/tags/aosp.md>), [code](<https://devfeed.tech/tags/code.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [tool](<https://devfeed.tech/tags/tool.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The article explains how Maestro addressed Android ADB screen recording's 180-second limit for Maestro Cloud. After evaluating repeated recordings, source modification, scrcpy, and static linking, the team used binary rewriting to change the hardcoded maximum duration in the screenrecord binary.

### Source excerpt

How we used binary rewriting to remove the 3-minute screen recording limitation on Maestro Cloud

## How I ended up with AI-generated Music Reviews on TikTok

DevFeed: [How I ended up with AI-generated Music Reviews on TikTok](<https://devfeed.tech/articles/how-i-ended-up-with-ai-generated-music-reviews-on-tiktok-40837.md>)

Original publisher: [Read original article](<https://mutto.fyi/posts/2023/05/how-i-generated-automatic-reviews-tiktok/>)

Published: 2023-05-14T00:00:00Z

Content type: opinion

Language: en

Sources: [Mutt0-ds Notes](<https://devfeed.tech/sources/mutt0-ds-notes.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Playwright](<https://devfeed.tech/topics/playwright.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Python](<https://devfeed.tech/topics/python.md>), [Instagram](<https://devfeed.tech/topics/instagram.md>), [Meta](<https://devfeed.tech/topics/meta.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [automated](<https://devfeed.tech/tags/automated.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [instagram](<https://devfeed.tech/tags/instagram.md>), [meta](<https://devfeed.tech/tags/meta.md>), [music](<https://devfeed.tech/tags/music.md>), [playwright](<https://devfeed.tech/tags/playwright.md>), [python](<https://devfeed.tech/tags/python.md>), [review](<https://devfeed.tech/tags/review.md>), [tiktok](<https://devfeed.tech/tags/tiktok.md>)

### AI overview

The author describes experimenting with automated AI-generated music reviews for TikTok after Instagram's music sticker issues and declining reach for static posts. The workflow involves music reviews, video creation, and technologies including Python, FFmpeg, text-to-speech, AI, and Playwright.

### Source excerpt

This is a fun story, with a series of technologies and topics that I couldn't believe they were capable of living together... EDM, TikTok,...

## Improving color quantization heuristics

DevFeed: [Improving color quantization heuristics](<https://devfeed.tech/articles/improving-color-quantization-heuristics-26113.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/39-improving-color-quantization-heuristics.html>)

Published: 2022-12-31T12:00:43Z

Content type: article

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [quantization](<https://devfeed.tech/topics/quantization.md>), [color](<https://devfeed.tech/topics/color.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [image animation](<https://devfeed.tech/topics/image-animation.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [color](<https://devfeed.tech/tags/color.md>), [compression](<https://devfeed.tech/tags/compression.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gif](<https://devfeed.tech/tags/gif.md>), [math](<https://devfeed.tech/tags/math.md>), [prog](<https://devfeed.tech/tags/prog.md>), [quantization](<https://devfeed.tech/tags/quantization.md>)

### AI overview

The article examines improvements to color quantization heuristics, including evaluating color distances in a perceptually uniform color space such as OkLab instead of using Euclidean distance between RGB values. It explains palette quantization as reducing an image's colors to a smaller representative subset, with applications including compression, limited-palette codecs such as GIF, and artistic effects.

### Source excerpt

In 2015, I wrote an article about how the palette color quantization was improved in FFmpeg in order to make nice animated GIF files. For some reason, to this day this is one of my most popular article. As time passed, my experience with colors grew and I ended up being quite ashamed and frustrated with the state of these filters. A lot of the code was naive (when not terribly wrong), despite the apparent good results. One of the major change I wanted to do was to evaluate the color distances using a perceptually uniform color space, instead of using a naive euclidean distance of RGB triplets. As usual it felt like a week-end long project; after all, all I have to do is change the distance function to work in a different space, right? Well, if you're following my blog you might have noticed I've add numerous adventures that stacked up on each others: I had to work out the colorspace with integer arithmetic first ...which forced me to look into integer division more deeply ...which confronted me to all sort of undefined behaviours in the process And when I finally reached the point where I could make the switch to OkLab (the perceptual colorspace), a few experiments showed that the flavor of the core algorithm I was using might contain some fundamental flaws, or at least was not implementing optimal heuristics. So here we go again, quickly enough I find myself starting a new research study in the pursuit of understanding how to put pixels on the screen. This write-up is the story of yet another self-inflicted struggle. Palette quantization But what is palette quantization? It essentially refers to the process of reducing the number of available colors of an image down to a smaller subset. In sRGB, an image can have up to 16.7 million colors. In practice though it's generally much less, to the surprise of no one. Still, it's not rare to have a few hundreds of thousands different colors in a single picture. Our goal is to reduce that to something like 256 colors that r

## Scrubbing videos using JavaScript

DevFeed: [Scrubbing videos using JavaScript](<https://devfeed.tech/articles/scrubbing-videos-using-javascript-37347.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/scrubbing-videos-using-javascript/>)

Author: Stanko

Published: 2022-10-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Code](<https://devfeed.tech/topics/code.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [code](<https://devfeed.tech/tags/code.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [videos](<https://devfeed.tech/tags/videos.md>), [webm](<https://devfeed.tech/tags/webm.md>)

### AI overview

A tutorial on scrubbing HTML videos with JavaScript. It explains how keyframe frequency affects scrubbing smoothness and file size, compares browser behavior, and discusses providing MP4 and WebM versions.

### Source excerpt

JavaScript part is actually pretty easy, it is more about preparing the video file correctly. If you just want the code for converting videos using ffmpeg, jump to the last section. Otherwise, let's start scrolling down to see these two videos scrubbing: Every 5 framesEvery 100 frames Code used looks like this, it just updates currentTime based on window scroll. But the left video should work smoother than the right one. Depending on your browser, it can be more or less noticeable. The answer why it happens is keyframes. const video = document.querySelector('#video'); window.addEventListener('scroll', function() { video.currentTime = window.scrollY * 0.01; }); Keyframes # In video encoding, the keyframe is the full frame of the image in a video. Frames that are in between these keyframes (aka delta frames), contain only the difference between the previous (or the next) frame. Number of keyframes will vary depending on how the video was created and encoded. Having each frame encoded as a keyframe would be very inefficient and the video file would be huge. To display delta frames, video players decode the information and piece them together. Some players only do this when video is playing, but not when you are scrubbing through it. Because of that, and because it has way less keyframes, the right video feels much choppier than the left one. The video on the right contains a keyframe every one hundred frames, while the one on the left has one keyframe every five frames. That is twenty times more keyframes. Naturally, it reflects on the file size. For this specific video, it is about five times more. line-100.mp4 146 Kb line-5.mp4 845 Kb # ~5 times more line-100.webm 195 Kb line-5.webm 1038 Kb # ~5 times more Browser support # Browsers behave radically differently. But if you provide them a correct video format with enough keyframes, you should be pretty well covered. You'll have to provide the video in at least two formats - mp4 and webm. On desktop, Safari seems to ha

## Video Stabilization with \`ffmpeg\` and \`VidStab\`

DevFeed: [Video Stabilization with \`ffmpeg\` and \`VidStab\`](<https://devfeed.tech/articles/video-stabilization-with-ffmpeg-and-vidstab-21682.md>)

Original publisher: [Read original article](<https://paulirish.com/2021/video-stabilization-with-ffmpeg-and-vidstab/>)

Author: Paul Irish

Published: 2021-04-30T18:33:00Z

Content type: tutorial

Language: en

Sources: [Paul Irish](<https://devfeed.tech/sources/paul-irish.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [diy](<https://devfeed.tech/tags/diy.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [guide](<https://devfeed.tech/tags/guide.md>), [install](<https://devfeed.tech/tags/install.md>), [installation](<https://devfeed.tech/tags/installation.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mac](<https://devfeed.tech/tags/mac.md>), [mac-os](<https://devfeed.tech/tags/mac-os.md>), [make](<https://devfeed.tech/tags/make.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A practical guide to stabilizing video with FFmpeg and VidStab. It covers installation on Mac OS and Linux, the two-pass detection and transformation workflow, and commands for creating vertically stacked or side-by-side comparison videos.

### Source excerpt

Way back in Dec 2015, @maxogden wrote a nice guide on stabilizing your own video with ffmpeg. I return to it on occasion and have updated my gist comment to offer some updated commands. Since enough has changed regarding installation and use, I figure a new, spiffy, and working guide deserves a non-gist home. Presenting the 2021-era guide to pretty easy DIY video stabilization! On Mac OS, install ffmpeg and vidstab from homebrew: 1 2 brew install ffmpeg brew install libvidstab On linux, you can sudo make install. Run stabilization in two passes There are plenty of options for libvidstab, like shakiness, accuracy, smoothing. The defaults are good, but you may want to experiment. There's even a visual diagnostic mode. Assuming the source video is named clip.mkv... 1 2 3 4 5 6 # The first pass ('detect') generates stabilization data and saves to `transforms.trf` # The `-f null -` tells ffmpeg there's no output video file ffmpeg -i clip.mkv -vf vidstabdetect -f null - # The second pass ('transform') uses the .trf and creates the new stabilized video. ffmpeg -i clip.mkv -vf vidstabtransform clip-stabilized.mkv You now have a clip-stabilized.mkv! Bonus: create a comparison video Use the vstack or hstack filter, depending on if you want them stacked vertically or side-by-side: 1 2 3 4 5 # vertically stacked ffmpeg -i clip.mkv -i clip-stabilized.mkv -filter_complex vstack clips-stacked.mkv # side-by-side ffmpeg -i clip.mkv -i clip-stabilized.mkv -filter_complex hstack clips-sxs.mkv Double bonus: A two-liner that does everything (because repeating these filenames gets annoying) 1 2 export vid="sourcevid.mkv" ffmpeg -i "$vid" -vf vidstabdetect -f null -; ffmpeg -i "$vid" -vf vidstabtransform "$vid.stab.mkv"; ffmpeg -i "$vid" -i "$vid.stab.mkv" -filter_complex vstack "$vid.stacked.mkv"

## Vapor: Docker Based Deployments

DevFeed: [Vapor: Docker Based Deployments](<https://devfeed.tech/articles/vapor-docker-based-deployments-3948.md>)

Original publisher: [Read original article](<https://laravel.com/blog/vapor-docker-based-deployments>)

Author: Mohamed Said

Published: 2020-12-16T10:27:00Z

Content type: article

Language: en

Sources: [Laravel Blog](<https://devfeed.tech/sources/laravel-blog.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [AWS Lambda](<https://devfeed.tech/topics/aws-lambda.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Docker Image](<https://devfeed.tech/topics/docker-image.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Composer](<https://devfeed.tech/topics/composer.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [alpine](<https://devfeed.tech/tags/alpine.md>), [applications](<https://devfeed.tech/tags/applications.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [base-images](<https://devfeed.tech/tags/base-images.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [container-image](<https://devfeed.tech/tags/container-image.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [library](<https://devfeed.tech/tags/library.md>), [php](<https://devfeed.tech/tags/php.md>)

### AI overview

Laravel Vapor introduces Docker-based deployments for AWS Lambda, allowing applications up to 10 GB and supporting additional PHP extensions and libraries. The article explains how to configure Vapor environments, customize Dockerfiles based on Alpine Linux images, and deploy the resulting Docker image.

### Source excerpt

One of the limitations of AWS Lambda is that the deployment size, including layers, must not exceed 250 MB. This is not ideal for large projects that have many composer dependencies. In addition, many...

## Codename One switches its default iOS browser component to WKWebView and adds developer updates

DevFeed: [Codename One switches its default iOS browser component to WKWebView and adds developer updates](<https://devfeed.tech/articles/wkwebview-and-prs-19677.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/wkwebview-prs/>)

Author: Shai Almog

Published: 2019-10-04T00:00:00Z

Content type: news

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [browser](<https://devfeed.tech/topics/browser.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [API](<https://devfeed.tech/topics/api.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [apple](<https://devfeed.tech/tags/apple.md>), [browser](<https://devfeed.tech/tags/browser.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [github](<https://devfeed.tech/tags/github.md>), [ios](<https://devfeed.tech/tags/ios.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article reports that Codename One changed its default iOS browser component from UIWebView to WKWebView to address Apple warnings about the outdated component. It also describes a video library, a generic releasable-components interface, popup-direction controls, and an API for guessing common file MIME types.

### Source excerpt

We still have features to cover from our summer vacation but we need to make a short de-tour through newer things that landed recently. One of the big highlights is the switch to WKWebView. We effectively changed the default iOS browser component to WKWebView instead of UIWebView. This resolved warnings Apple started sending out to developers about using the out of date UIWebView. This mostly went unnoticed by most developers as it should. But if your browser starts acting up this is the reason. There isn't much we can do here as we knew that day would come where Apple will demand a switch.

## Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part II

DevFeed: [Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part II](<https://devfeed.tech/articles/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-ii-20453.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-ii-4973f475f8a3?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2017-10-23T21:08:55Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [Code](<https://devfeed.tech/topics/code.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [files](<https://devfeed.tech/tags/files.md>), [function](<https://devfeed.tech/tags/function.md>), [loops](<https://devfeed.tech/tags/loops.md>), [message-queue](<https://devfeed.tech/tags/message-queue.md>), [programming](<https://devfeed.tech/tags/programming.md>), [thread](<https://devfeed.tech/tags/thread.md>), [threading](<https://devfeed.tech/tags/threading.md>), [threads](<https://devfeed.tech/tags/threads.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This second part of a two-part series examines FFmpeg Release 3.3's threading model and transcoding pipeline for a one-input, multiple-output scenario. It traces how FFmpeg orchestrates I/O, filtering, decoding, encoding, and output processing, and reports that the number of input files determines input-thread creation, so a one-input scenario uses a single thread.

### Source excerpt

By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer, chihchil@twitch.tv Yueshi Shen, Principal Research Engineer, yshen@twitch.tv Special thanks go to: Christopher Kennedy, Staff Video Engineer at Crunchyroll/Ellation John Nichols, Principal Software Engineer at Xilinx, jnichol@xilinx.com for their information on FFmpeg and reviewing this article. Note: This is the second part of a 2-part series. Make sure you read Part 1 first. FFmpeg's 1-In-N-Out Pipeline. Why doesn't it handle the technical issues discussed earlier? How does FFmpeg programmatically deal with instances where a single input stream is required to generate multiple transcoded and/or transmuxed outputs? We went directly into the latest FFmpeg Release 3.3. source code in order to understand its threading model and transcoding pipeline. In the top-level ffmpeg.c file, the transcode() function (line 4544) loops and repeatedly calls transcode_step() (line 4478) until its inputs are completely processed, or until the user interrupts the execution. Transcode_step() wraps the main pipeline and orchestrates file I/O, filtering, decoding and encoding amongst many other immediate steps. During the initial setup phase, init_input_threads() (line 4020) is called, and based on the number of input files, a number of new threads may be spawned to process the input. if (nb_input_files == 1) { return 0;}for (i = 0; i < nb_input_files; i++) { ... ret = av_thread_message_queue_alloc(&f->in_thread_queue, f->thread_queue_size, sizeof(AVPacket)); // line 4033} In line 4033, we see that the number of threads spawned is solely determined by the number of inputs. This means FFmpeg will process a 1-in-N-out scenario using only a single thread. In get_input_packet() (line 4055), the multithreaded companion function get_input_packet_mt() (line 4047) is only called if the number of input files is greater than one. get_input_packet_mt() can read input

## Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I

DevFeed: [Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part I](<https://devfeed.tech/articles/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-i-20452.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-i-489c1c125f28?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2017-10-10T18:40:03Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Twitch](<https://devfeed.tech/topics/twitch.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [stream-processing](<https://devfeed.tech/topics/stream-processing.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [http](<https://devfeed.tech/tags/http.md>), [live-streaming](<https://devfeed.tech/tags/live-streaming.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [stream-processing](<https://devfeed.tech/tags/stream-processing.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [transcoder](<https://devfeed.tech/tags/transcoder.md>), [twitch](<https://devfeed.tech/tags/twitch.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This first part of a two-part series explains Twitch's live video processing pipeline and compares using FFmpeg with Twitch's in-house TwitchTranscoder. It describes how RTMP uploads are converted into multiple-bitrate HLS variants and outlines the live transcoding requirements that FFmpeg meets or does not meet.

### Source excerpt

By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer, chihchil@twitch.tv Yueshi Shen, Principal Research Engineer, yshen@twitch.tv Special thanks go to Christopher Kennedy, Staff Video Engineer at Crunchyroll/Ellation John Nichols, Principal Software Engineer at Xilinx, jnichol@xilinx.com for their information on FFmpeg and reviewing this article. Note: This is the first part of a 2-part series. Please read part 2 after finishing this article. Background Twitch is the world's leading live streaming platform for video games, esports, and other emerging creative content. Every month, more than 2.2 million unique content creators stream or upload video on our website. At its peak, Twitch ingests tens of thousands of concurrent live video streams and delivers them to viewers across the world. Figure 1 depicts the architecture of our live video Content Delivery Network (CDN) which delivers tens of thousands of concurrent live streams internationally. Figure 1: Architecture of Twitch's Live Video CDN Twitch, like many other live streaming services, receives live stream uploads in Real-Time Messaging Protocol (RTMP) from its broadcasters. RTMP is a protocol designed to stream video and audio on the Internet, and is mainly used for point to point communication. To then scale our live stream content to countless viewers, Twitch uses HTTP Live Streaming (HLS), an HTTP-based media streaming communications protocol that most video websites also use. Within the live stream processing pipeline, the transcoder module is in charge of converting an incoming RTMP stream into the HLS format with multiple variants (e.g., 1080p, 720p, etc.). These variants have different bitrates so that viewers with different levels of download bandwidth are able to consume live video streams at the best possible quality for their connection. Figure 2 depicts the input and output of the transcoder module in our live video CD

## DDNet Live: Twitch spectates an online game

DevFeed: [DDNet Live: Twitch spectates an online game](<https://devfeed.tech/articles/ddnet-live-twitch-spectates-an-online-game-30812.md>)

Original publisher: [Read original article](<https://hookrace.net/blog/ddnet-live/>)

Published: 2016-01-09T23:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Felsing](<https://devfeed.tech/sources/dennis-felsing.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Server](<https://devfeed.tech/topics/server.md>), [Nim](<https://devfeed.tech/topics/nim.md>)

Tags: [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [intel](<https://devfeed.tech/tags/intel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [livestream](<https://devfeed.tech/tags/livestream.md>), [nim](<https://devfeed.tech/tags/nim.md>), [server](<https://devfeed.tech/tags/server.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>)

### AI overview

The article describes setting up a continuous DDNet livestream on Twitch from Linux using FFmpeg, a low-power J1900 home server, and a virtual display. It also explains using Twitch chat and DDNet FIFO command input so viewers can choose which players to spectate.

### Source excerpt

Last night I had an idea and implemented it, soo let's see what will happen. But first, the idea: Have a livestream [1] of DDNet running non-stop [2] that always shows some interesting [3] players on the server. The resulting livestream is running on Twitch. All the scripts are on Github 1. Livestream It's surprisingly simple to livestream from Linux to Twitch. Only FFmpeg is needed: #!/bin/sh INRES="1280x720" # input resolution FPS="30" # target FPS GOP="60" # i-frame interval, should be double of FPS, GOPMIN="30" # min i-frame interval, should be equal to fps, THREADS="2" CBR="2000k" # constant bitrate (should be between 1000k - 3000k) QUALITY="ultrafast" # one of the many FFMPEG preset AUDIO_SRATE="44100" AUDIO_CHANNELS="2" # 1 for mono output, 2 for stereo AUDIO_ERATE="96k" # audio encoding rate SERVER="live-fra" # http://bashtech.net/twitch/ingest.php for list source ./secret.sh ffmpeg -v 0 -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \ -f alsa -i pulse -f flv -ac $AUDIO_CHANNELS \ -b:a $AUDIO_ERATE -ar $AUDIO_SRATE \ -vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR \ -minrate $CBR -maxrate $CBR -vf "format=yuv420p"\ -preset $QUALITY -acodec libmp3lame -threads $THREADS \ -strict normal -bufsize $CBR \ "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY" This works pretty well, but takes quite a bit of CPU on my old computer. So instead I wanted to run it on my new server with a Haswell-era J1900 CPU. Possible ways to improve performance: Use an OpenGL recorder instead of x11grab Get Intel Quick Sync Video working for hardware H264 encoding 2. Running Non-Stop My server is a small and cheap ASRock Q1900-ITX: The nice part is that it's passively cooled and quite power efficient, drawing only 5 Watts in idle. This machine has been running as my home server for quite some time, but barely gets any action. Let's change that! The X server starts without problems even without any monitors attached, the only thing that's left to do is increasing the framebuffer size so that ou

## Rotate movies

DevFeed: [Rotate movies](<https://devfeed.tech/articles/rotate-movies-27631.md>)

Original publisher: [Read original article](<https://gagor.pro/2015/12/rotate-movies/>)

Author: Tom

Published: 2015-12-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>)

Tags: [examples](<https://devfeed.tech/tags/examples.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>)

### AI overview

A short tutorial showing how to rotate vertically recorded MP4 movies in a shell loop using avconv and the transpose video filter, while copying the audio stream and encoding video with libx264.

### Source excerpt

I hate movies recorded on phone in vertical position. This just short tip how I dealt with with it last time: for m in *.mp4 do avconv -i $m -vf "transpose=1" -codec:a copy -codec:v libx264 -preset slow -crf 23 rotated-$m done Other examples: http://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg external link http://superuser.com/questions/578321/how-to-flip-a-video-180 external link °-vertical-upside-down-with-ffmpeg

## Compile FFmpeg for Android

DevFeed: [Compile FFmpeg for Android](<https://devfeed.tech/articles/compile-ffmpeg-for-android-21767.md>)

Original publisher: [Read original article](<https://enoent.fr/posts/compile-ffmpeg-for-android/>)

Author: Marc Plano-Lesay

Published: 2014-06-20T08:40:00Z

Content type: tutorial

Language: en

Sources: [Marc Plano-Lesay](<https://devfeed.tech/sources/marc-plano-lesay.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Android](<https://devfeed.tech/topics/android.md>), [C](<https://devfeed.tech/topics/c.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [2](<https://devfeed.tech/tags/2.md>), [android](<https://devfeed.tech/tags/android.md>), [build](<https://devfeed.tech/tags/build.md>), [c](<https://devfeed.tech/tags/c.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [software](<https://devfeed.tech/tags/software.md>), [source](<https://devfeed.tech/tags/source.md>)

### AI overview

A tutorial explains how to compile FFmpeg 2.2.3 for Android using the Android SDK and NDK, with steps for Linux, third-party libraries, an NDK module, and JNI wrappers in C and Java.

### Source excerpt

When you have to manipulate audio or video on Android, being used to open-source software, you have a single name which comes directly to you: FFmpeg. However, FFmpeg is a C software, meant to be used as an executable, and not officially supporting Android. There are a lot of partial and/or out-of-date how-to out there on how to get FFmpeg running on Android, like halfninja's build. However, I needed to use FFmpeg concat demuxer, introduced in FFmpeg 1.1. Most builds target 0.9. There's a ton of questions on StackOverflow about getting newer FFmpeg releases working on Android. So, here's a full explanation to get FFmpeg 2.2.3 "Muybridge" working on Android. I'll describe the steps for Linux, but everything is pretty standard shell and should work on any decent OS.

[Next page](<https://devfeed.tech/tags/ffmpeg.md?cursor=WyIyMDE0LTA2LTIwVDA4OjQwOjAwKzAwOjAwIiwgImVmODUxMGIyLTMxNzEtNGM4OS05YWJlLWM2MjNlZjgzOTgyNCJd>)