These are some ffmpeg command lines used when developing VHS dubbing controller.
#!/bin/bash
# Stream a PAL 50i capture, cropped and de-interlaced using ffmpeg
# Usage: ./stream.sh <input-video>
# Ensure there's a clean HLS directory
mkdir -p /dev/shm/hls;
rm /dev/shm/hls*
ffmpeg -re -i "$1" -vf "bwdif=mode=send_field:parity=tff,crop=692:554:14:8,format=yuv420p" \
-loglevel repeat+info \
-preset ultrafast -vcodec libx264 -tune zerolatency -flags +cgop -g 50 -b:v 5700k \
-c:a aac -b:a 192k -ar 48000 -strict 2 \
-movflags +faststart \
-f hls \
-hls_time 1\
-hls_list_size 1 \
-hls_wrap 20 \
-hls_delete_threshold 1 \
-hls_flags delete_segments \
-hls_start_number_source datetime \
-start_number 10 \
/dev/shm/hls/stream.m3u8
# Re-stream a PAL 50i file to UDP
ffmpeg -re -i "$1" -vf "bwdif=mode=send_field:parity=tff,crop=692:554:14:8,format=yuv420p" \
-preset ultrafast -vcodec libx264 -tune zerolatency -flags +cgop -g 50 -b:v 5700k \
-c:a aac -b:a 192k -ar 48000 -strict 2 \
-movflags +faststart \
-f mpegts \
'udp://127.0.0.1:5333/?pkt_size=1024&buffer_size=65535'
ffmpeg -re -i "$1" -c:v libx264 -preset ultrafast -crf 25 -flags +cgop -g 17 -c:a aac -b:a 192k -ar 48000 -strict 2 -f mpegts 'udp://127.0.0.1:5333'
gid:e6nHPL2cNZnqABwgHg4trP