Connect with NVR to access stored videos - c++

I am working on a computer vision project where I want to process the videos captured by IP cameras in a mall. To do this!
One possible way was to access the live stream of IP camera and process the stream. (I have done this successfully).
But there are so many videos stored on drive of NVR which I also want to process.
One way to access those videos is using NVR's management software but this is a time consuming task. The question is, Can I access those videos programmatically ? May be using python, C++ or any other language. Any help or link would be highly appreciable. Thanks.

Related

Secure video links with AWS

We currently host online tutorials on our website embeding the videos using Youtube.
However I have been asked to secure the video links so users need to authenticate in order to view the videos, and once authenticated, not be able to copy the video link and share it with others as they will be paid tutorials.
We use AWS to store our other assets (Website images, documents, etc) and want to use AWS to now store our videos.
Does anyone know the best way to secure these links so they can only be used from within our website and not be able to share the video links?
First of all think how much effort you want to put into solving a problem, that the world failed to solved in the last 40 years. We had VHS and everyone could copy everything. We had CDs and DVDs with copy protection. BlueRays can and are ripped too. If you consider how a book can be copied then it is a problem we failed to solve in the last 2000+ years.
Have you played with youtube-dl? Have you seen how easy it is to download things from youtube once you get access to it? And I could always use a screen recorder tool to capture the screen if all else fails.
Given how easy it is to bypass the copy protection, how much time do you want to spend into solving the impossible? Do you want to make the code more complex and the architecture more crappy (and the usability worse) along the way?
If the history has shown anything is that legal measures are the only way to protect from piracy. So you have two options here: pretend you do something to protect knowing you will fail or talk to the managers and convince them, that there are better ways of spending money.
By default, all objects in the bucket are private.
A pre-signed URL may solve your current problem.
Have a look on below links:
https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html
https://www.msp360.com/resources/blog/s3-pre-signed-url-guide/

Blockchain based database for storing simple records

I want to implement a small blockchain based solution that could serve as Patient Management System. The system should be able to track patients and their medical records/reports. Of course, this system would not be deployed somewhere, its just a university project.
So far, I've started tried to do it with Ethereum. I didn't find a solution using it. Then I tried to use OrbitDB cause I saw it on Ethereum's site in Developer Resources page. But after I had done some POC using OrbitDb, I came to know that it doesn’t claim to be a “blockchain database”, but rather a choice for decentralized apps. Then someone suggested me to use BigchainDb, but after reading about it and trying to make a small project using it, I came to know that it wouldn't fit my needs. I have also read about Fluree but didn't tried it yet as I have already wasted 3 months experimenting with others and didn't want to waste more.
So, could you recommend me a Blockchain-based Database that could serve my needs. Also, some sample code, preferably in Node.js would be a great help for me.
Please excuse me if I have written something wrong or if my understanding is wrong. I am new to Blockchain.
Thanks
You can try IPFS developed at protocol labs
The InterPlanetary File System (IPFS) is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
here is the guide to understand more into ipfs
here is a simple dapp using ipfs with ethereum
You can use Emercoin public blockchain, subsystem NVS (Name-Value Storage). It allows upload your data with name_new command, update value with name_update, and see history of changes with name_history command.

How to upload video files to a remote MySQL server using Qt creator

I'm new to Qt and am fairly new to C++ but I'm a very fast learner and have been able to build a prototype application with Qt creator and I intend to take it to the next level.
Basically, the application is a GUI that allows a user to capture or record videos. The user have the option to upload the video while recording (real time) to a remote MySQL server or to save the video in local storage and upload it later.
I'm displaying the saved recordings with a QListView. The user selects the video he wants to upload from the list. When the user selects a video to upload, the list emits a signal that returns the location of the video. This is where am stuck.
I want to be able to upload the selected video to a server (a MySQL server to be precise). I don't know how to go about this. I tried to read documentation on Qt networking (especially QNetworkAccessManager) could not get a hold on how to do this. I know it's fairly difficult but as I said, am a very fast learner, with a few example I can accomplish great stuff.
Please I need a resource I can go through or a simple example I can use as an compass. I apologize that I might not know a few things but trust me, I can learn immediately. I promise to post my success story. Note that I've actually google(d) a lot before turning to the StackOverFlow family for help because I know I'll get some here. Thank you very much in advance.
NB: Am coming from a Java background therefore adapting to C++ or Qt Networking should not be a problem
Using Qt networking features is indeed not the right way to go. What you want to do is use some plug-in dedicated to communication with databases through some driver (typically, for SQL Server, that would be an ODBC driver).
Have a look at the links below for further details:
SQL Database Drivers from Qt documentation
How to load ODBC in qt on Stack Overflow

On the fly Stream and transcode video with Django

I have a model that uses "models.FileField()", which I then display back to the user so they may click the link and have a file rendered in their browser. The user can upload various types of files.
Problem is, I'd like to handle large avi's differently, and have the file stream to the user.
The requirement I have is to simply stream/transcode video files from the media_root dir to an end user's browser, preferably in a mac friendly format. It would be for a couple users at most.
I've search and stumbled upon a few projects:
https://github.com/andrewebdev/django-video
https://github.com/rugginoso/django-transcodeandstream
As I am I a relatively newbie when it comes to django, I'm not sure how to incorporate their code into my proj.
Any thoughts, suggestions?
You can check Amazon Elastic Transcoder. It is a media transcoding in the cloud. It is designed to be a highly scalable, easy to use and a cost effective way for developers and businesses to convert (or “transcode”) media files from their source format into versions that will playback on devices like smartphones, tablets and PCs.
Or else you can check Webfaction, they have Video and image processing on their servers which you can use.
If you will use any of those, you can ask them about the installing process and how to integrate it in your project.
And one more thing, if you want to play the video on the browser, you will need a video player like jwplayer.
Hope this will help you get started! Best wishes!

How to stream video in a django app

I'm looking to stream video's as part of a django app, but I've never done anything with video and don't really know where to start. I don't have all the details of the project yet, but I'm expecting a fairly small library of videos uploaded by one or two people (Think less than 100 videos of about 5 mins length).
I'm looking for a solution that allows users to upload videos using django admin. I want to reach the majority of desktop browsers (95%+), and obviously I want to keep my costs down. Saying that I do like the idea of using some sort of cloud based CDN (I've no idea if that's possible / appropriate for this size of project)
I really want to ask if anyone can point me int he right direction (tutorials / services / projects / code), but I realise that might not be specific enough.
So to be more specific -
Is it possible to stream video to browsers using just django and an apache web server?
What cloud hosting providers will support easy integration with a django app?
Will I need to convert the format of my video's before they're ready to stream?
Can I use Red5 with a cloud hosting solution.
I want to host the project on a Ubuntu server that I use to host a
couple of other (low traffic) django apps - would it be a mistake to install Red5
on a server with existing sites.
From recollection, the server has 12GB RAM and 4 cores (in a 1and1
uk datacentre). Will I have enough power / bandwidth to stream say 3-5 video's simultaneously? (assuming red5 / wowza).
I'm not interested in Flash because I was rooting for Apple. Do I
need to need to re-evaluate my prejudices to be free of my ignorance?
I never streamed videos using Django/Python, but I have some experience in the field of streaming video in frontend apps. I can certainly not answer all your questions. In my experience it does not really matter where the video is hosted, a CDN is fine if you want to distribute the video world-wide.
I personally think you should start with the question on how you want to play the video in the browser. Choose an appropriate video player (could be html5 video) and you have an idea of what is possible to play and what not.
3) The format matters depending on how you want to stream the video. Progressive download (e.g. mp4)? Live streaming (unprogressive, e.g. HLS)? You can find example videos online and test if your video player can play the videos on the platform you want to support.
7) As said, you need to check out which player to use in this case. HTML5 video is not widely supported enough yet in my opinion, but can play most formats in the most modern browsers (Chrome, Safari).
Hope that helps.