Our most simple transcoding service

At Fliva we had an issue; customers kept uploading iPhone footage in HDR formats with varying framerates, and our software could not handle it. The colors looked washed out, and just plain wrong. Our first stab at a solution was, of course, to use ffmpeg. However ffmpeg produced the same…

Writing a Progress Bar Overlay Shader

Some of our customers in Fliva want to show a simple progress bar inside their video. You see this a lot nowadays in social media videos, where the progress of the video is embedded inside it so that you, as the consumer of the video, know how much more you…

Writing a Hubot Adapter for Bitrix

Back in the day, we installed hubot on our Hipchat developer chat. When hipchat got sold to Atlassian we jumped ship and chose Slack instead. Years later the company chose to invest heavily in having a shared system across all division handling tasks and CRM primarily - but since this…

Decoding Video Frames with ffmpeg/libav

Opening the file AVFormatContext *formatContext; if (avformat_open_input(&formatContext, "path/to/file.ext", nullptr, nullptr) != 0) exit(1); // Couldn't open file /// Retrieve stream information if (avformat_find_stream_info(formatContext, nullptr) < 0) exit(2); // Couldn't find stream information Find the first video stream int videoStreamIdx = -1; for (int i…

Install Datadog in Kubernetes

First of all, we use helm. So we start here: https://docs.datadoghq.com/agent/kubernetes/?tab=helm Add the repository helm repo add datadog https://helm.datadoghq.com helm repo add stable https://charts.helm.sh/stable helm repo update Install the chart helm install datadog -f values.yaml…

Just Create a Relation

I recently read You might as well timestamp it and today I came across an equal truism Just create a relation. Many a time have i seen tables of a given object where the table has a status field and a status_changed timestamp. But guess what; knowing when a…

Basic Breakout Game with Raylib

I have always wanted to write games. Back in the day that was the whole idea why I wanted to be a programmer. And I have worked myself into a new job at Fliva exactly because I wanted to become a game programmer. Only problem was that I found a…