amiaopensource / vrecord

Vrecord is open-source software for capturing a video signal and turning it into a digital file.
https://github.com/amiaopensource/vrecord
149 stars 44 forks source link

Feature request - Support non Blackmagic devices such as USB / PCI / PCIe #777

Open marshalleq opened 6 months ago

marshalleq commented 6 months ago

I have been on a journey for a while now to find a good capture solution for Mac and this is the best that I've found so far. Actually it surpasses my expectations for the most part. I do own some blackmagic hardware and have used vrecord with it, however, there are some much better quality devices out there for ingesting analog sources e.g. the pinnacle devices (USB and PCI) often product better results but there are others. Looking for software to capture analog audio sources even when you have a driver is a complete nightmare nowadays, especially on Mac - which I find odd given the pedigree of Mac with media production. The number of people doing this nowadays has reduced and most head on down to a PC store and buy a cheap USB device that comes with it's own horrible software that compresses everything to death, often records in the wrong resolution for PAL countries etc. Vrecord is poised extremely well to be the go to software if it would just support a little more hardware. I assume this would not be too hard either given the drivers are all baked into the OS for the most part.

So I write this in the hope that someone else may agree and post back with something helpful to get us on this journey, even if only in a little way.

OBS are managing to do it quite well, but they don't have the pedigree that record does and I don't think it's open source either, which is perfect for this kind of archiving work.

Many thanks for reading.

harrypm commented 6 months ago

@marshalleq V-Record is just a solution to a poorly limited software interface, not a generic capture app as you are feature requesting.

MacOS is sort of left behind software wise outside of direct FFmpeg encoding, windows users have VirtualDub2.

But in todays world vhs-decode gets around the whole issue of "but I am not capturing the full signal" when it comes to the archival argument of media ingest, why capture S-Video/CVBS when you can capture the RAW FM and decode it in software its the 2020s not 2010s, SDI/PCIe workflows are only ideal for high volume use cases and reference capture today.

Blackmagic atleast give you FFmpeg interface to its capture devices hence why V-Record works so well to replace its limited software cross platform.

USB hardware wise you got Magewell AIO (ADV8742) is about it next to the GV2-USB these days, Pinnacle with Windows XP setups is long obsolete outside of edge case laptop users who need the Firewire to USB cards they made.

AJA, and BrightEyes both have TBC/3D Comb enabled ADV8742 chips on there SDI products.

OBS? as in OBS Studio it does not even have interlacing enabled in its FFmpeg builds, its entirely a progressive video only intended software.

retokromer commented 6 months ago

A while ago I suggested supporting AJA and I still think it would be helpful.

marshalleq commented 6 months ago

I've had a few beers, so forgive me for any stupid remarks.

Every time I think I get somewhere this analogue digitisation throws another curve ball at me. As such, I've had a quick browse of VHS-decode, but I will need to go have another look minus the beer.

But as a starter - I have one analogue Magewell card on my windows box and I also had Brighteye 75 with a Blackmagic converter but sent the BE75 back due to some challenges with it not liking some analogue sources which manufacturer confirmed.

The basis of my request, is that I realise these devices are old but good analog capturing devices are getting harder and harder to acquire. I struggle to understand your commentary around 'generic capture app' as that is exactly what I'm using it for, despite it obviously utilising other OS tools under the hood. This is made exactly because it brings these things together and that is exactly the value it provides so I'm not really sure why you think it doesn't. Perhaps my beer makes me misunderstand.

I will probably go purchase a blackmagic Analog converter to output to SDI - that's supported by MAC, my platform of choice, but if the quality is low I will use windows if I have to because like you say virtual dub and ffmpeg seem to be the go to on windows for no other reason that virtual dub isn't available for Mac - which is exactly bringing up the point in my original post there aren't really any good capture tools for Mac other than vrecord.

In my experience OBS does indeed interlace - probably you used a very old version. Not that I'm suggesting to use that, but consumer side this is what a lot of people need to do now because point #1 availability of capture software on Mac. If you have windows like I do you have another option.

Having another read of an initially confusing layout on VHS-decode I discovered the Tap List. OMG, that looks amazing. So you're saying I should be able to tap into the VHS player directly - I need to do more reading.

I still think though - on topic to my original post, especially for those not looking to do soldering and such like adding support for genericly supported USB capture devices would be valuable. This shouldn't be more than tapping into the OS based libraries / API's whatever they're called that translate via the driver. I'm not suggested writing drivers or doing lots of custom work, just surfacing what the OS has already provided for many decades now. As such, this should be I assume fairly trivial for Mac or windows and probably linux too. E.g. the pinnacle device I mentioned is detected and runs in Mac, but finding software for it nowadays is nearly impossible. And you call it an XP device, but it's supported in Windows 10 and 11 natively as it is in Mac.

Meanwhile I will look into tapping one of my VCR's perhaps the JVC S-9850. though apparently it doesn't really matter which one - they're all the same! No way! 👯

Edit: I am wondering if I'm regretting a few very expensive purchases - S-VHS player and a vetted KeyWest Bigvoodoo TBC10. Am excited to see where this leads though!

harrypm commented 6 months ago

@marshalleq In my experience OBS does indeed interlace - I am on v30.0.2 in a daily use setup, ware is my interlaced options then!? lmao

Blackmagics Analog to SDI units have zero TBC function, you need some level of stablisaion for it even to output enough frames for SDI to lock properly, I use it in my refrance capture workflow ontop RF capture and without a DMR-ES10 inline or a FORA-FA310p its utterly useless outside of live camara or live deck output sources and yes it uses the same ADV8742 chip pretty much everything post 2013 does.

The tap list is years of collecting and community contrabutions, sorry for your not finding it sooner yeah it really kills the whole SVHS/TBC market bubble, storage and a little hardware setup effort is all it requires even have Video+HiFi+Linear on the same clock sourse now with CX Cards so auto post audio alienment is here in a sub 100USD setup, cheeper then a used full SDI setup.

Sony/Panasonic VCRs have higher RF levels (and cost less) from there head amplifyers then outhers, JVC are normally on the lower end, but toss some amplifyers at it and it makes up the diffrance for most units more data and examples for the list is welcomed as it helps outhers and makes a historical log.

marshalleq commented 6 months ago

Since you asked so nicely.

Screenshot 2024-01-07 at 10 46 18 AM

If I were you I might now lmao, but I don't see comments like that as helpful. We all miss obvious things here and there and forget even after decades of training, get things wrong etc. I've learnt it never pays to be too confident, there's always someone cleverer than me that knows something I don't.

I have a DMR-ES10, a DVK-100, one of the supposed good Keywest BigVoodoo TBC10's, some different capture devices too including the contentious Canopus firewire ones and will be putting some comparisons on my web site. I will add this vhs-decode to that as well now, I don't think there are really any real spreading comparisons on all this to show people, just a wrath of opinions with some truly horrible people on sites that don't know how to listen and think there is nothing new since the nineties - which you just proved them absolutely wrong. My plan is to resolve the comparisons. I'm super excited about VHS decode I must say. But I will want to see the results as a comparison because you can bet for sure that people on those sites are going to say the quality isn't as good and signal needs signal processing. Hopefully today I'll get some time to do some reading on how the software side works - I've only focussed on the hardware side so far. This is going to be awesome.

harrypm commented 6 months ago

@marshalleq Thanks for playing, but thats only control for deinterlacing as a filter applyed to incoming feeds, its native properly flagged interlaced encoding to outbound streams and files everyone wants, and has never got, without patched ffmpeg binarys.

I still to this day see people asking about it, I can wrap 1080i25 in 1080p50 but its not a native interlaced file, that is the issue at hand, at stock even with correct flags passed to the encoder to flag properly it wont produce a proper file, and unless KTGMC is added I don't see realtime de-interlacing being a practical thing outside of perfect digital output interlaced soruces.

FM RF archival is the key point, decoding can be re-done over and over later down the line its a 3 command workflow once setup really, but it beats out most all TBCs on the market today, and you get a VBI data processor that works, plenty of videos on the wiki, and a tip for anything going up on YouTube it needs to be in the 4k or 8k upscaled bracket to actutally not crunch analog noise this applys for all content now.

marshalleq commented 5 months ago

Oh boy - this was clearly the beer and my not reading properly - I thought we were talking about 'de'-interlacing. My apologies, don't I feel like a fool. You're talking about it simply flagging the captured media as interlaced I take it?

I wonder if there's a post way of doing that or if anyone has ever requested it.

I was looking through the software side of vhs-decode last night, it seemed like about 7 steps but first reads are not always that accurate so that's good to hear. The key issue seems to be getting hold of a domesday project board. Anyway, we should really close this conversation here and begin it somewhere else. vhs-decode is really a hijack of the original request. Thanks very much for pointing it out - I've joined the discord will probably continue the vhs decode part there.

harrypm commented 5 months ago

I wonder if there's a post way of doing that or if anyone has ever requested it. - as I linked above patched ffmpeg binarys many times people have over the years, and until Its implimented people will still ask lol.

You can extract interlaced frames from progressive file but its not very clean and wastes more processing time then its worth and file space, hence why OBS is not touched for interlaced capture workflows, I have had to fix interlaced wrapped in progressive many times and its always "fun" to do so with Vapoursynth/Avisynth filters.

The discord will set you on the right track there, but to clear it up for anyone else reading though the DomesDay Duplicator is more for the LD side nowadays but does work on tape never the less, but the CX Cards at sub 20USD a pop are the entry point powerful little RF capture devices hence why it can compete with the easycrap market and SDI market.

marshalleq commented 5 months ago

The link you sent warned against using those as lower quality output. To me one of the major reasons for doing it this way is to get more quality output, so it seems wrong to start with the thing that is said will get lower quality albeit a good test device for your hardware. I'm not sure competing with easy cap is a good sales point given the reputation they seem to have, SDI on the other hand...

Or is the Wiki now out of date with the quality argument? I think it was talking about signal strength or something right?

harrypm commented 5 months ago

The you mean the CX Cards? in the RF capture domain yes, in the visual final decoded result domain no, if your not technically read into it then, I guess it could be confusing but today with basic mods the cards are on par real world use with the DdD and surpass it in automation and fleixilbity due to there affordable easy to modify nature, i.g external clock and ADC for linear audio capture but RF capture can be done via many devices there is only 2 standerdised and focused on by the docs to give 2 clear options but more hardware will be added as its developed and matured in testing 😉

SDI/PCIe workflows you dont have control over the Y/C or CVBS processing automatic this is ware the real general quality gains is extracted from a visual perspective alongside the time base correction and filtering from the inital demodulation RF on file.

Anyways I see your active on the discord now so I'll end this here!

marshalleq commented 5 months ago

Just adding here, until I get around to trying harrypm suggested - somewhat of a barrier given it requires importing some more stuff and hacking into one of my vcrs (I will do it at some point), I've gotten a Blackmagic Analog to SDI device specifically for vrecord and Blackmagic Media Express. vrecord is super awesome I must say, simply it's scope features allow me to set the procamp on the TBC properly for the rather varied sources of consumer home video. This app is awesome.

privatezero commented 5 months ago

@marshalleq I'm glad it is proving useful for you! That's great to hear!

Going back to the broader question of expanded capture card support, since basically vrecord is using FFmpeg for its capture it would be possible if the devices played well with the available options within FFmpeg. I've been able to capture from Osprey cards using FFmpeg in the past, so I am sure that for some cards at least they could be made to work with vrecord.

That starts getting stickier though if capture cards are a bit more proprietary! The other big limiting factor also seems to simply be having devices to test on, since they are all relatively expensive.

marshalleq commented 5 months ago

Yes, I understand your point. Firstly I think you've got the major one sorted, given that Blackmagic devices are still readily available. If you speak to the guys on the truly horrible videohelp.com forum, they insist that these modern devices just don't do justice to the signal, to only use windows, preferably windows xp, some old drivers and old capture devices such as a pinnacle 710usb. The windows XP update servers are switched off now so you can't even install a lot of stuff now, though Windows 10 is still good to go.

As a result I've tried a larger than usual number of combinations than most people would bother with because I refused to accept there wasn't a solution and to get the best result I can - and as eluded above, spent a lot of money in the process. So far, vrecord by far is the best. And I did try their suggestion with pinnacle 710 in windows and their favourite app virtualdub. I get why they like it, when you get it set up right it has some useful filters and things and it gives off the impression of providing raw and light capture capability. Something that would have been required in XP days, but now computing power has truly surpassed the days of starting a capture and doing a magic dance with crossed fingers to make sure nothing goes wrong. And the result I got was both horrible to produce and horrible to watch.

The big challenge which I expect lead you to write this wonderful program is that basically no-one is spending any time making good capture utilities any more except to pawn off their cheap USB capture devices - especially for Mac. But a world of content still needs to be migrated.

So for me, the journey to here has been immense. There is so much misinformation out there, opinions and some grumpy people behind those opinions sometimes as well. At some point I will put some comparisons together to speak for themselves.

In the mean time your reply made me wonder how such a feature (additional capture cards) would be implemented. I suppose if I tested some capture options in ffmpeg with a few capture devices I have around, pinnacle, magewell, ATI, probably some others, then we could present that standard under video card. I have so many projects at the moment and I'm meant to be studying so we will see how I go! Thanks for replying and again for writing this software. It's saving my bacon and I'd be excited to see how it might handle some of these other devices for comparison.