VCV-Recorder

So now you got it up and running :+1:

This item in the readme looks relevent:

To enable H.264 and AAC, start with a clean checkout and build with

ENABLE_H264=1 make dep
ENABLE_H264=1 make
1 Like

Thank you, I will give it a go. Would you mind sharing which readme you are referring to? All I see in the readme that comes with VCV-recorder is:

# VCV Recorder

Requires [NASM](https://www.nasm.us/index.php) or [Yasm](https://yasm.tortall.net/) to build.

I wouldn’t know mp4 was an option If the library page didn’t hint at it being possible.

The V1 one :

And this is on the library page you linked : (EDIT This is a useless part of the post but I didn’t read your reply the right way.)

1 Like

Not sure. Perhaps that repo is still on v1… I’ll check later.

yep, that’s it. Looks like recorder v2 also supports that option, it was just removed from the readme. Possibly to avoid suggesting violating mpeg-la’s licensing, possibly by mistake.

Thanks, I tried that. It may have worked, but I didn’t see the option pop up on the right click menu. Do you think that adding "h264" or "mp4" to this static const std::vector<std::string> VIDEO_FORMATS = {"mpeg2", "ffv1", "huffyuv"}; line from Recorder.cpp is neccisary?

juist try it out :sunglasses:

1 Like

yes:

static const std::vector<std::string> VIDEO_FORMATS = {"mpeg2", "h264", "ffv1","huffyuv"};

but you have to adapt a lot more from the Makefile of v1.

  • fetch and compile the x264 library
  • adapt the Makefile to use it
  • recompile ffmpeg with x264 enabled

additionally i had to change the following line from:

else if (format == "h264") videoEncoderName = "h264";

to

else if (format == "h264") videoEncoderName = "libx264";

however i am not sure anymore if there will be something gained compared to recording with mp2 and then simply call ffmpeg -i test.mpg -ab 320K test.mp4 — the result is much better (far smaller resulting filesize). i think there would be some work to configure the best parameters for h264. and then to test if its still working fast enough.

2 Likes

I did… Rack crashed after that when right clicking the recorder module. :sweat_smile: :rofl: :rofl:

So I do need a bit more understanding about programming rack plugins… I have one more day of work and then almost a 2 week holiday. So I’ll take some time to study then.

Any recommendations?

Thank you, I will take some time to understand what everything does before typing in commands and hoping it works…

That seems to work for a lot of modules, but not if you want to change behavior, which is understandable.

Maybe brush up your C++ skills, maybe read code and try to understand how other open source modules work.

It took years to become a pretty good VCV module dev and I started with years of coding before.

1 Like

Yeah, I planned on that but jumped the gun by trying to get this recorder functioning outside of it’s parameters. Still happy to resolved the issue with it not even showing up. Which could somewhat (but not fully) be explained by the normal and build install of vcvrack2.

Not fully though because your modules showed up just fine.

Are you sure you git cloned the correct branch ?, v2 is not allways default.It is now in VCV-Recorder, but if you cloned before, and just do git-pull you might not have changed the branch correctly(?)
“version” in plugin.json must match your rack major version. (2.*) - or they don’t show up in the browser. Not sure if anything is in log.txt.

image

(I missed this more than once)

yes, as I said wwwaaayyyy back there, that’s what I do. Record mp2 and transcode to h-264.

Maybe start working on a simpler module than the VCV-Recorder and come back after gaining some experience in module coding.

yes it was. It is visible now though, so that’s a win. reading up on ffmpeg and what’s needed to get it to save as mp4…

That may be the smart thing to de indeed.

It is the smart thing, for sure. It’s much easier to transcode with ffmpeg after the fact.

Also, if you were to try this (sounds difficult!) I would look at what was done in the v1 plugin to make that work. The source code it still up there, just on a different branch, I think.

Thanks I had a quick look at V1 already. I may try and replicate that and or implement it as a trans code after the fact.

For now it’s mainly about the exercise. working with C++ to do plugins… As you said re-encoding mpg to mp4 is perfectly doable as an extra step.

I may even try and make that a default step inside the/a module. :wink: