Using Shinobi Charts For Mac App

Quick, easy and reliable for all your devices: PC, Mac, iOS and Android. Whether you use PC, Mac, iPhone, iPad or Android phones and tablets. Memory-Map is simple and easy to use: Plan routes, check distance, elevation profiles and even fly-through your route in 3D on your PC. Print your own maps with routes and notes. Chart Trading on Mobile. Use an Android, iPhone, Mac, Tablet, or Desktop for chart trading on the server just as you would on your home computer. Instantly switch between devices, from anywhere in the world. Free yourself from your home computer. Never miss a profitable trade setup again.

  1. Using Shinobi Charts For Mac App Update
  2. Using Shinobi Charts For Mac App Free
  3. Using Shinobi Charts For Mac Application

This article assumes your Shinobi is installed in the default location /home/Shinobi and using Ubuntu 19.10.

How to view the Log stream for a Monitor

  • Click the Triangle icon on the stream window to reveal the temporary log stream.
  • The log stream pane may appear blank if your camera is operating as expected.
  • To see information appear in the log stream just open the Monitor Settings and Save it to restart the internal processing. You will see startup notices appear.

A Stream to Test Shinobi's Internal Processing

You can test Shinobi by creating a Monitor with these settings changed. This is a static file to simulate a livestream.

  • Connection
    • Input Type : MPEG-4
    • Full URL Path : https://cdn.shinobi.video/videos/bears.mp4
  • Input
    • Loop Stream : Yes

'bind failed: Address already in use' for UDP

On June 26, 2020 a community member by the name of Tastiest#3464 in the Shinobi Community chat provided their solution to the problem.

  1. Open the Monitor Settings
  2. In your Connection section Set Automatic to No
  3. Then fill Path with
    • ?reuse=1
  4. Save and Enjoy!

Stream Delay (High Latency in Web Browser Stream)

One major factor is I-Frames (Keyframes) set in the camera's stream. If you choose not to encode (copy as video codec) then your camera will dictate this setting, usually from its web interface. In this instance set the I-Frame interval to match the FPS you are using. So if you are doing 15 FPS from the camera, set I-Frame to 15.

Although the latency is mainly because the dashboard you are looking at is in a web browser. There are multiple layers of processing upon the client-side CPU that occurs and that partially causes this delay, especially with H.264 based stream types.

So the best options for low latency are :

  • At the expense of slight delay but low CPU use. Set the Stream Type (blue section of Monitor Settings) to Poseidon over Websocket.
  • At the expense of CPU power on the server you can lower this delay. Set the Stream Type (blue section of Monitor Settings) to Base64 or MJPEG.

Things to note :

  • Poseidon over Websocket has possibility of stutter under poor network-to-server connectivity conditions.
  • Base64 has no stream limit, watch as many of them on the dashboard as you want.
  • MJPEG is limited by the browsers HTTP connection limit.
  • Both MJPEG and Base64 will use a large chunk of CPU per stream.

Smudgy or Broken Streams

As with many issue this one is characteristic of many different problems. Here are some possible solutions.

  • Using a Constant Bitrate is the most common solution. Learn more here.
  • Toggling RTSP Transport from TCP to UDP.
    • To try UDP; Open your Monitor Settings and set Automatic to No and set the RTSP Transport selector to UDP.
    • Shinobi defaults to TCP for RTSP Streams.
    • If using UDP does not help you should reset it to TCP.

Packet Loss or Black Stream - Disable Wall Clock Timestamps

Sometimes a camera that won't stream (appears black) correctly will better operate with this disabled.

  1. Open Monitor Settings for the pesky camera. The wrench icon.
  2. Set Use Camera Timestamps to Yes.

The error below is one of many that can be fixed by this solution.

Black Stream - Analyzation Duration and Probe Size

You may fiddle with Analyzation Duration and Probe Size values to possibly acquire the stream. Try 1000000 for each field to start and work your way around.

Analyzation Duration defined in the FFmpeg Documentation.

Probe Size defined in the FFmpeg Documentation.

Black Stream - Incompatible Codec

In many cases the audio data from the camera is causing FFmpeg process to hang. You can avoid this by doing one of the following in the Monitor Settings in Shinobi.

  • Set Audio Codec in the Stream section to AAC
  • Set Audio Codec in the Stream section to No Audio

It's possible that the stream data coming from the camera isn't compatible with web browsers. Usually that is H.265. You have three choices when that occurs.

  • Change the camera's internal settings (easiest)
    • Open the camera's internal settings and change the encoding type to H.264. This option's labelling and location varies based on manufacturer.
  • Have Shinobi encode the data into a viewable format (bad for hardware, easy)
    • Just set the Video Codec in the Stream section to libx264
  • Use the Sub-stream from the camera to view in the browser with H.264 and still record in H.265.
    • Learn more about Additional Input Feeds here.

Stuttering Streams, Dropping Streams

This can be a characteristic of different problems but usually just because of network connection issues from the client machine to the Shinobi server. The client machine is the machine you are using to view the Shinobi dashboard. Possible solutions to this are as follows.

  • Try setting the Stream Type to HLS.
    • This value is found in the Stream(blue) section of your Monitor Settings.
  • Try setting the Stream Type to MJPEG.
    • This will use a fair amount of CPU power and has many limitation on the client side, use with caution.
  • Check that no other applications have an active connection to your camera.
    • Some cameras only allow a certain number of connections at a time due to resource limits on the camera itself.
  • Check that your wiring is maintained and isn't causing any packets to drop.
    • To learn more about reading camera logs please review the upcoming section of this article.
Using

Reolink Camera Stream Drop

Try disabling the Auto-Reboot feature from the camera's web panel. This option is not exposed in the mobile app.

How to save Camera Logs

Be careful not to leave this on indefinitely if your camera has connection issues even if appearing to be fine. You will just be saving a whole lot of needless information into the database.

  1. Open Monitor Settings for the camera. The wrench icon.
  2. Switch to Advanced view.
  3. Scroll down to Logging.
  4. Set to Warning and enable Save to SQL.
  5. Wait a few moments or until problem strikes.
  6. Click your Username in the top left then Logs.

Be careful not to forget that this is on after diagnosis. It may produce many log rows with many being useless information.

Getting logs from the Shinobi (camera.js) process

Open Terminal and run the following

Does the camera stream work in other applications?

Let's assume you have the correct stream URL. Try to run the stream in one of the following applications.

  • VLC - media player by VideoLAN Organization - https://www.videolan.org
  • FFprobe - Stream analyzer included with FFmpeg and is meant to be used on command line. Shinobi has GUI that can be accessed by clicking your username in the top left, then Probe.

The camera does not work in VLC or FFprobe

  1. Verify the network status of the camera.
    • You should be able to open the camera's IP Address in a web browser.
    • If your camera is connected by Ethernet then you should be able to see a light blinking (or solid if idle) on your internet router or network switch.
  2. Verify connection status by opening a Web Browser and navigating to the IP Address of your camera.
  3. Verify the type of stream coming from your camera by opening the internal settings.
    • Check for whether it is MJPEG or H.264. If possible to set H.264 then you should do for that.
    • If you are using H.265 you can set the Video Codec in the Stream section to Auto or libx264.
  4. Verify the stream URL of your camera.
    • You can review this page for some connection URLs.

The camera works in one or both of these applications but not in Shinobi

Please put the hammer away and try each of the following.

  • Turn off all other applications that are accessing the streams, like ZoneMinder or VLC.
  • Check the connection information. See below.
  • Check your version of FFmpeg or swap it for another build. See below.
  • Check your file system permissions. See below.

Checking the Connection Information

In the Connection section try a combination of the following suggested option changes.

  • Set Skip Ping to Yes, if still not working you should switch it to No.
  • Set Automatic to No and turn Force Port to Yes.
  • Try the Web Port of the Camera in the Port field if you are using the RTSP port. Web port is the port you use to open the camera's internal settings from a web browser. The default Web Port is 80. The default RTSP port is 554. Leave Protocol as it is.

Check FFmpeg and Swap it for a static version

Open Terminal and run the following to see the version of FFmpeg. The Version number will be at the top of the output.

If not at least version 3 or above then you need to update. There are three ways to achieve this.

  • Update your repositories to download the newest ffmpeg.
    • This can vary based on your OS. With Ubuntu you can install the johnathanf repository.
  • Install a static build with NPM.
    • Enter the Shinobi directory and run the following
Using Shinobi Charts For Mac App
  • Install a static build from Johnathan's static Debian build hosted on Shinobi CDN
    • Version 3.3 - Linux 32bit - http://cdn.shinobi.video/installers/ffmpeg-release-32bit-static.tar.xz
    • Version 3.3 - Linux 64bit - http://cdn.shinobi.video/installers/ffmpeg-release-64bit-static.tar.xz
    • Version 3.3 - Linux ARMel - http://cdn.shinobi.video/installers/ffmpeg-release-armel-32bit-static.tar.xz
    • Version 3.3 - Linux ARMhf - http://cdn.shinobi.video/installers/ffmpeg-release-armhf-32bit-static.tar.xz

To uninstall the NPM static build and use the build just run the following.

For

Check file system permissions

Run the following commands to ensure your directories are accessible by Shinobi.

More info you might want to look at

SUMMARY

  • 7+ years of experience in building native iOS and Enterprise applications using Objective - C, Swift, Java, HTML, Java Script.
  • Experience in developing Cordova/Phonegap plugins for iOS and Android.
  • Extensive experience in development of applications by utilizing Java, Android SDK and REST/JSON Webservices.
  • Experience in Front end/Web applications using like JavaScript, HTML, CSS, JQuery and AJAX.
  • Hands on with development tools like Xcode, Eclipse IDE.
  • Experience working on scalable environment using Agile/SCRUM, Test driven development (TDD) methodologies.
  • Strong in developing Responsive Web Design to target Tablets, Mobiles and desktops.
  • Well-versed with developing creative User Interface for iOS applications using Objective-C and Cocoa Touch.
  • Expertise on MVC Architecture.
  • Hands on with Swift to develop iOS applications.
  • Hands on with NSOperationQueue and GCD.
  • Experienced with push notification and local notifications.
  • Hands on with configuration and version control using SVN, Git.
  • Experienced with databases like SQLite and MySQL.
  • Experienced with Core Data to accomplish data persistence.
  • Worked extensively on testing, troubleshooting, code review, preparing user documentation.
  • Consume RESTful web services.
  • Exposure to all stages of the SDLC, starting from requirements gathering, Design, Development, Testing and deployment and production support.
  • Good exposure on iOS Architecture and IPAD, IPhone Versions of iOS.
  • Worked on creation of .ipa, .app filesand certificates.
  • Experience in App store submission.

TECHNICAL SKILLS

Languages: Objective-C, Swift, Java

Design Patterns: Singleton, Delegate, Observer, MVC

Version Control Tools: SVN, Git

Tools: XCode, Eclipse, Net beans

Operating Systems: Mac OS X, Windows

Mobile Frameworks: Cocoa Touch, Sencha Touch, Cordova

Web Technologies: JavaScript, JSP, JQuery, HTML5, CSS3, AJAX

Web/Application Servers: Apache Tomcat, WebLogic

Database: SQLite, MySQL

Web Services: REST, SOAP

PROFESSIONAL EXPERIENCE

Confidential, Bellevue, WA iOS Developer

Responsibilities:

  • UI designing and discussions with the UX designers.
  • User Interface work to enhance the usability of the application.
  • Update API s for consuming the web services in order to get the desired details of the patients.
  • Update GUID s for consuming the data query to increase the performance.
  • Work with Typhoon framework to accommodate the Dependency Injection.
  • Work with Image Picker to change the patient pictures and taking images.
  • Integrate the page view controller to display the images.
  • Using the table view and scroll view to display the data and observation results.
  • Added popup functionality to avoid the truncation of the information on UI.
  • Work with Date Picker to manage the date and time depending on the client and server timezone changes.
  • Developing charts for the application for showing the observation values (Includes iOS Charts and Shinobi charts).
  • Work with instruments to analyze the application and clearing the memory leaks.
  • Modifying the application icons and splash screens.
  • Using auto layout for the UI elements.
  • Integrating other application by using the same classes by moving them to library.
  • Fixing bugs as per integrating the development work.
  • Quick turns on RMR s and regressions.
  • App Still in progress to include new requirements and other features as per the client requirement.
Shinobi

Environment: iOS, XCode, Objective-C, Core Data, Local Authentication, Typhoon Framework, Agile WorkFlow, Daily Scrums, Sprint Retrospectives and loading.

Using Shinobi Charts For Mac App Update

Confidential iOS & Android Developer

Responsibilities:

  • Gathering requirements and divide work in to modules and integrate the code.
  • Follow the MVC pattern and design custom User Interface.
  • Sole creator and maintainer of Cordova/Phonegap plugin for iOS and Android.
  • Build the business logic based on client requirements.
  • Integrate third party frame works by using cocoa’s pod like SDWebImage.
  • Consume web services and stored the data locally with Core Data.
  • Develop application for both iPad and iPhone layouts.
  • Implement the Touch Id for sign in.
  • Create developer, distribution certificates and provisioning profiles.
  • Work on Image Picker to set profile picture for the user account.
  • Work on maps to display Confidential clinic locations.
  • Get user location by using Core Location Framework.
  • Display radiology images of a patient.
  • Synchronize the appointments to passbook.
  • Download images from the server by using SDWebImage framework.
  • Work on version control across common source code used by developers using Git
  • Playback the videos with the help of MPMoviePlayerController.
  • Deploy builds to app store.

Environment: iOS, XCode 6.0, Java Eclipse, Objective-C, SDWebImage, Media Player, Core Data, Map Kit, Local Authentication, Core Location.

Confidential iOS Developer

Responsibilities:

Using Shinobi Charts For Mac App Free

  • Follow the MVC pattern and design custom User Interface.
  • Build the business logic based on client requirements.
  • Consume web services to get details of patient facts, clinical documents.
  • Consume restful web services.
  • Work on version control across common source code used by developers using Git.
  • Create developer, distribution certificates and provisioning profiles.
  • Work on Core Data to store patient details locally.
  • Change the application icons and splash screens.
  • Work on performance tuning and bug fixes.
  • Integrate page view controller to display images.
  • Upgrade app to support iOS8.
  • Extensively work on tab view controller and table view controller.
  • Work on adhoc builds and release for internal testing.
  • Work on UI layouts and implemented using auto layout.
  • Integrate apple push notifications.

Using Shinobi Charts For Mac Application

Environment: iOS, XCode, Objective- C, Cocoa Touch, Push Notifications, GCD, NSOperation Queue, Map Kit, Media Player.