=====FFMpeg Conversion Workflows=====
This is a bunch of unsorted tinkerings with FFMpeg and some useful conversion Workflows that might help you in your postproduction work. Not necessarily BMPCC related but still useful.
==== Transcoding with LUT ====
if you need to create rushes of any Prores recorded in FILM Setting and want to apply a preliminary color preview (i.e. for editing): recent ffmpeg (>=2.0) versions can apply LUT's during conversion:
example for h264 conversion while applying Hooks LUT
ffmpeg -i input.mov \
-vf "lut3d=/home/x/Downloads/HooksLUT/Hook_BMDFilm2Vid_3DLC_BASIC_V1.cube" \
-c:v libx264 -preset fast -crf 22 output.mp4
trancoding to prores proxy while applying LUT:
ffmpeg -i input.mov \
-vf "lut3d=/home/till/Downloads/HooksLUT/Hook_BMDFilm2Vid_3DLC_BASIC_V1.cube" \
-vcodec prores -profile:v 0 -an output.mov
====Transcoding with LUT and adding TC====
example for h264 conversion while applying LUT and superimposing Timecode
#!/bin/bash
for file in *.mov; do
ffmpeg -i "$file" -vf "lut3d=./path/to/3dLUT.cube, \
drawtext=fontfile=/usr/share/fonts/liberation/LiberationSans-Regular.ttf : \
timecode='00\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): \
fontsize=30: fontcolor=white: box=1: boxcolor=0x00000000@1" \
-c:v libx264 -preset ultrafast -crf 35 -c:a aac -b:a 128k \
-strict -2 "$file".mp4
done;
==== Anamorphic desqueeze ====
The following gives you square pixels in the result. You might want to optimize with different scalers.
#!/bin/bash
for file in *.mov; do
ffmpeg -i "$file" -vf scale=1920:720,setsar=1:1,setdar=2.66:0,unsharp \
-c:v libx264 -preset ultrafast -crf 35 -c:a aac -b:a 128k \
-strict -2 "$file".mp4
done;
==== Crop and scale an anamorphic part of the image ====
Extract 1440 pixel in width and calculate the corresponding hight for 2.4:1 ratio with a 1.5x scope:
-vf crop=1440:1440/2.4*1.5
get that up to 1080p in width:
#!/bin/bash
for file in *.mov; do
ffmpeg -i "$file" -vf crop=1440:1440/2.4*1.5,scale=1920:1920/2.4,setsar=1:1,setdar=2.4:0,unsharp \
-c:v libx264 -preset ultrafast -crf 35 -c:a aac -b:a 128k \
-strict -2 "$file".mp4
done;
Extract 2600 pixel in width and calculate the corresponding hight for 2.6:1 ratio with a 2x scope:
-vf crop=2600:2600/2.6*2
==== Denoising ====
Does not work with RAW Source Material.
*Work in Progress*
Inspired by: http://www.personal-view.com/talks/discussion/10637/4k-downscaling-progress-topic
**ffmpeg denoise script for BMPCC, tested for already graded ISO800 Footage**
ffmpeg -i "$1" \
-filter:v hqdn3d=2.0:2.0:7.0:8.0
-c:v prores_ks -profile:v 2 \
-c:a copy \
-c:s null \
-c:d copy \
-c:t copy \
"$1_dn_ProRes.mov"
**ffmpeg scale and denoise for GH4 UHD tested with ISO 800**
ffmpeg -i "$1" \
-filter:v hqdn3d=3.0:3.0:5.0:5.0 \
-vf scale=1920:1080 \
-q 0 -quant_mat hq \
-c:v prores_ks -profile:v 1 \
-c:a copy \
-c:s copy \
-c:d copy \
-c:t copy \
"$1_hqdn3d_ProRes.mov"
**ffmpeg scale UHD to HD 444 and denoise for GH4 UHD and defish 7,5mm Samyang tested with ISO 800**
ffmpeg -i "$1" \
-filter_complex 'extractplanes=y+u+v[y][u][v]; [u] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [us]; [v] scale=w=3840:h=2160:flags=print_info+neighbor+bitexact [vs]; [y][us][vs]mergeplanes=0x001020:yuv444p,format=pix_fmts=yuv444p10le,hqdn3d=3:3:5:5,frei0r=lenscorrection:0.5:0.5:0.16:0.6,scale=w=1920:h=1080:flags=print_info+bicubic+full_chroma_inp+full_chroma_int' \
-sws_dither none \
-q 0 -quant_mat hq \
-c:v prores_ks \
-profile:v 4 \
-c:a copy \
-c:s copy \
-c:d copy \
-map 0 \
"$2/$1"
==== Deinterlace & Upscaling ====
Deinterlace & Upscale any kind of found footage to ProRes at 1920x1080 resolution
ffmpeg -i InFile.avi -codec:v prores_ks -profile:v 2 -codec:a pcm_s16le \
-filter_complex asetnsamples=n=16384:p=0 -vf "yadif, scale=1920:1080"
\ OutputProRes.mov