Skip to content

Instantly share code, notes, and snippets.

FFmpeg Minimal Build for RTMP Streaming

This tutorial will work you through steps of configuring an FFmpeg build tailored for RTMP streaming on macOS. At first I think of making it support general live streaming, with additional protocols like HLS, but to keep things simple let's stick with RTMP for now. (Anyway, I do include HLS in the protocol list as well as some related bitstream filters but it's untested.)

Goal

The built FFmpeg executable should

@mholt
mholt / main.go
Created October 16, 2018 14:25 — forked from KatelynHaworth/main.go
Example of run an interactive process on the current user from system service on windows (Golang)
package main
import (
"github.com/kardianos/service"
"log"
"flag"
)
type Service struct {}
@adriansr
adriansr / svg2icns.sh
Created February 19, 2018 15:21
Convert SVG file to macOS icon (icns) format
#!/bin/sh -x
set -e
SIZES="
16,16x16
32,16x16@2x
32,32x32
64,32x32@2x
128,128x128
@KatelynHaworth
KatelynHaworth / main.go
Last active August 12, 2023 20:38
Example of run an interactive process on the current user from system service on windows (Golang)
package main
import (
"github.com/kardianos/service"
"log"
"flag"
)
type Service struct {}
@macmade
macmade / CF
Created March 8, 2014 16:53
CoreFoundation Example
{
/* First of all, we need a C array to store our dictionary keys */
CFStringRef keys[ 2 ];
/*
* Let's create the dictionary keys. First key is straightforward because
* of the CFSTR macro, while the second one is less...
*/
keys[ 0 ] = CFSTR( "key-1" );
keys[ 1 ] = CFStringCreateWithCString
@fasterthanlime
fasterthanlime / windows.sh
Created April 25, 2019 12:48
Building ffmpeg & libx264 with MSVC from msys2
#!/bin/bash
set -e
if [[ -z "${FFRUST_VC_PATH}" ]]; then
if [[ -n "${FFRUST_RECURSING}" ]]; then
echo "Something went terribly wrong with our MVSC/msys2 magic"
exit 1
fi
@jahe
jahe / gradle-cheatsheet.gradle
Last active December 8, 2022 07:22
Gradle Cheatsheet
// imports a couple of java tasks
apply plugin: "java"
// List available tasks in the shell
> gradle tasks
// A Closure that configures the sourceSets Task
// Sets the main folder as Source folder (where the compiler is looking up the .java files)
sourceSets {
main.java.srcDir "src/main"
@awalterschulze
awalterschulze / .gitignore
Last active September 2, 2022 10:42
compile git version inside go binary
mybinary
@killgxlin
killgxlin / windows.sh
Created November 23, 2021 07:56 — forked from fasterthanlime/windows.sh
Building ffmpeg & libx264 with MSVC from msys2
#!/bin/bash
set -e
if [[ -z "${FFRUST_VC_PATH}" ]]; then
if [[ -n "${FFRUST_RECURSING}" ]]; then
echo "Something went terribly wrong with our MVSC/msys2 magic"
exit 1
fi