SQ6QV current script

From BATC Wiki
Revision as of 16:34, 13 May 2020 by SQ6QV (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
@echo off
set STATION=SQ6QV
set STATION_DESC=via QO-100, JO81BE Legnica, Poland
set NAME=Tomasz


rem 6639 5000 QPSK FEC 2/3 

rem 5945 5000 QPSK FEC 3/5 

rem 5315 4000 QPSK FEC 2/3 long - ??

rem 3955 4000 QPSK FEC 1/2 long - ??

rem 3986 3000 QPSK FEC 2/3 long - ??

rem 2656 2000 QPSK FEC 2/3 long - ??
 
rem 1289 1000 QPSK FEC 2/3 short - D0/D2
rem 1325 1000 QPSK FEC 2/3 long <--USE THIS
rem 1296 1000 QPSK FEC 2/3 long +pilots

rem 986  1000 QPSK FEC 1/2 long - D4

rem 1207 333 32APSK FEC 3/4 long pilots 
rem 903 250 32APSK FEC 3/4 long pilots 
rem 625 250 32APSK FEC 3/4 long pilots 
rem 451 125 32APSK FEC 3/4 long pilots use 456 640x480 

rem 861  333 16APSK FEC 2/3 long pilots - USE 859!

rem 741  333 8PSK FEC 3/4 long 
rem 726  333 8PSK FEC 3/4 long  + pilots


rem 662  500 QPSK FEC 2/3 long 

rem 995  500 QPSK FEC 2/3 long 


rem 661  333 8PSK FEC 2/3 long 

rem 646  333 8PSK FEC 2/3 long +pilots

rem 860  333 8PSK FEC 9/10 long pilots




rem 462  125 32APSK FEC 3/4 long 
rem 451  125 32APSK FEC 3/4 long +pilots

rem 442  333 QPSK FEC 2/3 long - ??

rem 240  66 32APSK FEC 3/4 long 

rem 190  66 16APSK FEC 3/4 long 

rem enter TS bitrate here:

set TS=859

set TS=%1

rem set TS=1325


set AUDIO_RATE=64

set AUDIO_SAMPLE_RATE=22050

SET OUTPUT_IP=192.168.10.208:2244
rem SET OUTPUT_IP=192.168.10.75:2244
rem SET OUTPUT_IP=127.0.0.1:2244
 
set /a TS_NO_AUDIO=%TS%-%AUDIO_RATE%
set /a VIDEO_RATE=%TS_NO_AUDIO% * 75 / 100 
set /a BUFSIZE=%VIDEO_RATE% *20 / 10 

set /a TSBITRATE=%TS% * 1000 
echo -------------------------
echo TS rate: %TS% kbit
echo Video: %VIDEO_RATE% kbit
echo Audio: %AUDIO_RATE% kbit

set /a MAX_VIDEO_RATE=VIDEO_RATE
set /a Min_VIDEO_RATE=VIDEO_RATE


rem HEIGHT -65
set TEXTY=660

set TEXTY=1030
rem set TEXTY=655
set /a TEXTYY=%TEXTY% +22
set TEXTCOL=0x33CCFFEE
set T2_SIZE=50
set DATECOL=0xFFCC00FF

set TEXT_CMD=-vf "drawtext=fontfile='hemi.ttf':text=%%{gmtime\\:%%d %%b %%Y %%X}:x=10:y=10:fontsize=%T2_SIZE%:fontcolor=%DATECOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2, drawtext=fontfile='hemi.ttf':text='%STATION%':x=25:y=%TEXTY%:fontsize=%T2_SIZE%:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2, drawtext=fontfile='hemi.ttf':text='%STATION_DESC%':x=320:y=%TEXTYY%:fontsize=20:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2"

rem timestamps
set TEXT_CMD=-vf "drawtext=fontfile='hemi.ttf':text=%%{gmtime\\:%%X}_fr_%%{frame_num}:x=10:y=10:fontsize=100:fontcolor=%DATECOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2, drawtext=fontfile='hemi.ttf':text='%STATION%':x=25:y=%TEXTY%:fontsize=%T2_SIZE%:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2, drawtext=fontfile='hemi.ttf':text='%STATION_DESC%':x=320:y=%TEXTYY%:fontsize=20:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2"
rem without time 
set TEXT_CMD=-vf "drawtext=fontfile='hemi.ttf':text='%STATION%':x=25:y=%TEXTY%:fontsize=%T2_SIZE%:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2,drawtext=fontfile='hemi.ttf':text='%STATION_DESC%':x=200:y=%TEXTYY%:fontsize=20:fontcolor=%TEXTCOL%:shadowcolor=0x00007f9f:shadowx=2:shadowy=2"
rem set TEXT_CMD=

rem 43240 udp
set OUTPUT_STREAM=-f mpegts -muxrate %TS%k  -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 1 -mpegts_pmt_start_pid 4096 -streamid 0:256 -streamid 1:257 -metadata service_provider="%STATION%" -metadata service_name="%STATION% %NAME%" -y "udp://%OUTPUT_IP%?pkt_size=43240&bitrate=%TSBITRATE%"
set OUTPUT_STREAM=-f mpegts -muxrate %TS%k  -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 1 -mpegts_pmt_start_pid 4096 -streamid 0:256 -streamid 1:257 -metadata service_provider="%STATION%" -metadata service_name="%STATION% %NAME%" -y "udp://%OUTPUT_IP%?pkt_size=43240"
rem 1326 udp - lower latency
rem set OUTPUT_STREAM=-f mpegts -muxrate %TS%k  -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 1 -mpegts_pmt_start_pid 4096 -streamid 0:256 -streamid 1:257 -metadata service_provider="%STATION%" -metadata service_name="%STATION% %NAME%" -y "udp://%OUTPUT_IP%?pkt_size=1316"

rem TCP OUTPUT
rem set OUTPUT_STREAM=-f mpegts -muxrate %TS%k  -mpegts_original_network_id 1 -mpegts_transport_stream_id 1 -mpegts_service_id 1 -mpegts_pmt_start_pid 4096 -streamid 0:256 -streamid 1:257 -metadata service_provider="%STATION%" -metadata service_name="%STATION% %NAME%" -y "tcp://0.0.0.0:2244%?listen"


set VIDEO_DEVICE="vMix Video"
set AUDIO_SOURCE="vMix Audio"

rem set VIDEO_DEVICE="OBS-Camera"
rem set AUDIO_SOURCE="OBS-Audio"

set RESOLUTION=640x480
rem set RESOLUTION=730x410
rem set RESOLUTION=864x480
rem set RESOLUTION=768x480
set RESOLUTION=1280x720
rem set RESOLUTION=1920x1080

rem set RESCALE=
rem set RESCALE=-vf crop=1440:1080,scale=640:480

set FPS=-r 25
rem set FPS=


set AUDIO_PARAMS=-af "highpass=f=250,lowpass=f=6000 " -acodec aac -aac_coder twoloop -aac_pns disable -ar %AUDIO_SAMPLE_RATE% -ac 1
rem set AUDIO_PARAMS=-acodec aac -aac_coder twoloop -aac_pns disable
rem set AUDIO_PARAMS=-af "highpass=f=250, lowpass=f=4000" -acodec ac3 -ar 22050 -ac 1
rem set AUDIO_PARAMS=-af "highpass=f=250, lowpass=f=4000" -acodec mp2 -ar 22050 -ac 1
set AUDIO_PARAMS=-af highpass=f=250,lowpass=f=4000 -acodec aac -aac_coder twoloop -aac_pns disable -ar %AUDIO_SAMPLE_RATE% -ac 1
 	
rem hq
set VIDEO_CODEC=-pix_fmt yuv444p16le -vcodec hevc_nvenc -preset hq -profile:v main10 -cbr 1 -rc cbr_hq 
rem -forced-idr 1


rem BEST QUALITY
set VIDEO_CODEC=-pix_fmt yuv444p16le  -vcodec hevc_nvenc -preset slow -tune psnr -profile:v main10 -rc-lookahead 25 -spatial_aq 1 -temporal-aq 1 -vsync 0 -threads 4 -cbr 1 -rc cbr_hq -surfaces 4

set VIDEO_CODEC=-pix_fmt yuv420p  -vcodec hevc_nvenc -preset slow -tune psnr -profile:v main -rc-lookahead 35 -spatial_aq 1 -cbr 1 -rc cbr_hq -surfaces 20
rem set VIDEO_CODEC=-pix_fmt yuv420p  -vcodec hevc_nvenc -preset slow -profile:v main -rc-lookahead 35 -spatial_aq 1 -cbr 1 -rc cbr_hq -surfaces 20


rem VBR!!!
rem set VIDEO_CODEC=-pix_fmt yuv420p  -vcodec hevc_nvenc -preset slow  -profile:v main -level 4 -rc-lookahead 25 -spatial_aq 1 -temporal-aq 1 -vsync 0 -threads 4 -2pass 1 -rc cbr_hq -surfaces 10
rem set VIDEO_CODEC=-pix_fmt yuv420p  -vcodec hevc_nvenc -preset slow  -profile:v main -tune psnr -rc-lookahead 25 -spatial_aq 1 -temporal-aq 1 -threads 4 -g 250 -rc cbr_hq -surfaces 10

rem set /a MIN_VIDEO_RATE=%TS_NO_AUDIO% * 20 / 100 
rem set /a MAX_VIDEO_RATE=%TS_NO_AUDIO% * 75 / 100 

rem BEST_QUALITY_SOFTWARE -require HAL9000 :D
rem set VIDEO_CODEC=-pix_fmt yuv420p  -vcodec libx265 -preset faster -profile:v main -rc-lookahead 15 -spatial_aq 1 -temporal-aq 1 -vsync 0 -threads 4 -rc cbr_hq -surfaces 4
rem set /a MIN_VIDEO_RATE=%TS_NO_AUDIO% * 20 / 100 
rem set /a MAX_VIDEO_RATE=%TS_NO_AUDIO% * 90 / 100 



rem set VIDEO_CODEC=-vcodec h264_qsv 

rem  HQ 264
rem set VIDEO_CODEC=-pix_fmt yuv420p -vcodec nvenc_h264 -preset medium -profile:v main -rc-lookahead 25 -spatial_aq 1 -temporal-aq 1 -vsync 0 -cbr 1 -threads 4 -rc cbr_hq -forced-idr 1


rem compatible with hardware decoders
rem set VIDEO_CODEC=-pix_fmt yuv420p -vcodec hevc_nvenc -preset slow -profile:v main -rc-lookahead 15 -spatial_aq 1 -cbr 1 -rc cbr_hq -surfaces 4

rem set VIDEO_CODEC=-pix_fmt yuv420p -vcodec hevc_nvenc -preset slow -profile:v main -rc-lookahead 25 -spatial_aq 1 -cbr 1 -rc cbr_hq -surfaces 4


rem H264
rem set VIDEO_CODEC=-pix_fmt yuv420p -vcodec nvenc_h264 -preset medium -profile:v main -cbr 1 -rc cbr_hq -forced-idr 1



rem ffmpeg -f dshow -i video=%VIDEO_DEVICE% -rtbufsize 100k -f dshow -i audio=%AUDIO_SOURCE% -sample_rate %AUDIO_SAMPLE_RATE% -audio_buffer_size 100k %FILTERS% -s %RESOLUTION% -r %FPS% %VIDEO_CODEC% -b:v %VIDEO_RATE%k -minrate:v %VIDEO_RATE%k -maxrate:v %VIDEO_RATE%k -bufsize:v %BUFSIZE%k -ab %AUDIO_RATE%k %AUDIO_PARAMS% %TEXT_CMD% %OUTPUT_STREAM%
rem ffmpeg -f dshow -i video=%VIDEO_DEVICE%:audio=%AUDIO_SOURCE% -sample_rate %AUDIO_SAMPLE_RATE% -audio_buffer_size 100k %FILTERS% -s %RESOLUTION% -r %FPS% %VIDEO_CODEC% -b:v %VIDEO_RATE%k -minrate:v %VIDEO_RATE%k -maxrate:v %VIDEO_RATE%k -bufsize:v %BUFSIZE%k -ab %AUDIO_RATE%k %AUDIO_PARAMS% %TEXT_CMD% %OUTPUT_STREAM%

ffmpeg -f dshow -i video=%VIDEO_DEVICE%:audio=%AUDIO_SOURCE% -sample_rate %AUDIO_SAMPLE_RATE% -audio_buffer_size 100k %FILTERS% -s %RESOLUTION% %FPS% %RESCALE% %VIDEO_CODEC% -b:v %VIDEO_RATE%k -minrate:v %MIN_VIDEO_RATE%k -maxrate:v %MAX_VIDEO_RATE%k -bufsize:v %BUFSIZE%k -ab %AUDIO_RATE%k %AUDIO_PARAMS% %TEXT_CMD% %OUTPUT_STREAM%