Do you have more information on this?
I’ve tried many things including setting StrictFrameRate to true, but with an input stream of 60fps, my output streams still remain at 60fps.
Interestingly I tried changing my input stream to 10fps, and the output stream was 10fps rather than 30fps (with frames repeated multiple times) as I had expected. I did see the following message -
TranscoderFrameManager.onFrame: Inserting 1 frames due to not receiving a frame in over 500ms.
So assumedly it is doing something, just not what I’m expecting.
This is our transcoder template
<?xml version="1.0" encoding="UTF-8"?>
<Root version="1">
<Transcode>
<Description>Default transrate.xml file</Description>
<PostProcess>
<SortBuffer>
<Enable>true</Enable>
<!-- milliseconds -->
<BufferSize>750</BufferSize>
<FlushInterval>75</FlushInterval>
</SortBuffer>
</PostProcess>
<Encodes>
<Encode>
<Name>1080p</Name>
<Enable>true</Enable>
<Description></Description>
<StreamName>mp4:${SourceStreamName}_1080p</StreamName>
<Video>
<Codec>H.264</Codec>
<Implementation>Beamr</Implementation>
<GPUID>-1</GPUID>
<Profile>high</Profile>
<Bitrate>6000000</Bitrate>
<KeyFrameInterval>
<FollowSource>true</FollowSource>
<Interval>0</Interval>
</KeyFrameInterval>
<FrameSize>
<FitMode>fit-height</FitMode>
<Width>1280</Width>
<Height>1080</Height>
<Crop>0,0,0,0</Crop>
<SourceRectangle></SourceRectangle>
</FrameSize>
<Overlays>
</Overlays>
</Video>
<Audio>
<Codec>AAC</Codec>
<Bitrate>64000</Bitrate>
</Audio>
</Encode>
<!-- Setup for 720p, high bandwith, main profile for desktop or set-top box -->
<Encode>
<Enable>true</Enable>
<Name>720p</Name>
<StreamName>mp4:${SourceStreamName}_720p</StreamName>
<Video>
<!-- H.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
<Codec>H.264</Codec>
<!-- default, Beamr, QuickSync, NVENC -->
<Implementation>Beamr</Implementation>
<GPUID>-1</GPUID>
<FrameSize>
<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
<FitMode>fit-height</FitMode>
<Width>1280</Width>
<Height>720</Height>
<!-- <Crop>0,0,0,0</Crop> -->
<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
<Crop>0,0,0,0</Crop>
<SourceRectangle></SourceRectangle>
</FrameSize>
<!-- baseline, main, high -->
<Profile>high</Profile>
<Bitrate>3000000</Bitrate>
<KeyFrameInterval>
<FollowSource>true</FollowSource>
<Interval>0</Interval>
</KeyFrameInterval>
<Overlays>
</Overlays>
<Parameters></Parameters>
</Video>
<Audio>
<!-- AAC, Vorbis, Opus, PassThru, Disable -->
<Codec>AAC</Codec>
<Bitrate>64000</Bitrate>
<Parameters></Parameters>
</Audio>
<Properties>
</Properties>
<Description></Description>
</Encode>
<!-- Setup for 360p, high bandwith, main profile for desktop -->
<Encode>
<Enable>true</Enable>
<Name>360p</Name>
<StreamName>mp4:${SourceStreamName}_360p</StreamName>
<Video>
<!-- H.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
<Codec>H.264</Codec>
<!-- default, Beamr, QuickSync, NVENC -->
<Implementation>Beamr</Implementation>
<GPUID>-1</GPUID>
<FrameSize>
<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
<FitMode>fit-height</FitMode>
<Width>640</Width>
<Height>360</Height>
<!-- <Crop>0,0,0,0</Crop> -->
<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
<Crop>0,0,0,0</Crop>
<SourceRectangle></SourceRectangle>
</FrameSize>
<!-- baseline, main, high -->
<Profile>high</Profile>
<Bitrate>365000</Bitrate>
<KeyFrameInterval>
<FollowSource>true</FollowSource>
<Interval>0</Interval>
</KeyFrameInterval>
<Overlays>
</Overlays>
<Parameters></Parameters>
</Video>
<Audio>
<!-- AAC, Vorbis, Opus, PassThru, Disable -->
<Codec>AAC</Codec>
<Bitrate>64000</Bitrate>
<Parameters></Parameters>
</Audio>
<Properties>
</Properties>
<Description></Description>
</Encode>
<!-- Setup for 240p, medium bandwidth, baseline profile -->
<Encode>
<Enable>false</Enable>
<Name>240p</Name>
<StreamName>mp4:${SourceStreamName}_234p</StreamName>
<Video>
<!-- H.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
<Codec>H.264</Codec>
<!-- default, Beamr, QuickSync, NVENC -->
<Implementation>Beamr</Implementation>
<GPUID>-1</GPUID>
<FrameSize>
<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
<FitMode>fit-height</FitMode>
<Width>416</Width>
<Height>234</Height>
<!-- <Crop>0,0,0,0</Crop> -->
<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
</FrameSize>
<!-- baseline, main, high -->
<Profile>baseline</Profile>
<Bitrate>145000</Bitrate>
<KeyFrameInterval>
<FollowSource>true</FollowSource>
<Interval>60</Interval>
</KeyFrameInterval>
<Overlays>
</Overlays>
<Parameters></Parameters>
</Video>
<Audio>
<!-- AAC, Vorbis, Opus, PassThru, Disable -->
<Codec>PassThru</Codec>
<Bitrate>${SourceAudioBitrate}</Bitrate>
<Parameters></Parameters>
</Audio>
<Properties>
</Properties>
</Encode>
<!-- Setup for 160p, low bandwith, baseline profile for 3G mobile devices such as iOS, Android, Blackberry -->
<Encode>
<Enable>true</Enable>
<Name>160p</Name>
<StreamName>mp4:${SourceStreamName}_160p</StreamName>
<Video>
<!-- H.263, H.264, H.265, VP8, VP9, PassThru, Disable -->
<Codec>H.264</Codec>
<!-- default, Beamr, QuickSync, NVENC -->
<Implementation>Beamr</Implementation>
<GPUID>-1</GPUID>
<FrameSize>
<!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
<FitMode>fit-height</FitMode>
<Width>284</Width>
<Height>160</Height>
<!-- <Crop>0,0,0,0</Crop> -->
<!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
<Crop>0,0,0,0</Crop>
<SourceRectangle></SourceRectangle>
</FrameSize>
<!-- baseline, main, high -->
<Profile>baseline</Profile>
<Bitrate>105000</Bitrate>
<KeyFrameInterval>
<FollowSource>true</FollowSource>
<Interval>0</Interval>
</KeyFrameInterval>
<Overlays>
</Overlays>
<Parameters></Parameters>
</Video>
<Audio>
<!-- AAC, Vorbis, Opus, PassThru, Disable -->
<Codec>AAC</Codec>
<Bitrate>64000</Bitrate>
<Parameters></Parameters>
</Audio>
<Properties>
</Properties>
<Description></Description>
</Encode>
</Encodes>
<Decode>
<Debug>true</Debug>
<Video>
<!-- default, Beamr, QuickSync, CUDA, NVCUVID -->
<Implementation>Beamr</Implementation>
<Deinterlace>false</Deinterlace>
<InputBufferTime>240</InputBufferTime>
<MinimumFrameRate>30</MinimumFrameRate>
<StrictFrameRate>true</StrictFrameRate>
<Overlays>
<Overlay>
<Enable>false</Enable>
<Name>WowzaLogo</Name>
<Index>0</Index>
<ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/wowzalogo.png</ImagePath>
<CheckForUpdates>false</CheckForUpdates>
<Opacity>100</Opacity>
<Location>
<X>4</X>
<Y>4</Y>
<Width>${ImageWidth}</Width>
<Height>${ImageHeight}</Height>
<!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
<Align>left,top</Align>
</Location>
</Overlay>
</Overlays>
<Parameters></Parameters>
</Video>
<Audio>
<Parameters></Parameters>
</Audio>
<Properties>
</Properties>
</Decode>
<Scale>
<!-- default, CUDA -->
<Implementation>default</Implementation>
<Parameters></Parameters>
<Properties>
</Properties>
</Scale>
<StreamNameGroups>
<!-- Note: Play stream using stream name ngrp:[stream-name] -->
<StreamNameGroup>
<Name>all</Name>
<StreamName>${SourceStreamName}_all</StreamName>
<Members>
<Member>
<MemberName>1080p</MemberName>
<EncodeName>1080p</EncodeName>
<MediaListRendition>
<WowzaVideoOnly>false</WowzaVideoOnly>
<WowzaAudioOnly>false</WowzaAudioOnly>
</MediaListRendition>
</Member>
<Member>
<MemberName>720p</MemberName>
<EncodeName>720p</EncodeName>
<MediaListRendition>
<WowzaVideoOnly>false</WowzaVideoOnly>
<WowzaAudioOnly>false</WowzaAudioOnly>
</MediaListRendition>
</Member>
<Member>
<MemberName>360p</MemberName>
<EncodeName>360p</EncodeName>
<MediaListRendition>
<WowzaVideoOnly>false</WowzaVideoOnly>
<WowzaAudioOnly>false</WowzaAudioOnly>
</MediaListRendition>
</Member>
<Member>
<MemberName>240p</MemberName>
<EncodeName>240p</EncodeName>
<MediaListRendition>
<WowzaVideoOnly>false</WowzaVideoOnly>
<WowzaAudioOnly>false</WowzaAudioOnly>
</MediaListRendition>
</Member>
<Member>
<MemberName>160p</MemberName>
<EncodeName>160p</EncodeName>
<MediaListRendition>
<WowzaVideoOnly>false</WowzaVideoOnly>
<WowzaAudioOnly>false</WowzaAudioOnly>
</MediaListRendition>
</Member>
</Members>
<Description></Description>
</StreamNameGroup>
<StreamNameGroup>
<Name>mobile</Name>
<StreamName>${SourceStreamName}_mobile</StreamName>
<Members>
<Member>
<MemberName>240p</MemberName>
<EncodeName>240p</EncodeName>
</Member>
<Member>
<MemberName>160p</MemberName>
<EncodeName>160p</EncodeName>
</Member>
</Members>
</StreamNameGroup>
</StreamNameGroups>
<Properties>
</Properties>
</Transcode>
</Root>