#### Post-Processing
The post-processing gives you the possibility to run any script / program after a recording has finished. You can use that to convert
the files to another format, create preview images, rename / move the file etc.
There are example scripts included in the distribution zip (`pp.bat`, `pp.ps1`, `pp.sh`). See also the comments in those files.

##### Local Recording
If you are using the local recording mode, you can set the post-processing script / program on the settings tab under *Recorder* -> *Post-Processing*.
ctbrec will call the selected script after the recording has finished with the following parameters:

1. directory (absolute path)
2. file (absolute path)
3. model name
4. site name
5. unixtime (seconds since 1/1/1970 00:00)

##### Remote Recording (server)
If you are running the server and want to run a post-processing script, you have to edit the [configuration file](/docs/ConfigurationFile.md). Just set the absolute path to an executable script / program for the setting **postProcessing**. Since the recordings look a bit different for the server, the parameters, which are passed to the script are a bit different, too:

1. parent directory (absolute path)
2. directory of the recording (absolute path) - this directory contains the segments and the playlist
3. model name
4. site name
5. unixtime (seconds since 1/1/1970 00:00)

##### Example Scripts

Server script by @uo0Evx99@mastodon.cloud used on a Raspberry Pi 3 B+ to convert recordigns to mp4 files:
```
#!/bin/bash

#
#Explanation of the code: It first takes all the .ts files (because sadly the server
#doesnt save the video in 1 big file instead) and creates one big .ts file in the same
#folder called "all".
#
#Then it uses ffmpeg to re-encode the .ts file to .mp4 while just copying the audio
#and video codec to reduce the encoding time. It also uses the -movflags faststart so
#the video can be played back instantly when viewing online (e.g. with Plex)
#That re-encoded file is being stored in the folder /home/pi/hdd/plex/"MODEL NAME"/ 
#with the name "CURRENT TIME"-"MODEL NAME".mp4
#
#Then it deletes the folder in which all the .ts files were, because we dont need
#those anymore as we have our .mp4 file re-encoded already and ready to use/stream.
#
#This script has been used on a Raspberry Pi 3 B+
#

# $1 directory (absolute path)
# $2 file (absolute path)
# $3 model name
# $4 site name
# $5 unixtime

# format unixtime to human readable
TIME=$(date --date="@$5" +%H:%M_%d.%m.%Y)

cat $2/*.ts > "$2/all.ts" && ffmpeg -i "$2/all.ts" -acodec copy -vcodec copy -movflags faststart "/home/pi/hdd/plex/$3/$TIME-$3.mp4" && rm -r "$2"
```


Windows script by @electrotek@mastodon.cloud.
Automatically converts .ts files into mkv after recording ended, factors in multiple/split files. Assumes mkvtoolnix installed in path stated
```
@echo off	

set directory=%1
set file=%2
set model=%3
set site=%4
set unixtime=%5

FOR %%f in (%directory%\*.ts) do (
    "C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%directory%\%%~nf.mkv" --title "%model%" "%directory%\%%~nf.ts"
    del "%directory%\%%~nf.ts"
)
```

##### Video Tutorials
<iframe width="560" height="315" src="https://www.youtube.com/embed/QIZhrhBFhoc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>