It is currently 31 Mar 2017, 01:23



CasparCG-based MAV/EVS replacement [BETA]

CasparCG Server, Client and development

Moderators: Macey, Jonas Hummelstrand, didikunz

CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 01 Mar 2013, 20:43

This post is updated to the info about the latest release - latest is: 2015/09/23 - 2.0.7_MAV_4

NOTE: I haven't had the time to work on this as much as I would like to, but @krzyc has made some significant contributions to this code: see his post here. I have updated the casparcg-mav repository on github and changed the binary release URL in this post to his repository.

I'd like to share with the community (and quite frankly, also seek some help here) my project which is a replay system based on CasparCG (version 2.0.3, because 2.1.0 would blue-screen my machine). In order to be truly replay-worthy, I decided to add my own consumer and producer to the Caspar framework. The producer and consumer are based on the libjpeg-turbo library, and as such use JPEG as a codec. This produces large files, but is easy to handle in terms of software development and works quickly enough to allow doing multiple input and output channels on the same machine.

The system uses "replay buffers" that are split into two pieces: the video essence file and an index file. This allows simultaneous access to the buffer by a single input and multiple outputs. The video essence file is a stream of JPEG images (one image per every field/frame) and the index is simply a short header and a stream of byte offsets in the video essence file for each field/frame.

Other than that, the rest of the Caspar server is relatively unchanged (I had to modify the code a little bit to make MAV files show up after "CLS" command) - I think that shows Caspar's remarkable flexibility.

I have tested the system in both PAL and 1080i50, and it does work - with some quirks (more on that later). I haven't tested this for systems other than 50Hz (59.94Hz and LFF modes might be tricky). Hardware performance is key here, but I believe all servers to spec to the SVT hardware recommendations should handle easily at leas one input and one output channel.

DOWNLOAD
The binaries: https://github.com/krzyc/CasparCG-Server/releases/
The source GitHub repository: https://github.com/jstarpl/casparcg-mav

CHANGELOG
September 23rd, 2015 - Changes made by forum member @krzyc
  • The codebase has been brought up-to-date with CasparCG 2.0.7
  • libjpeg-turbo has been updated
  • added OSC support for consumers
August 21th, 2013
  • An experimental change that allows fast-motion playback
August 19th, 2013
  • The codebase has been brought up-to-date with CasparCG 2.0.4 Beta 1
June 3rd, 2013
  • The consumer can now use custom subsampling and JPEG quality settings. Use sytanx:
    Code: Select all
    ADD 1 REPLAY FILE_NAME [QUALITY (int:1-100)] [SUBSAMPLING (444|422|420|411)]

    when initializing the consumer.
May 28th, 2013
  • Tuned the compressed chroma subsampling to 4:4:4, from the initially used 4:2:0 (default in libjpeg).
May 23rd, 2013
  • Fixed a bug reported by Vimlesh1975 where the frame shown and reported by the producer when loaded using the LOAD command would be incorrect.
May 20th, 2013
  • Rendering has been moved off to a separate thread. There is now a 3 frames long buffer that the rendering thread and the "transmission" thread communicate through. This does introduce a slight delay between the received command and the output result.
May 6th, 2013
  • Fixed the play-head frame number bug reported by Interpreter
  • Hopefully fixed the "dirty frame" bug reported by rbjbv
April 30th, 2013
  • Some support for OSC in the replay_producer
  • Codebase brought up-to-date with the latest source code in GitHub
April 4th, 2013
  • Fixed the play-head value returned by the replay producer
  • Increased the size of the channel_grid channel to 1080p25
  • Changed the layout of the channel windows in the channel_grid to a more multiviewer-like
March 30th, 2013
  • Lots of fixes in seeking code (really important update!)
March 29th, 2013
  • Changed the algorithm for generating slow motion playback. Currently, all slow motion playback in the range 0x-1x is generated using an algorithm described by Yasuo Nagai, Isao Tonozuka, Eihachiro Nakamae and Katsumi Tadamura in Simple Algorithms for Rational Time Speed Playback of a Standard Video Sequence published in "Multimedia Modeling, 1998. MMM '98. Proceedings. 1998".
March 26th, 2013
  • Fixed a problem where seeking a small amount of frames forward or backwards would crash the producer.
March 18th, 2013
  • Fixed a problem where a progressive playback at 0.5x would "fall through" the processing, and be played at 1x rate.
  • Switched to a native Windows API file I/O, with a view on using SetFileBandwidthReservation for guaranteed I/O bandwidth
  • (Hopefully) fixed a problem where the consumer would start dropping frames once the buffer got too long (around 2 GB size).
March 15th, 2013
  • Using 2.0.4 codebase
March 14th, 2013
  • Performance improvements in consumer
  • Better status reporting after INFO in both consumer and producer
March 7th, 2013
  • Field doubling was replaced by field interpolation
  • Replay module should now support progressive modes (576p, 720p, 1080p)
  • Seeking was fixed
  • Using full frame blending for speeds 0.5-1.0x
  • User can now use LENGTH param when loading a clip for playback. This will enable usage of Caspar's transitions feature and automatic clip playback using the LOADBG (...) AUTO
March 6th, 2013
  • Fixed some issues with seeking, specifically with modifiers such as "|", "+" and "-" both in CALL SEEK and PLAY (...) SEEK
  • Fixed some issues with field/frame blending
  • New algorithm for 0.5-1.0x playback - much smoother performance, though has some "ghosting" problems
March 5th, 2013
  • preliminary work for smooth 0.5x - 1.0x speeds
  • SEEK can now also take another modifier: "|" - CALL * SEEK |10 will seek to the last 10 frames in the buffer (essentially "go to live").
  • play, load, etc. can now take a "SEEK" argument to start playback at given position (absolute seeking only - from the beginning of the buffer or the end)
  • CALL SEEK should now update the output (note that you need to do either CALL PAUSE or CALL SPEED 0.0 - ordinary PAUSE pauses the entire producer, and it can not update the output). The output is interlaced, at least for now.
  • Changed file operations (seeking and telling) to non-blocking ones.
  • BGRA to RGB and RGB to BGRA optimizations using SSE3
  • Using tbb::parallel_for wherever possible in frame_operations
  • Some code refactoring
  • Code moved to Google Code for an SVN repository

Here is how to use the custom "MAV" version:

The minimal configuration for the MAV edition requires at least two channels: one for ingest and another one for output. This usually means two Decklink cards (or a Decklink DUO/QUAD): one for input, and another one for output. Beyond that you can have multiple input and output channels, in various configurations. Always have only one replay buffer per ingest channel.
  • In the configuration file:
  • Configure all ingest channels as empty channels with proper system modes (f.g. PAL or 1080i50000). Leave the consumers tag empty.
  • Configure all output channels as porper channels, like you normally would, f.g. with Decklink consumers.
  • Start the server
  • Play the input from your ingest decklink card on your ingest channel:
    Code: Select all
    play 1 decklink 1
  • Add the replay consumer to your ingest channel:
    Code: Select all
    add 1 replay test-replay

    The "test-replay" is a file-name for your replay buffer. Two files will be created in your CasparCG "media" folder: a TEST-REPLAY.MAV file and a TEST-REPLAY.IDX file. The first one is the video essence, and the second one is a manifest and index file. Should you copy your replay buffers, always copy both files.
  • Play your replay buffer on your output channel:
    Code: Select all
    play 2 test-replay
  • Voila! You have your own replay system.

You can seek within your replay buffer using the CALL ACMP 2.0 command:
This will seek to the 100th frame in the replay buffer:
Code: Select all
call 2 seek 100

This will seek to the 100th frame counting from the end of the replay buffer:
Code: Select all
call 2 seek |100

This will move the playhead of your replay 50 frames forward:
Code: Select all
call 2 seek +50

This will move the playhead of your replay 50 frames backward:
Code: Select all
call 2 seek -50


You can also change the speed of your playback:
Will make the playback go at normal speed
Code: Select all
call 2 speed 1

Will make the playback go backwards at twice the normal speed
Code: Select all
call 2 speed -2

Will make the playback go at half the speed
Code: Select all
call 2 speed 0.5

Will make the playback go at 3/4 of normal speed
Code: Select all
call 2 speed 0.75


You can also use CasparCG's auto-play feature along with transitions by using the LENGTH param. You can combine SEEK, LENGTH and SPEED in the PLAY/LOAD/LOADBG command:
This will make the playback start at 100th frame from the begining, play at 0.75x speed, and end playback after 100 frames (buffer time). Any transition (if specified using a f.g. LOADBG (...) AUTO MIX 25) to another clip will happen in the last 25 frames (output time):
Code: Select all
play 2 test-replay seek 100 speed 0.5 length 100


There are quite a few problems still left I am going to work on (and I would really appreciate any help):
  • Reaching the end of file doesn't always work properly (should pause, or preferably play at 1x speed)
  • There is no User Interface so far - but that just comes in line with the CasparCG server philosophy

Both the color-space conversion and better 0.5-1.0 speeds handling can be fixed by using MMX and SSE extensions, however I'm still studying how to do that - maybe some of you have some tips in this field? I read somewhere that MMX doesn't work in x64 mode (at least in VC++) - is there a workaround for that for porting to 2.1?
Last edited by jstar on 23 Sep 2015, 09:10, edited 28 times in total.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby didikunz » 01 Mar 2013, 21:22

VERY COOL!!!!
Didi Kunz
CasparCG Client-Programmer, Template Maker & Live CG-Operator
Media Support, CH-5722 Gränichen, Switzerland http://mediasupport.ch/
Problems? Guide to posting Bug reports & Feature requests
User avatar
didikunz
 
Posts: 3401
Joined: 10 May 2010, 09:08
Location: Aarau, Switzerland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 03 Mar 2013, 10:54

This is seriously cool! Quickly installed on our decklink quad iso ingestion server. Then installed on a single output machine and ran playout over gigabit network. Works like a charm! Great contribution :)This will be further investigated.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 04 Mar 2013, 19:53

Cant help much with the server code as my c++ skills are not sufficient, but took the challenge on writing a general purpose client for people to test.
A few findings so far. I guess you are aware of them, but anyways:

  • The producer will crash with win32_access_violation on any progressive channel settings.
  • Load command on producer doesnt support SEEK.
  • CALL SEEK on producer does not work if video is paused.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Robert Nagy » 04 Mar 2013, 21:37

Did I quick look at the code, some tips:

- You should probably "interlace_fields" directly into the allocated frame, that way you can avoid doing one extra copy.
- You could quite easily add RGB/BGR support to the CasparCG GPU mixer. That way you don't have you use the slow CPU code. You can probably look at CasparCG 2.1 for RGB/BGR support, I think I added those there.
- In this case I think memory mapping the file could have some good performance benefits (especially when seeking).
- Use boost::lexical_cast instead of atof.
- You are mixing between Almann style and TBS style curly braces. The coding convention in CasparCG is Allman style.
- Some threading wouldn't hurt performance wise, e.g. you could do frame operations (e.g. copying) using tbb::parallel_for.
- Seeking should probably be performed on another thread so that it doesn't affect the rendering thread (which is why call returns a future).
- Avoid blocking operations (e.g. seeking) in frame_producer::receive, since it runs in the task-scheduler which can be easily blocked from working or even dead locked.
CasparCG Integrator, Developer and Consultant
Former CasparCG Lead Developer
Feel free to contact me (ronag@live.com) if you need any CasparCG related support, development or other consulting.
Robert Nagy
 
Posts: 1271
Joined: 20 Apr 2009, 20:22
Location: Gothenburg, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 05 Mar 2013, 10:31

Post moved to it's proper place in time
Last edited by jstar on 05 Mar 2013, 22:49, edited 1 time in total.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Robert Nagy » 05 Mar 2013, 10:48

NOTE: This post should be above the previous post.

Very good points! I'll be looking into what can be done with them - the biggest problem would be moving the seeking to another thread.

You should probably think of it in terms of putting all IO on a separate thread and read frames into a buffer which is then decoded by the rendering thread in receive. This is basically how the ffmpeg_producer does it. See the executor class for a useful thread abstraction.
CasparCG Integrator, Developer and Consultant
Former CasparCG Lead Developer
Feel free to contact me (ronag@live.com) if you need any CasparCG related support, development or other consulting.
Robert Nagy
 
Posts: 1271
Joined: 20 Apr 2009, 20:22
Location: Gothenburg, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 05 Mar 2013, 22:55

Yes, I think I now know what you mean. I guess the buffer would have to be flushed any time there is a speed change, or the user seeks in the replay buffer. I'll be trying to follow your tips to improve the performance. I guess the next step will be to try to port this module to the 2.1.0 branch, as soon as I get it to compile and run.

I'm also trying to improve the quality of playing at speeds from 0.5x to 1.0x - does anyone have any thoughts on this? My current approach is to blend entire frames together, but this results in rather nasty "ghosting", at least in some situations.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Agustola » 12 Mar 2013, 14:19

Hi. I'm new here and I just bought a decklink quad card and who'd like to test this replay system.
How do I set this up? Is there a gui to use with this?

Best regards
Agust
User avatar
Agustola
 
Posts: 3
Joined: 11 Sep 2012, 22:52
Location: Akureyri, Iceland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 17 Mar 2013, 13:03

Right now there isn't any client (GUI) for this particular module yet. You would have to write it yourself. To set this up what you need is to get the latest release from Google Code, configure the proper channels (2-in <-> 2-out, 3-in <-> 1-out, etc.), play the input decklink's on the ingest channels, start the replay module with different buffer names and play a given buffer on the output channel. Then you can use the ACMP commands through telnet or the server console to seek, slow down, speed up, etc.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 24 Mar 2013, 17:48

I am soon to release a simple GUI. Latest release fixed the 50% playback issue, but it seems like seeking stopped working properly producing a lot of black frames.

I also have a question if it would be possible to also include audio? Keep up the good work.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 25 Mar 2013, 12:29

Interpreter wrote:I am soon to release a simple GUI. Latest release fixed the 50% playback issue, but it seems like seeking stopped working properly producing a lot of black frames.

I also have a question if it would be possible to also include audio? Keep up the good work.


Hmm, I ran a live test during a sports production this weekend to see how the system performs "under pressure" and also got a lot of black frames. From what I've seen black frames mean that the producer is unable to get the frames as quick as it needs to. Right now I updated my testing rig to a 2x 320GB 7200 rpm SATAII hard drives with a stripe software RAID and it now works much better (no dropped frames at all either in the consumer or the producer). I also formated my harddrive with a 64K cluster size, and that also seemed to improve performance. Also remember to disable indexing on your buffer hard drive.

What's your configuration? You can see if you get dropped frames in the diagnostics window (consumer marks dropped frames using vertical dotted lines, producer dropped frames will be signified by a large "frame-time").

Yes, I'm planning to include audio, as soon as the entire system works flawlessly - I don't want to add more complexity until then. I am still thinking about the best way to store the audio data. My best (or so I think) idea right now is to store "half" of the audio with each field (for interlaced modes) or one frame of audio for progressive modes. EVS servers store audio every 18 fields/9 frames, but I'm not quite sure that's a good idea since that would either mean having to buffer 18 fields so that one could play audio or introduce additional seeking in the file. I could also store audio in another essence file (like .MAA), but then I would need another index file and also introduce the problem of seeking.

Thanks for your support!
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby vimlesh1975 » 26 Mar 2013, 04:14

I tested it and found working nicely.
User avatar
vimlesh1975
 
Posts: 595
Joined: 29 Aug 2011, 11:42
Location: Doordarshan, Mumbai, India

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 26 Mar 2013, 09:54

Dont think its a file I/O problem. Throughput should be more than ok. Seems as if the replay producer sometimes crash when I try to CALL SEEK -someframecount

Code: Select all
[2013-03-26 09:47:56.755] [0374A168] [info]    output[1] replay_consumer[DUMP.mav|0] Added.
[2013-03-26 09:47:56.755] [0850ABC8] [debug]   Executed command: AddCommand
[2013-03-26 09:47:56.755] [0850ABC8] [info]    Sent message to 127.0.0.1: 202 ADD OK\r\n
[2013-03-26 09:47:57.534] [0373A250] [info]    Received message from 127.0.0.1: PLAY 2-1 DUMP SEEK |10\r\n
[2013-03-26 09:47:57.535] [0850ABF8] [info]    replay_producer[media\\DUMP.mav|361700318729569797|6.64634645e-033] File starts at: 20130326T084756.749117
[2013-03-26 09:47:57.535] [0850ABF8] [info]    replay_producer[media\\DUMP.mav|24|1] Initialized.
[2013-03-26 09:47:57.536] [0850ABF8] [info]    transition[empty=>replay_producer[media\\DUMP.mav|24|1]] Initialized.
[2013-03-26 09:47:57.536] [0850ABF8] [debug]   Executed command: PlayCommand
[2013-03-26 09:47:57.536] [0850ABF8] [info]    Sent message to 127.0.0.1: 202 PLAY OK\r\n
[2013-03-26 09:47:57.537] [0374A2B8] [info]    transition[empty=>replay_producer[media\\DUMP.mav|24|1]] End Of File.
[2013-03-26 09:47:57.537] [0374A2B8] [info]    transition[empty=>replay_producer[media\\DUMP.mav|24|1]] Uninitialized.
[2013-03-26 09:48:35.916] [0373A250] [info]    Accepted connection from 127.0.0.1 3
[2013-03-26 09:48:40.031] [0373A250] [info]    Received message from 127.0.0.1: DIAG\r\n
[2013-03-26 09:48:40.031] [0374A6D8] [debug]   Executed command: DiagnosticsCommand
[2013-03-26 09:48:40.031] [0374A6D8] [info]    Sent message to 127.0.0.1: 202 DIAG OK\r\n
[2013-03-26 09:48:41.744] [0373A250] [info]    Client 127.0.0.1 was disconnected
[2013-03-26 09:49:40.759] [0373A250] [info]    Received message from 127.0.0.1: CALL 2-1 PAUSE\r\n
[2013-03-26 09:49:40.762] [0373A250] [info]    Received message from 127.0.0.1: CALL 2-1 SEEK -2\r\n
[2013-03-26 09:49:40.765] [0850ABF8] [debug]   Executed command: CallCommand
[2013-03-26 09:49:40.765] [0850ABF8] [info]    Sent message to 127.0.0.1: 202 CALL OK\r\n
[2013-03-26 09:49:40.765] [0850ABF8] [debug]   Executed command: CallCommand
[2013-03-26 09:49:40.765] [0850ABF8] [info]    Sent message to 127.0.0.1: 202 CALL OK\r\n
[2013-03-26 09:49:40.777] [0374A2B8] [error]   No diagnostic information available.
[2013-03-26 09:49:40.777] [0374A2B8] [info]    replay_producer[media\\DUMP.mav|5185|0] Uninitialized.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 26 Mar 2013, 10:10

A small breakdown of my findings then (channel setting 720p5000):

Trying to CALL SEEK -<less than 10> crashes the producer. Anything above 10 works fine.

CALL SEEK +<anynumberofframes> sends the playhead back to the beginning of the file.

CALL SEEK <framenumber> works

CALL SEEK |<framenumber> works
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 26 Mar 2013, 13:51

Thanks Interpreter for your report! I have been able to pinpoint the problem and I just uploaded Release 34 that fixes this problem. Seeking a small amount of frames forward or backwards should not result in crashing now, seeking +<numberofframes> should also work properly now. Moreover, there are now fail-safes for seeking too far (like seeking beyond the recording-head or before 0th frame). Thanks for discovering this issue!
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 26 Mar 2013, 17:50

For all developers out there: please be aware that we are planning to move our source code repository from SourceForge SVN to GitHub. We are aiming for the transfer to be completed by April 1st, 2013.
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 26 Mar 2013, 19:40

That's great news! As soon as the github repository will be available, I'll fork the project so that all the code will be in sync!
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 28 Mar 2013, 21:26

I was just told that the Server repo at GitHub is complete and up-to-date.
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 29 Mar 2013, 16:57

Thanks, works great now. A few glitches but need some more time to pin them down. Thought I would share a sneak peak of the client.

Image

4 channel ingestion on one machine, and playout on a second through network filesystem. Next step is to add another machine with another 4 channels to ingest :)
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby iTech » 30 Mar 2013, 04:44

What language is your client written in?
iTech
 
Posts: 132
Joined: 11 Aug 2012, 17:54

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 30 Mar 2013, 09:16

C# .Net
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 30 Mar 2013, 10:19

Better view of the client
slowmo.png
slowmo.png (25 KiB) Viewed 41404 times
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 30 Mar 2013, 12:48

Really exiting to see both the server and the client coming along nicely!

jstar, have you been able to incorporate Robert's performance and design suggestions?
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby PvP » 30 Mar 2013, 13:25

Interpreter wrote:Better view of the client
slowmo.png


This is awesome!!
Will you share the client?
User avatar
PvP
 
Posts: 27
Joined: 10 Dec 2012, 23:36
Location: Austria

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 30 Mar 2013, 17:29

I intend to. Will need a lot of feedback from actual evs operators. Ive only been a operator for 2 years and I use far from all the features that I could.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby PvP » 31 Mar 2013, 03:39

At our company there are several EVS operators, we would love to give feedback!
User avatar
PvP
 
Posts: 27
Joined: 10 Dec 2012, 23:36
Location: Austria

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 01 Apr 2013, 21:13

Jonas Hummelstrand wrote:jstar, have you been able to incorporate Robert's performance and design suggestions?


Unfortunately, only some of them (like using parallel for). I'm trying to make this less of a 'proof of concept', before I start doing any major reorganization (like putting file operations into a separate thread). There are still some issues that I would like to take care of first, like making a proper algorithm for seeking a given number of frames. I'm not as good a programmer as Robert is;)

Regarding feedback from EVS operators: I'd also like to hear what they think in terms of how this feature operates, and any other features they would need. The only experience I ever had was with a 3Play, so that's what I base this on. Any input from a real EVS operator with experience would be great. So, would any of you guys say the server component has any features missing?
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby tk3 » 02 Apr 2013, 16:33

I haven't had time to dig into your code. Wondering what modifications you needed to make outside of your actual module to get CasparCG to work with your module. The reason I ask is that if we were to merge your module into the main repo in the future it would need to have no impact on other modules or core parts of the project.
Project Contributor
Freelance Developer
PM me if you need any CasparCG related work done!
tk3
 
Posts: 121
Joined: 26 Oct 2010, 01:51

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 02 Apr 2013, 18:56

tk3 wrote:I haven't had time to dig into your code. Wondering what modifications you needed to make outside of your actual module to get CasparCG to work with your module. The reason I ask is that if we were to merge your module into the main repo in the future it would need to have no impact on other modules or core parts of the project.


Altogether - not that much. There are three main things I had to modify: module initialization (add the replay module for it to be initialized - no impact on other modules), change the CLS AMCP implementation, so that ".MAV" files would show up during clip listing (no real impact on other modules), make libjpeg-turbo link with the shell (possibly some impact, as this may overload SMFL libjpeg dependencies, but libjpeg-turbo is one-for-one replacement for any 6.2 compatible libjpeg API implementation, so the only real result might be speeding up any JPEG-related activities).
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Peter Karlsson » 02 Apr 2013, 19:01

For a merge to take place, previously mentioned changes should be considered, especially blocking operations.

Keep up the good work!
Former CasparCG Client Lead Developer
Feel free to contact me if you need any CasparCG related support, development or other consulting.
Peter Karlsson
 
Posts: 305
Joined: 05 Nov 2010, 09:35
Location: Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby rbjbv » 03 Apr 2013, 17:56

Great work!
But, if I want this system to work in a 'live' situation I would need 2 cards right? [Because of the limitation BM cards doesn't support playback and record at the same time, am I right? Are there other brands which will work?]
Currently I have a BM Decklink Studio with both HD-SDI in and output.

After this awesome software feature, I thought of some hardware to do the live slomo's! Currently my Arduino Ethernet with a potential meter (var. resistance) is controlling the speed of CasparCG! (it is now limited with 10 steps of 0.1 speed)
It works great!

In the coming weeks I will see if I can make a prototype of a real EVS look-a-like handle and knobs etc :) Maybe post a video of the working situation.

Last, I am currently recording at a small SSD. Is there a way to limit the file-size of the replay?

Kind regards,
Robert-Jan
rbjbv
 
Posts: 6
Joined: 20 Jan 2013, 19:57

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 03 Apr 2013, 18:39

There is support for any midi controllers in the upcoming client. We also work on supporting existing vtr remotes. Old Evs and Mav controllers can actually be found for no money at all.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 04 Apr 2013, 10:27

Interpreter, would you recommend any MIDI controller in particular that would be handy for replay purposes? I was originally planning on creating a ACMP <-> RS-424 converter, or even using the RS-424 port on the Decklinks and writing a "protocol" module for the Caspar server. But picking up a MIDI controller would be so much easier - I haven't been as lucky in finding a reasonably priced old EVS controller...
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 04 Apr 2013, 11:07

We'd love to have the MIDI functionality in the official CasparCG Client 2.0 as well. I'm hoping this is something the community could contribute: viewtopic.php?f=3&t=1397
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 04 Apr 2013, 13:15

There are a couple of Midi controllers available that should do the job relatively well. Problem is to find a controller with a t-bar. I know that Avid used to have one with both jog/shuttle and t-bar but it seems as if its been discontinued.

http://www.thomann.de/se/contour_shuttl ... _black.htm
http://www.thomann.de/se/contour_av_sol ... roller.htm
http://www.thomann.de/se/euphonix_mc_transport.htm
http://www.thomann.de/se/steinberg_cc121_controller.htm

We'd love to have the MIDI functionality in the official CasparCG Client 2.0 as well. I'm hoping this is something the community could contribute: viewtopic.php?f=3&t=1397


I will have a look at what I can do.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 04 Apr 2013, 13:53

Great! Take a look at the GPI library for hints on how to interface with the client:
http://github.com/CasparCG/Client
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 11 Apr 2013, 17:35

Perhaps not considered cheap, but a lot cheaper than original controllers.
These would work great. Pricepoint at ~$2,000
http://www.jlcooper.com/_php/family.php ... uiteseries

Still awaiting a quote on their slo-mo purpose controller.
http://www.jlcooper.com/_php/family.php?fam=slomoelite
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby markusnygard » 18 Apr 2013, 17:08

Hi
Superb idea.
Would xkeys work as controller, there is a version with jog-wheel and I think i seen a t-bar-version in some atem forum, but I'm not sure where.
The price is OK for the xkeys.
Link to manufacturer if someone is interested.
Markus
http://www.piengineering.com/xkeys.php
markusnygard
 
Posts: 64
Joined: 07 Mar 2013, 18:32
Location: Helsinki / Finland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 19 Apr 2013, 09:11

Getting back to the code changes proposed; we would love to include this in an official release, but I've been told there are a number issues that need to be resolved, such as the use of a newer (and buggy) version of FFmpeg. We cannot risk compromising the stability and current feature set, so this will need some more work before we can merge it.
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 19 Apr 2013, 11:25

Jonas Hummelstrand wrote:Getting back to the code changes proposed; we would love to include this in an official release, but I've been told there are a number issues that need to be resolved, such as the use of a newer (and buggy) version of FFmpeg. We cannot risk compromising the stability and current feature set, so this will need some more work before we can merge it.


I'm using a newer version of FFmpeg? I don't really use FFmpeg for anything really... All the other things are true - I'll be including the most critical suggestions (moving the file I/O from the rendering thread) soon, along with synchronizing the rest of the feature set, such as the backported OSC support, which will be a huge improvement because we'll be able to stream the input and output timecodes to the client. I just have to sort out a few other projects first.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 19 Apr 2013, 11:44

Sorry, I confused the FFmpeg thingy with another contribution! My bad!

OSC has just been merged into CasparCG Server, so it will be available in the next release, version 2.0.4.

To clarify: we love all these new contributions (who would have thought that a move to GitHub could have such an impact!) and we try to merge them into the trunk if they are stable, well-behaved and don't require lots of work to survey. The clearer you all make your contributions, the easier it is for us to review and approve them.
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby vimlesh1975 » 28 Apr 2013, 08:58

First of all Thank you jstar for this slow motion feature.

With play 2-1 go1080p25 and after info 2-1 i get
Code: Select all
201 INFO OK
<?xml version="1.0" encoding="utf-8"?>
<layer>
   <status>playing</status>
   <auto_delta>-1</auto_delta>
   <frame-number>118</frame-number>
   <nb_frames>439</nb_frames>
   <frames-left>322</frames-left>
   <foreground>
      <producer>
         <type>ffmpeg-producer</type>
         <filename>c:\casparcg\_media\go1080p25.mp4</filename>
         <width>1920</width>
         <height>1088</height>
         <progressive>true</progressive>
         <fps>25</fps>
         <loop>false</loop>
         <frame-number>118</frame-number>
         <nb-frames>439</nb-frames>
         <file-frame-number>118</file-frame-number>
         <file-nb-frames>439</file-nb-frames>
      </producer>
   </foreground>
   <background>
      <producer>
         <type>empty-producer</type>
      </producer>
   </background>
   <index>1</index>
</layer>



With play 2-1 TEST-REPLAY and after info 2-1 i get
Code: Select all
201 INFO OK
<?xml version="1.0" encoding="utf-8"?>
<layer>
   <status>playing</status>
   <auto_delta>-1</auto_delta>
   <frame-number>354</frame-number>
   <nb_frames>4294967295</nb_frames>
   <frames-left>4294966942</frames-left>
   <foreground>
      <producer>
         <type>replay-producer</type>
         <filename>c:/casparcg/_media\\TEST-REPLAY.mav</filename>
         <play-head>354</play-head>
         <start-timecode>20130419T160121.512453</start-timecode>
         <speed>1</speed>
      </producer>
   </foreground>
   <background>
      <producer>
         <type>empty-producer</type>
      </producer>
   </background>
   <index>1</index>
</layer>


Questions
1. With any test replay file i get <nb_frames>4294967295</nb_frames>.
I mean I recorded 3 different files with "add 1 replay" command but while playing all gives same nb_frames.
I am interested in getting duration of a replay file.

2. Can You explain different response nodes of replay file with respect to a normal file?
User avatar
vimlesh1975
 
Posts: 595
Joined: 29 Aug 2011, 11:42
Location: Doordarshan, Mumbai, India

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 28 Apr 2013, 09:25

With replay-producer the thing is not to look at the nb_frames or frames-left. The way the replay module was envisioned, the replay file has no duration, because most likely the replay consumer is still working concurrently on this buffer. So reporting any duration for the file makes no real sense (it's going to change all the time and doesn't really carry any info, because the consumer is probably still recording), and is not really known by the producer at the time of playback - the file header simply has no field called "duration" and Motion-JPEG is a VBR codec, so there is no way to approximate correctly the amount of frames based on the file size.

The way I see it, is to look at the corresponding consumer (which knows exactly how many frames it has recorded to the buffer) and look at the "recording-head" tag.

In terms of the nodes, the main thing to look for in the producer is "play-head" which is the number of the frame the producer is currently displaying. "start-timecode" is the timestamp of when the file was initialized by the consumer (based on the system clock). "speed" is the current playback speed. The consumer in turn, has "recording-head" which is the number of the frame last recorded into the replay buffer.

How exactly do you plan on using the replay module? The way I saw it used was to start the recording consumer once per camera for an entire production, and then use the "recording-head" info from the consumer to construct a cue list. Then start a playback producer whenever I want to play a specific cue.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby vimlesh1975 » 28 Apr 2013, 09:42

1. But I couldn't find the recording-head tag with info 2-1 command.

2. I would like to stop a replay recording and start to record with a different file name. Then I would want to know the file duration of previously recorded file.
User avatar
vimlesh1975
 
Posts: 595
Joined: 29 Aug 2011, 11:42
Location: Doordarshan, Mumbai, India

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 28 Apr 2013, 11:03

1. Yes, because the consumer doesn't attach itself to a layer, it attaches itself to a channel (at least from what I know). So you would have to either do a "info 2" or rather "info 1", as I assume the consumer will be running on a different channel than the producer.

2. If that's the way you'd like it to work, I think the ffmpeg/file consumer is a better shot. There is simply no way to know the exact duration of a replay buffer, unless you somehow store the "recording-head" value it before you remove the consumer. The format of the replay buffer is oriented at files that have no specific end (emulating an EVS, BLT or 3-Play like video server). Many of these machines even have a "record-in-a-loop" functionality and a file duration, begin and end simply don't make any sense there. It is possible to calculate the frame length of the buffer, but it's a resource-intensive (esp. in terms of the hard drive) operation, and the replay producer does it only when it's absolutely necessary. Calculating that on every info command, or every frame even (as would be the case using OSC) would slow the hard drive down too much.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 01 May 2013, 14:00

Great OSC update! Found a bug by using it :) When playing negative speeds, eg SPEED -100, the framecounter still count upwards making the producer lose track of its position.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 01 May 2013, 14:17

OSC will be a part of CasparCG Server 2.0.4, so I suggest you utilize OSC in the beta builds of 2.0.4 to your advantage!
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 01 May 2013, 15:53

Thanks Interpreter, I will look into this ASAP. This latest update also means that CasparCG is the first user available 4K replay system ;)!
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jesper Stærkær » 03 May 2013, 17:45

Great work! Enjoying this.

Scrubbing on pause can be achieved by sending PLAY + CALL SPEED 0 before CALL SEEK -/+/|x as a temporary hack.
Jesper Stærkær
Independent Consultant at SuperFly.tv
User avatar
Jesper Stærkær
 
Posts: 835
Joined: 13 Apr 2010, 18:06
Location: Trondheim, Norway

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 03 May 2013, 20:16

You can scrub on pause by sending CALL PAUSE which pauses just video playback... Only PAUSE pauses the whole producer
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 03 May 2013, 21:48

Could you guys summarize these command tips into a few paragraphs for the wiki? Thanks!
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby rbjbv » 05 May 2013, 13:41

Hi,
Great peace of software.
I am currently programming a hardware client based on this.
I use a scroll knob to scrub frames "CALL 2 SEEK -1" and "CALL 2 SEEK +1". And use a potentiometer to control the speed "CALL 2 SPEED 0.1" and at pause; "CALL 2 PAUSE".

But, when I scrub some frames, stay at that position (in pause) and try to go further in slomotion I get a dirty frame before it starts playing.
Did I do something wrong or is it a known bug?

Regards,
Robert-Jan
rbjbv
 
Posts: 6
Joined: 20 Jan 2013, 19:57

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 05 May 2013, 18:42

Hello, Robert-Jan! I'm happy that you're finding the MAV edition useful. Are you building the hardware client based on some prototype board with Ethernet, or will this be something to be connected to the PC using USB?

In terms of the bug that you're talking about - I am not aware of any such problems and have been unsuccessful in trying to reproduce it. Could you please specify the exact ACMP commands you are sending? Maybe you could also post a recording or a "screen shot" of the dirty frame?
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 05 May 2013, 20:15

I have seen something like this also. Happens when I twist the speed knob from 0 to 100 resulting in 100 CALL SPEED commands being sent in less than half a second. This produces quite a nasty jerk in the video.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby rbjbv » 05 May 2013, 20:56

Hi,
The hardware client is based on a prototype board with ethernet yes. It will communicate to a webserver which manages the ACMP commands to the CasparCG server. I could have done it without though.

I have made you a video reproducing the bug. For setup I use the simple commands you've given in the startpost. I don't have live video so I play a short video called 'voetbal' in a loop.
I use the hardware to control the slow motion. The first live to slowmotion is alright, then pause. Then I scroll back and forth a little with the "CALL 2 SEEK -1" and +1 commands. When I do a slowmotion from there you see the bug.Second time, same trick, other video fragment, it works perfectly, no bug. The last time you will again see the dirty frame.

http://www.youtube.com/watch?v=jOp_-fXgFQU

For your information, I'm using 'casparcg-mav-2.0.4.d81c30f' at a Windows 7 Ultimate 64 bit, 32GB RAM, GTX-680, media folder with slomo file at SSD. Video was made in 1080i5000 mode, problem persists with PAL. I have only tested it on the screen, no hardware card used.

I can send you the log files of this session if needed.

Looking forward to hear from you.
rbjbv
 
Posts: 6
Joined: 20 Jan 2013, 19:57

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby jstar » 06 May 2013, 10:03

It would be great if you could post some photos of your controller, once you're done. Also, which prototype board are you using? I have been thinking of building a hardware controller of my own and I am looking for something with Ethernet, a single ADC for a speed fader and lots of GPIOs for push buttons, a rotary encoder for a shuttle wheel and SPI for a small text LCD screen. Have you by any chance came across such a board?

Thanks for your bug reports! I have been able to pinpoint the frame number bug reported by Interpreter. The latest release fixes this bug in both OSC and INFO status reporting.
I have not been able to reproduce the bug reported by Robert-Jan, but I think I may have found the cause (not clearing the "leftover frame" used by slow-motion when entering pause mode). Can you verify that the new version fixes this issue?

Looking forward to hearing from you.
Jan Starzak
CasparCG graphics designer, programmer and live CG operator - available for work
Lodz, Poland http://janstarzak.com/
User avatar
jstar
 
Posts: 64
Joined: 22 Mar 2012, 01:26
Location: Lodz, Poland

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Jonas Hummelstrand » 06 May 2013, 10:07

An Arduino board would be ideal for this!
Jonas Hummelstrand
Independent Consultant at SuperFly.tv
Former Community Manager for CasparCG

Problems? Guide to posting Bug reports & Feature requests
User avatar
Jonas Hummelstrand
 
Posts: 2538
Joined: 21 Apr 2009, 08:07
Location: Stockholm, Sweden

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby rbjbv » 06 May 2013, 10:30

You're great! This fixed the dirty frame bug!

For the controller I am currently using an Arduino Ethernet board for it. As said, I use a rotary encoder for scrolling and a potentiometer for controlling the speed. I will attach some nice buttons to set and return to in- and out-points. (any more options you would like to see?). I have also attached a small LCD screen, but I'm not yet sure what information will be on it :)

Today I will lasercut the last parts out of the unit, and fit everything. I will surely make a picture when I'm done!
rbjbv
 
Posts: 6
Joined: 20 Jan 2013, 19:57

Re: CasparCG-based MAV/EVS replacement [BETA]

Postby Interpreter » 06 May 2013, 11:31

Want to join forces in an open engineering project for the arduino controller? I finally made the decision on making my controller for the client using an arduino ethernet board. Keeping everything open source.
User avatar
Interpreter
 
Posts: 122
Joined: 01 May 2012, 15:43
Location: Norrköping, Sweden

Next

Return to Tech and Development

Who is online

Users browsing this forum: No registered users and 1 guest

cron