Elsewhere there are things that we all miss, yet it takes just one to notice...

Still improving with Blender

As well as the programming blitz I had over this weekend to get my server up and running which still has a bit of work left to do, I’ve also done a few bits with Blender.

In blender, I am still having an issue with the sun light shadow not being consistent. This ended up with me asking some of my contacts on social media about it.

One suggestion worked which was using an orthographic camera instead of the perspective. It was short lived though as all my animations would end up being flat.

In the same response, the friend also suggested angling the camera and using a bevelled edge on the text. Now this technique did work much better but the sun light is still causing the lighting shadow problem.

Now what I’ve done is to angle the camera and set the sun light up at the angle that works best for now. The text creation in blender get extruded and a light bevel which gives the rendered image an almost decent look to it. It will work for most things, so that will have to do for the time being. I may dig further into blender.stackexchange to see if there are any solutions to this, and if not then I will ask a question.

For text produced using GIMP, I’ve also figured out how to cast shadows through the transparency of the image. This will come in handy for a lot of things.

When using the animations, i.e. moving objects around the scene, the default movement settings for most things were fine. But I wanted to ‘slam’ text on the screen. The default settings would slow down, or ‘ease in’ the movement. Without even googling it, I figured out how to change the ‘ease in’ and ‘ease out’ settings. I can now ‘slam’ objects onto the screen. A simple, but effective effect.

Server media management

I’m glad to announce that my media server manager is very almost completed. The files upload to their respective categories and the Java application handles the media library perfectly.

It took a bit of learning Swing in Java but that wasn’t hard at all.

There’s a couple of things to do in the media manager before it is completed. Remove media and categories from the server. And add descriptions to the media files. And that’s it.

The next step is the Android application to manage devices so that I can set them up on the go without the need to get back to my PC.

Unknown devices (those that are ready to be set up) will be stored in the root directory of the media server. The Android application will then assign it a category and a playlist.

All looking good now.

(I’m having a bit of difficulty with WordPress Code Snippets so I’ve been unable to add any snippets recently)

Love this laptop

I’ve an old Dell Precision 4500, i7 @ 2Ghz with an nVidia Quadro 1800M. I got it cheap off eBay and upgraded it. RAM went from 4Gb to 8Gb, replaced the 320Gb HD with a 960Gb SSD and added a 1Tb HD in the place of the DVD drive. I use it for 95% of home use now.

Oh, and I added USB 3.0 to one of the PCI slots.

The eSata port has come in extremely handy on many occasions too. I don’t know what it would be like having to swap drives in the laptop all the time whilst I was upgrading other laptops.

Simply put, it is fast…

Tonight I tested myself against the clock with creating a demonstration video in Blender. In the background my laptop was moving a load of files from the SSD to the 1Tb HD. I wanted to get everything done within an hour. No programming tonight.

First 5 minutes was thinking of an idea, then it took about 10 minutes to collect artwork together and create the project folder with the assets.

The demonstration, with a video texture, lighting and shadow, was all done within an hour. I was happy tonight.

The test of my laptop didn’t end there.

I decided to create a new project with another demonstration idea, while Blender was rendering the project as a video file. *big grin* nothing slowed down even though the CPU was being obliterated.

Yup, I like this laptop.

Running Linux and Windows 10, but all my work gets done in Linux.

Only a minor update

After work today I was zapped, but I got the file structure tested and confirmed on the server side for the initial testing. Everything is using Linux so it is easy to set up the testing grounds. I’m trying to make the device installation as quick as possible with minimal fussing about.

Oh and I also fixed a bug with the ‘~’ (home) location in java. Using ‘user.home’ gives me the home directory (actually on Windows too I found out but not tested, no need).

Eventually all of this will be in C++ so I’m 0% stressing at the moment. The servers will need to be C++ because of the JVM overhead.

I also fixed my PC in Linux which was not connecting to many websites. I had set up the fixed IP for testing without setting the routers gateway correctly. Chrome seems to mask this by loading up some websites but the rest it couldn’t find. The fix was done by assigning the fixed IP on the routers side. Eventually a VPS will cause me a few headaches.

I think tomorrow I will get back down to using Blender because that is the main source for this project. Royalty free 3D models/animations I want to test out.

My own website

For my own website I do not need SEO. Those who view it have come through searches or from my own online profiles. There’s absolutely no need for me to up views on my pages because I class this as a personal blog/diary and therefor I’m not wanting to advertise myself to the world or other outlets. Simple really.

My other website is for that and I’ve already got it covered.

Now back to some coding.

More progress towards my project

I’ve been doing odds and sods today.

  1. Play a list of videos on a continuous loop full screen. By using libvlc and the Java wrapper I’ve finally got a full screen player working in less than 60 lines of code which plays a list of video files.
  2. Write a server and test over the internet. Using just a Java server, the initial test worked which was to accept a connection and send “Hello world!” back. Now that it is running I can expand the server with all the functionality I require. This will be handling the back-end database, media and installations.
  3. Define a KISS (Keep It Simple Stupid) database for handling devices and media.

To do:

  1. Write a mobile Android app to manage the setup of devices and assigning play lists. This is going to be a big one and a lot of work and I need to be on site when setting up devices and getting them playing without glitches.
  2. Expand on the software for the media player so that it can update itself from the server with not only media updates, but also software updates.
  3. Run an outside test live over the internet and update the playlist.
  4. Get more experience with Blender and video creation. For the most part, I’m more than capable of producing the videos in approximately an hour for everything I need. The more I get familiar with Blender then I can add more effects to the videos which will be a bonus.
  5. Bully test the server. I already have someone on hand that can test the servers integrity and stability. Pen-testing the server will give me some good pointers to how to make it more secure. I’m also considering the 2 way login.

That’s the plan for the next couple of weeks. Just so long as I get some free time I can move along quite quickly with this with the exception of the bully testing and updating.

Right now, things are looking almost bullet proof. Fingers crossed.

EDIT:

I forgot to add the VPS (Virtual Private Server)

Not been that busy lately this time

I had 2.5 days carried over for holidays so I took a long weekend off beginning half day on Friday. All to go for long rides with the missus on our motorbikes. And she was very happy because she has only been riding for almost a month now.

Anyway, documents have been written up towards this project and a very important document that I created regarding it from about six years ago needs altering. No database plan has been setup yet until the spreadsheets are finalised. Number crunching has been pretty good.

At the moment I have four sample videos created, although I need a lot more, to which a demonstration setup can be made. When all the sample videos have been produced, they will range through all categories of businesses.

My Intel tiny PC turned up and I am not disappointed. I may as well stick to 30 frames per second instead of 60 as the current videos play perfect. I’ve got it to boot up in Linux and auto run my software to play the videos on a loop. No screen tearing and running all over these last four days.

Over the next one to three weeks I should have the server infrastructure in place where I can live test my new system. As mentioned above, the documentation has been more of an important matter over this weekend off when I’ve had the time. The infrastructure will include storage, database solutions, communications, security protocols and a users interface to the server.

Throughout this entire project I’ve kept to a strict diet of royalty free and open source. In the future, the software I have used will get donations.

PS…

The initial test was a single ‘cpp’ program which links to ‘libvlc’ and ‘X11’ which opens a full screen window and attaches each instance being played to the full screen window. Now it gets complex. (not really)…

I have been busy actually

Saturday and Sunday I was faffing about with my Odroid U3 trying to get various API’s to play full screen videos on Linux but kept coming up against a brick wall because those API’s are for openGL and not openGL ES. Only Android would do that and I do not want to go down that route. So instead of buying the Odroid C2 which was my original plan I’ve ordered myself an Intel board instead. Can’t wait for it to turn up. The weekend dragged with all the testing and testing.

Tonight I decided to get a spreadsheet together. Being on the extremes of pessimism, the figures still look damn good. It’s given me a positive frame of mind to move on. I will be expanding on the spreadsheet a hell of a lot as this is the first set of figures I’ve started to work with. I plan on getting a full set of test data to start with to get the numbers down to the penny. I’ve still got to price up servers, etc.

Then I got another quick blast at blender. Two things I wanted to get working, alpha transparency for PNG images and playing a video clip in a texture. Yes, I can do them both. And boy, it’s looks good as a 3D rendered movie with transparent images and movie clips playing.

Libvlc and my Odroid

Before I go ahead and actually buy the Odroid C2, I thought I’d dig out my U3 and try the vlc library on that. All I had to do was to copy the project folder over SSH to it and build it. At first it didn’t compile because I needed to install the X11 dev files, and then again I had to install the libvlc-dev files. And then it built just fine.

Major problem though, VLC doesn’t have hardware acceleration on any of the Arm processors yet.

Well, now it looks like I’ll either go down the Qt route, FFMpeg route, OGV decoder route, or find another player library.

One thing I do know is that I’d like to stick to a single video format, ie OGV. So that makes writing my own player easy enough.

My next step is to get a player working by myself and make it work on the Odroid. I’m going to see about the OGV sources before checking out other open source players.

I’ll keep you posted.

 

Fullscreen video playlist done

Using Linux and libvlc I’ve finally got what I was aiming for. A full screen video playlist player. And it was quite easy.

The steps to get here:

  1. Monday: Play a media file. A few lines of code did this. And with the addition of one extra line of code made it full screen.
  2. Play a playlist of videos full screen. This is where things went wrong. After one video had finished, the vlc player would quit fullscreen, flash the desktop and then play the next video in full screen. This was not acceptable.
  3. Tuesday: Using the stock Linux libraries to go full screen. This took all of about 20 minutes from start to end. And again, in just a few lines of code. It was a chaotic night at home so I just finished up there.
  4. Wednesday: Just chilled out and watched TV after work instead.
  5. Thursday: I now needed to use the full screen window and attach the videos to it so that the desktop doesn’t appear. By just passing the window ID to the vlc media player, this was done.

Now all I need to work on the managing the playlists over the internet. And order myself and Odroid C2 with a few other gadgets. So far, this is going 100% perfectly.

By my reckoning, I should have a media player that boots up in less than 10 seconds and playing. How awesome…

The hefty part of the coding is about to start…

Posts navigation

1 2 3 5 6 7 8 9 10 11 12 13
Scroll to top