Set PAT/PMT period using ffmpeg

ffmpegmpegvideo streamingvideo-encoding

According to the ffmpeg documentation using
sets the maximal time in seconds between PAT/PMT tables.

I'd like to set the value to 100ms, however I'm not getting the desired value.

The code I'm using:

-map 0:0 -map 0:1 -c:a ac3 -ab 384k -ar 48000 -ac 6 -async 1 -streamid 1:0x102 -streamid 0:0x101 -c:v libx264 -pat_period 100 -crf 20 -b:v 7800k -minrate 7800k -maxrate 7800k -muxrate 8250K -bufsize 700k -r 25 -force_fps -s 1920x1080 -aspect 16:9 -profile:v high422 -level 40 -partitions default -b-pyramid 1 -weightb 0 -8x8dct 0 -fast-pskip 0 -rc-lookahead 40 -x264-params force-cfr=1 -trellis 1 -me_method hex -sws_flags fast_bilinear -sc_threshold 40 -keyint_min 25  -g 50 -bf 3 -qmin 3 -qmax 51 -f mpegts  -copyts -threads 8 -f mpegts -sn

I experimented with different values instead of using 100 (which results 78) without getting 100.

Could somebody please point me in the right direction? I assume I miss something or I'm not converting the values right.

Best Answer

Ffmpeg's mpegts muxer defaults to 100 ms between PAT/PMT tables anyway but you can set it explicitly with -pat_period 0.1.

Any value over 0.4 is likely to cause your analyzer to throw priotity 1 PAT errors as defined in ETSI TR 101 290, p. 17.

Related Question