Syntax for stream consumer in config file for 2.2?

server
streaming

#1

Since I haven’t found any mention of this anywhere, I’m assuming that there is something missing on my side, but I can’t readily see what. If I use a known working stream syntax in the config file for server 2.2.0, for instance:

  <channels>
    <channel>
      <video-mode>1080p5000</video-mode>
      <consumers>
        <stream>
          <path>udp://224.0.0.101:1234?pkt_size=1316</path>
          <args>-filter:v format=pix_fmts=yuv420p -codec:v h264_nvenc -format mpegts</args>
        </stream>
      </consumers>
    </channel>
  </channels>

Server responds with:

[2019-08-06 22:13:19.120] [info]    video_channel[1|1080p5000] Successfully Initialized.
[2019-08-06 22:13:19.120] [error]   Exception: C:\Program Files (x86)\Jenkins\workspace\casparcg-server-dep\2.2.x\src\core\consumer\frame_consumer.cpp(194): Throw in function class caspar::spl::shared_ptr<class caspar::core::frame_consumer> __cdecl caspar::core::frame_consumer_registry::create_consumer(const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class boost::property_tree::basic_ptree<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> >,struct std::less<class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > > > &,class std::vector<class caspar::spl::shared_ptr<class caspar::core::video_channel>,class std::allocator<class caspar::spl::shared_ptr<class caspar::core::video_channel> > >) const
[2019-08-06 22:13:19.120] [error]   Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::user_error>
[2019-08-06 22:13:19.120] [error]   [struct caspar::tag_msg_info * __ptr64] = No consumer factory registered for element name stream
[2019-08-06 22:13:19.120] [error]   [struct caspar::tag_stacktrace_info * __ptr64] =  0# 0x00007FF792BA98AE in casparcg
[2019-08-06 22:13:19.120] [error]    1# 0x00007FF792BD8C50 in casparcg
[2019-08-06 22:13:19.120] [error]    2# 0x00007FF792C81789 in casparcg
[2019-08-06 22:13:19.120] [error]    3# 0x00007FF792BD67A4 in casparcg
[2019-08-06 22:13:19.120] [error]    4# 0x00007FF792BD8D12 in casparcg
[2019-08-06 22:13:19.120] [error]    5# 0x00007FF792BACDB3 in casparcg
[2019-08-06 22:13:19.120] [error]    6# 0x00007FF792BB077C in casparcg
[2019-08-06 22:13:19.120] [error]    7# 0x00007FF792F9C638 in casparcg
[2019-08-06 22:13:19.120] [error]    8# BaseThreadInitThunk in KERNEL32
[2019-08-06 22:13:19.120] [error]    9# RtlUserThreadStart in ntdll
[2019-08-06 22:13:19.120] [error]   
[2019-08-06 22:13:19.120] [error]   

[2019-08-06 22:13:19.120] [error]    0# 0x00007FF792BA98AE in casparcg
[2019-08-06 22:13:19.120] [error]    1# 0x00007FF792BA91DF in casparcg
[2019-08-06 22:13:19.120] [error]    2# 0x00007FF79304CDC7 in casparcg
[2019-08-06 22:13:19.120] [error]    3# 0x00007FF8D1F61030 in VCRUNTIME140
[2019-08-06 22:13:19.120] [error]    4# is_exception_typeof in VCRUNTIME140
[2019-08-06 22:13:19.120] [error]    5# RtlCaptureContext in ntdll
[2019-08-06 22:13:19.120] [error]    6# 0x00007FF792BD67A4 in casparcg
[2019-08-06 22:13:19.120] [error]    7# 0x00007FF792BD8D12 in casparcg
[2019-08-06 22:13:19.120] [error]    8# 0x00007FF792BACDB3 in casparcg
[2019-08-06 22:13:19.120] [error]    9# 0x00007FF792BB077C in casparcg
[2019-08-06 22:13:19.120] [error]   10# 0x00007FF792F9C638 in casparcg
[2019-08-06 22:13:19.120] [error]   11# BaseThreadInitThunk in KERNEL32
[2019-08-06 22:13:19.120] [error]   12# RtlUserThreadStart in ntdll
[2019-08-06 22:13:19.120] [error]

But if I run the same command manually at the console…

ADD 1 STREAM udp://224.0.0.101:1234?pkt_size=1316 -filter:v format=pix_fmts=yuv420p -codec:v h264_nvenc -format mpegts

…everything is just fine.

Same happens on 2.1.0 (not as much clutter in the log though) but not 2.0.7. Syntax change? Pebcac error?

Best regards
Alexander

EDIT: Tested on Win 10 Pro 1903 and 1809


#2

Following works in config file.

   <ffmpeg>
      <path>udp://224.0.0.101:1234?pkt_size=1316</path>
      <args>-filter:v format=pix_fmts=yuv420p -codec:v h264_nvenc -format mpegts</args>
   </ffmpeg>

Here i tested <ffmpeg> tag in place of <stream>


#3

That did the trick, thanks!

Should we update the configuration wiki on GitHub to reflect that change? I’m new to the community so I’m not sure if its suitable for me to go and edit myself just like that.

BR
Alexander