Assignment 2 Week 6: Final Blog

The Final Blog

Today is the final day for the submission of the final assignment of this degree. And as always its a last minute rush to finish this assignment, especially with team members who have done nothing yet.

My part of the report is complete and a bit over the word limit but that is never a major for these assignments and I suspect the other sections will be smaller anyway.

So as always team assignments have their pros and cons, yes working in a team does mean less work for each individual, but usually I find myself doing more work than others, I want the best marks possible.

The cons of working in a team are the team consists of members of differing abilities and some members need extra support.

Additionally, for some of us, this is the last assignment in our final year, and I am troubled that potentially, my graduation now depends on the performance of other team members.

So we are in the library working together to finish this report for submission later today.

Assignment 2 Week 5: Cobit vs ITIL

This week is an intentionally short blog, I have a final project poster presentation to prepare this week, the culmination of 3 months of work of the biggest project I have ever completed. This means limited time for Net701 an blogging.

Cobit vs ITIL

A search of YouTube has exactly 3 resources, and 2 are identical content.

itilvcobit

Duckduckgo was more useful.

cobitvitil

This is a summary of the similarities and differences between the 2 frameworksfrom the following video:

  • Both are frameworks for IT
  • Both describe processes that should be established by a well run enterprise
  • They provide guidance an enterprise can draw on for specific IT situations
  • They are based on real world experiences
  • They apply to a wide range of enterprises, of many types and size
  • Neither are implementation blueprints
  • Cobit processes can be mapped to ITIL processes, as shown below

nbriso-27002-cobit-e-itil-57-728

The following tables shows some differences.

Capture

Discussion

This assessment is a group report. I am not convinced that a group report is appropriate for a final year assessment, the final mark does nt depend on my work but on others work, so essentially the final result of my Bachelors course is out of my hands and dependent on other students, not an ideal situation. Fortunately I have a good team but it is possible that a student could fail this course and not graduate baecause of another students poor work.

That said, this assessment is proving difficult. The report asks us to discuss the comparison between ITIL and Cobit in three specific areas. Unfortunately there is very little information on the actual methods the processes in both ITIL and Cobit use.

I have identified my area as being the how they facilitate the review of the new technology.

The ITIL area is called “Continual Service Improvement” and in Cobit it is called “Monitor, Evaluate and Assess”, each of these areas contain processes which can be used for reviewing the new technology.

Unfortunately the processes themselves are not well documented on thee internet, to delve deeper into how each framework actually compares, i.e. comparing the individual processes will not be possible without purchasing the actual documentation for both Cobit and ITIL.

So this report will be a high level comparison and I predict a lot of duplication as each of 3 students complete 1 section of the report.

 

Assignment 2 Week 4: Cobit5

Two major topics of discussion in class this week.

We discussed the Assessment and had talks and videos on Cobit5.

The Assessment

It seems that I’m not the only one struggling with this assessment and finding the information required to complete the assessment.

There seems to be a focus in the on finding relevant information on implementation of “Emerging” technology with ITIL and Cobit. This is not where I am struggling. I understand that these frameworks are general to the implementation of any IT into a business, established and emerging technology are treated the same by both frameworks, so I am researching how the frameworks can be used to review the newly implemented technology. The problem is the lack of specific information freely available on the WWW, there is lots of overviews about the differences between ITIL and Cobit and lots of foundation material but little in how a specific process works in either ITIL or Cobit.

So the report is going to be a high level overview without the specifics and each of the 3 criteria we need to discuss are going to discuss a lot of the same information.

Cobit5

This weeks focus was on Cobit5.

According to Wikipedia:

“The framework defines a set of generic processes for the management of IT, with each process defined together with process inputs and outputs, key process-activities, process objectives, performance measures and an elementary maturity model.”

Cobit5 is designed to help businesses maximise value in their IT. It does so by balancing between the achieving of objectives, optimizing risk levels, and efficiently assigning and using resources; it provides governance for IT.

5 Principals

This balance is achieved through five broad and generic principles.

CobitPrinc

  1. Meeting the needs of stakeholders
    • A business exists to create value for stakeholders
    • Stakeholders have demands and requirements
    • These become the organizational objectives
    • Stakeholders are both internal and external, such as customers and IT users
    • Stakeholders are both informed and involved in IT processes
    • Cobitgoalscascade
  2. Covering the organisation end-to-end
    • Cobit5 applies to the whole organisation, not just to IT
    • All roles have to be included
    • Advises on IT services throughout the whole enterprise
  3. Applying a single integrated framework
    • Its a single framework that can integrate with others such as ITIL and BiSL
    • Integrates with many other enterprise standards
    • integrate
  4. Enabling a holistic approach
    • A holistic approach means your entire organization must work as a single unit
    • Cobit defines a set of 7 enablers to support the implementation
    • cobit 5 enterprises
  5. Separating governance and management
    • COBIT emphasises the distinction between governance and management
    • Governance evaluates stakeholder needs, sets direction to the company based on the needs and monitors performance
    • Management implements the process, it plans, builds, runs and monitors the processes
    • Divides the company into 2 domains, Governance and Management
    • cobit govenance and management

Seven Enablers

7 enablers are defined by Cobit to support the implementation of Cobot

  • People, policies and frameworks
  • Processes
  • Organizational structures
  • Culture, ethics and behavior
  • Information
  • Services, infrastructure and applications
  • People, skills and competencies

enablers

Enabler 2: Processes

For the purposes of our assignment this is the important enabler to focus on.These processes can be compared with the life-cycle stages in ITIL and will enable me to complete the assignment.

COBIT 5 defines a process as ‘a collection of practices influenced by the enterprise’s policies and procedures that takes inputs from a number of sources (including other processes), manipulates the inputs and produces outputs.

A process has:

  1. Stakeholders
  2. Goals
  3. Lifecycle
  4. Good Practices
  5. Activities

The process has a structure consisting of the following:

  • Description
  • Purpose statement
  • IT related goals
  • Generic metrics
  • Process goals
  • Management practices
  • Inputs and outputs
  • Set of activities

Cobit5 has 37 processes, these processes communicate with each other, outputs from a process becomes the input for another process.

Domains

Cobit divides the enterprise into 5 domains, 1 governance domain and 4 management domains.

domains

APO, BAI, DSS and MEA are the management domains.

Each domain contains a number of processes for a total of 37 processes.

processes

Monitor, Evaluate and Assess is the domain that will cover my criteria for the purposes of the assignment.  Viz. “describe how the framework facilitates the review of emerging technology” and this is comparable with the Continual Improvement stage of the ITIL lifecycle.

The following processes are contained in this domain:

MEA

These 3 processes will enable the organisation to review the newly implemented emerging technology, assess the performance of the technology and its impact on the organisation.

Conclusion

This is a brief overview of the Cobit5 framework.

I have specifically identified the MEA domain and its 3 processes of being relevent to my part of the assessment report.

I now have 2 targets for further research:

  1. ITIL Continual Improvement
  2. Cobit5 Monitor, Evaluate and Assess

This will be the next focus for this assessment, research and compare these 2 components.

Week 14: 28 October

The Final Blog

Just got back from Coffee and Scones, the weekly meet up with the NDS team at Broccoli Row cafe, I was still invited even though I am not currently working in the office, a very generous Kelvin from NDS.

This is the final week for blogging this project. Today (Friday) is the hand-in date for the blog to be marked, so this will be a brief update.

My work place experience ended last week and this week has involved further work on the final Report. So far I am up to 31 pages!

This is the title page, showing the word count progressing well.

report title

I am currently writing about the Placement Report, specifically the actual design and implementation of the “Proof of Concept” and the challenges I had to overcome. This will be the biggest section of the report as this is what I spent most of the time brainstorming and coding, so I don’t anticipate any issues with a too low word count.

I will be including the following documentation as appendices, the original project brief and the research report. By including these as appendices, MS Word will count then words, but they don’t actually count towards the reports final word count.

NMIT Project Brief

Stewart_Metcalfe_NMIT_Student_Project_2019

Just to add a little colour, we were given this cover page to use for the report.

coverpage

Conclusion

In the last 3 years of study I have written innumerable reports and have achieved tremendous success with them.

As a result, I have no doubt that this will also be a great report and I currently anticipate no issues with its completion. Time management predicts that all will be done and dusted in time for the submission deadline.

The final task here is to download this blog as a PDF and submit it for marking, it will be interesting to see how many pages I have written.

This final year project has been an exciting, interesting and challenging period for me, a networking major who had spent the last couple of months immersed in AI, Computer Vision, Coffees and CODING, hard to believe!

But I think tremendously successful.

Assignment 2 Week 3 : ITIL

I watched this video to get the fundamentals of ITIL in an attempt to get the information necessary to complete the assignment. The following is a summary of what I learnt.

What is ITIL

A set of guidelines for IT service management, best practice processes for delivering IT services to customers, both internal (in the company) and external.

Its not a standard,just best practice guidelines.

Why is it popular?

  1. Vendor Neutral
  2. Non-prescriptive
  3. Best practice based on experience

Why is it successful?

  • Delivers value to customer
  • Integrates service strategy with business strategy and the customers needs
  • Measures, monitors an optimizes IT services, to improve performance and reduce costs
  • Manages the IT budget efficiently
  • Enables standard approach across the business
  • Supports the achievement of success
  • Improves interaction with customer
  • Optimize and reduce costs

Structure

ITIL has 5 modules in its life-cycle:

  1. Service Strategy
  2. Service Design
  3. Service Transition
  4. Service Operation
  5. Continual Service Improvement

ITIL-v3-lifecycle

What is a service?

ITIL defines service as a means of delivering value to a customer.

This is accomplished with a specific set of processes which deliver the service, that is how the service is provided.

ITIL also defines Service providers, they help us provide the service and are divided into 3 groups.

Untitled

Service Strategy

Objectives:

  • identify the services of the business
  • Define service quality
  • create and document value for customers
  • Differentiate value from competition
  • Financial Management
  • Allocation of services

Purpose: to become and remain valuable to customers.

Consider the following:

  • Perspective: the vision of the business
  • Position: how you want to compete
  • Planning how to get to desired position
  • Patterns: actions to meet objectives

Sets the goals, policies, guidelines, processes and measurement of performance.

Includes:

  • Demand management
  • Service Portfolio management
  • Financial management
  • Business Relationship management

Service Design

  • design new/modified/improved services
  • The plan for the service
  • Efficient and effective processes
  • Based on Redundancy, Scalability and continuity
  • Identify and manage risks
  • Contribute to overall improvement of the IT service

Results in improved governance, performance, quality and reduces cost and time to deployment.

Includes:

  • Service Catalogue management
  • Service Level management
  • Supplier management
  • Availability management
  • IT Security management
  • Capacity management
  • IT Continuity management

Service Transition

  • Planning to establish the new or changed service in production – this fits the first criterion of the assessment “Identify and describe how the framework provides for the implementation of the emerging technology
  • Ensure minimum impact on existing business – this fits with second part of the assessment “Determine how each framework can be used to identify infrastructure affected by the emerging technology”
  • Effective us of tech and apps to deliver the service
  • Service transition practices

The purpose is to build, test and deploy a service into production.

Includes 5 processes:

  1. Transition planning and support (costs, quality and time scale)
  2. Change management
  3. Service asset and configuration manager
  4. Release and deployment management
  5. Knowledge management

Service Operation

  • Maintain the stability of a service
  • Minimize the impact of a service outage
  • Effective and efficient delivery and support of a service

The purpose is to control and carry out the activities and processes to deliver the service at the agreed levels.

Incident, problem, event, service request and access management.

Continual Service Improvement

  • Identify and implement improvements
  • Continuously look to improve service effectiveness and cost effectiveness
  • This section will assist with the third criterion of the assessment “In each framework– describe how the framework facilitates the review of emerging technology?” start time 2:49 in the video
  • It leads to gradual quality improvement
  • Uses monitoring and reporting to identify ares of improvement
  • Improvements can be in organizational structures, resourcing, partners, technology, staff skill and communication

Uses Critical Success Factor and Key Performance Index to audit the service which allows for areas of improvement to be found.

Baselines are used to establish an initial data point.

3 Types of metrics:

  1. Technology metrics – the components and the app
  2. Process metrics – KPIs and activity metrics determine the health of a process
  3. Service Metrics – the overall result of the service

Summary

A very business focused framework on how to manage IT services in a business. Not specific to Network Infrastructure which is the core syllabus of the course. I think this would be better taught in a SYD course.

Assignment 2: Week 2

The emerging Tech

This is a weird part of this assignment, first, we are expected to choose an emerging technology, which we have.

The brief for the assignment then states the following:

“Produce a comparison of ITIL and Cobit5 frameworks in their facilitation of the development of effective implementation of an emerging IT technology in an organisation.

In detail, identify infrastructure requirements for an emerging organizational technology.”

So we have to discuss and compare ITIL and Cobit5, great, there is a marking schedule we can follow to do this.

But there is no marking schedule for the “Identify Infrastructure requirements” – so no marks for this section of the report. A discussion with the tutor recommended a brief discussion of the infrastructure requirements would be adequate and marking would just be a tick box.

This is a weird way of doing an assignment, nowhere in the assessment is there any discussion of marks given or removed for doing or not doing this task.

ITIL vs Cobit 5

This week I will look deeper into ITIL and Cobit5.

There are 3 sections in the marking schedule

  1. Identify and describe how ITIL provides for the implementation of the emerging Technology
  2. Determine how ITIL can be used to identify infrastructure affected by the emerging technology
  3. In each framework – describe how ITIL facilitates the review of emerging technology?

So for the purposes of the assessment we have a team of 3, so it makes sense to choose 1 section each and investigate how ITIL and Cobit5 will assist with the task.

Sakar will work on 1, Jeff on 2 and myself on 3.

ITIL

According to AXELOS “ITIL is the most widely accepted approach to IT service management in the world. Organizations use its proven best practices to run their business from strategy to daily reality. Millions of IT professionals successfully drive their career thanks to the ITIL certification scheme. ITIL offers common concepts and vocabulary, aligned with international standards, to ease collaboration in a multicultural and interconnected environment. ITIL turns the challenges of the digital age into competitive edge.”

The ITIL V3 service lifecycle covers the five key stages of a service:

  • Service strategy defines the policies and objectives relating to the value of the service for the business, securing a return on investment through practical decision-making and the planning of required assets.
  • Service design then handles the creation of services, and their evolution or withdrawal, ensuring the consideration of all aspects, and the views of all stakeholders, to achieve a smooth build and efficient operations.
  • Service transition provides the planning and management that is necessary to bring designed services into production. It ensures the quality of the service, and stakeholder satisfaction during implementation.
  • Service operation carries out recurring activities that support day-to-day business.
  • Continual Service Improvement (CSI) ensures rigorous quality checks are conducted to ensure the service process is improved consistently.

From this and the video on ITIL presented in class it seems that The Continual Service Improvement is the first stage to explore to do my part:

“describe how ITIL facilitates the review of emerging technology?”

So I will now look at CSI in the ITIL framework and find out how to integrate this with reviewing the Biometric acess control.

Not an easy task, using the supplied materials, a lot of reading to find nuggets of information.

Cobit 5

I will have to find a similar element in the Cobit framework which does the same.

Week 13: 21 October

Reports

The Project Report

This weeks focus will be on the final project report.

The project build is as far as I need to present an end-end solution for the Poster Evening, so I will use this week to build the required 15000 word report.

With the experience of writing reports during the last 3 years of study, I don’t anticipate any issues with this aspect of the project.

We have also been provided with a template to build the report.

The first step as always is to open my existing report template and use the provided project template to add in the headers needed. I can then slowly add the content.

For the first stage of this project, the research aspect, I have written a report on the Azure services available that may be useful for the project, and this report will be added as an Appendix to the Project Report.

The Client Report

This formed the first stage of my project.

I researched the Microsoft Azure Cloud services which could be used for developing the project.

As the project progressed this report continued to be added to and this week I have completed the final report with a summary and recommendations.

The following is the final summary:

Summary

Microsoft Azure Cloud has the services required to enable the prediction of an event based on classification of an Image by a Custom Vision model.

Unfortunately, this platform proved to be unable to easily handle the scale required to analyze a full-length rugby video using the steps that were built for the Proof of Concept and will require an alternate approach to succeed.

Google Cloud Services has a Video Intelligence service which on initial inspection appears to be an ideal solution for this project and I would recommend further exploration of this service going forward.

Friday

The final day at the workplace.

Part of this week has been a bit of fun for me.

On Monday a new computer arrived in the office. I have been offered and have accepted a job here as a Developer, an interesting title and job for a networking major! And as part of the process my future employer has ordered a new computer fro me. A high powered Lenovo ThinkPad which will eventually be connected to 2 large screen monitors, with a wireless mouse and keyboard.

So I got to play a little.

Installing all the software I will need, took a fraction of the time I spent in the last few years on installs, more CPU cores, a higher speed CPU and much more RAM makes a computer sprint compared to my walking speed laptop.

I am also copying all my work from the old computer to the new laptop, a not inconsiderable task using 2 external hard drives.

All the while my final report is slowing coming together.

Week 12: 14 October

An Update

The last 2 weeks were a mid-semester break, so I had a break from blogging.

I continued to work on project during the break and continued to keep the same hours at the company I am visiting for this work experience.

I now have a Full-stack, beginning to end solution to the proof of concept. unfortunately due to limitations in the Azure platform there have been changes and bugs.

1. The first stage Windows app converts a video to frames and uploads the image to storage.

Capture

2. The second stage Azure Function app, is triggered by an image (blob) arriving in the container and uses Custom Vision to classify the image and adds the image information to an XML document.

sendToCV

3. The third stage use Azure Logic app (a pipeline) to email this XML document to my email address.

logicApp

Issues

Azure Function Apps cannot scale effectively to convert a video to images, it times out after 10 mins, the maximum an app can run in Azure. So the conversion is now on a local computer and the images are uploaded to storage blobs.

The platform also struggles to scale when reacting to hundreds of images arriving in a storage container at rapid intervals. A “serverless” function app actually runs on a small 1 CPU, 1.5 Mb RAM device and a maximum of 200 devices will scale out for the function app, not effective for large volumes of images.

And sometimes it just doesn’t trigger for no apparent reason.

This breaks the classification stage of the process, it works on small scale with minutes of video but not with larger quantities.

And the images are also not analyzed on a “first come, first classified” basis, but in a seemingly random order due to the nature of a Function App and how the triggering process works, so the resultant XML document is an unordered list of images.

disorderedDoc

But I have a fix for this, I have learnt how to programmatically manipulate an XDocument, I can order the document based on the image name, the names suffix is always a number starting from 00-00-00.

Day 1 – 4

This week was a “break” from the proof of concept App. The app is as good as I can make it within the limitations of Azure Function Apps and a final product will need to rely on a different approach, such as using container instances to run the code or an always on server to run the app.

This week I have researched “Motion” and how AI and ML figure out scene and shot changes in a video. Its all about the frames!

The video is actually analyzed frame by frame with a neural net trained to measure differences between a frame and the previous frame, small  changes equal the same scene or shot and larger changes a different shot or scene.

Even more exciting, I found the Google Cloud Services (GCS).

VI

There is a service called AutoML Video Intelligence(AutoML VI), an AI video service which does pretty much what I want.

GoogleCloud

I can upload videos to GCS storage and import the videos into  AutoML VI and train a model to recognise scenes in a video e.g. scrums and line-outs. The service can then be called via an API and will go through an entire video and produce a document listing the scenes found, the start and end times.

Video Intelligence

There is one disadvantage here and that is the time it will take to watch rugby videos and extract relevant scrum and line-out clips for uploading and training.

I will now need to discuss with my future boss and his clients, this exciting finding and persuade them to move from Azure cloud to GCS.

Final Stage

The next step is to complete a report of this project and prepare for the poster night.

Images

Some additional images of the action.

The Function App fired on my VS debugger, but not on Azure for some unknown reason.

FunctionApp

The Logic App with green success ticks.

LogicAppRan

An email arrived.

EmailArrived

The XML document.

XMLFile

 

Assignment 2: Week 1

Emerging Technologies, Critical Comparative Study ITIL, Cobit5

The start of assignment 2 for NET701.

We are a group of 3 students who have to investigate an emerging technology and using 2 frameworks, ITIL and Cobit5, we have to produce a report on the implementation of this technology into a business. The report is a joint effort.

What sounds like a report to a manager to show off the new tech. and discuss the benefits and implementation into the company.

This blog is an individual submission for the assignment.

Task 1

The first task was to choose an emerging technology to discuss.

What is an emerging technology?

https://i0.wp.com/www.activistpost.com/wp-content/uploads/2016/06/emerging-tech.jpg

According to Business Dictionary, emerging technology can be defined a:

“New technologies that are currently developing or will be developed over the next five to ten years, and which will substantially alter the business and social environment. These include information technology, wireless data communication, man-machine communication, on-demand printing, bio-technologies, and advanced robotics.”

Tech Republic lists the following as the top 10 emerging technologies in 2019:

  1. IoT
  2. Artificial Intelligence
  3. 5G
  4. Serverless Computing
  5. Blockchain
  6. Robotics
  7. Biometrics
  8. 3D Printing
  9. Virtual Reality/Augmented Reality
  10. Drones

We had a brainstorming session as a group and decided to use Biometrics as the emerging technology for our report.

https://www.cse.wustl.edu/~jain/cse571-11/ftp/biomet/fig4.jpg

Biometrics—including face, fingerprint, and retina scans—are becoming mainstream methods for verifying identity and can be used by a company for recognising its employees , e.g. for access control to a building.

https://d1902livswy8rb.cloudfront.net/dimg/800x800/dimg/biometrics_facial_recognition.jpg

Task 2

So what are ITIL and Cobit5?

They are frameworks or guiidelines a business can use to facilitate the effective implementation of a new technology into the organisation.

ITIL

According to Cherwell,

ITIL

“Information Technology Infrastructure Library (ITIL), is a  set of IT best practices designed to assist businesses in aligning their IT services with customer and business needs.”

The objectives of the ITIL framework includes delivering value, meeting customer needs and achieving business goals.

ITIL provides guidelines on how to implement and measure these objectives.

Cobit5

From Wikipedia:

“COBIT (Control Objectives for Information and Related Technologies) is a good-practice framework created by international professional association ISACA for information technology (IT) management and IT governance. COBIT provides an implementable “set of controls over information technology and organizes them around a logical framework of IT-related processes and enablers.”

The framework defines the generic processes for management of IT, with each process having an input, an output, key activities, objectives and performance measures.

https://www.simplilearn.com/ice9/article_detailed_content_img/cobit5-principles.jpg

Task 3

The final report will discuss the following topics:

  1. Identify and describe how the framework provides for the implementation of the emerging Technology (300 words)
  2. Determine how each framework can be used to identify infrastructure affected by the emerging technology (300 words)
  3. In each framework – describe how the framework facilitates the review of emerging technology? (300 words)

Task 4

we have to produce a Work Load Table

Task Task Description  Person Start Date/time End Date/time
Google Doc creation Create a shared doc for the assignment Stewart 17/10/2019 17/10/2019
Choose an emerging Technology Decide on a technology we are going to implement All 17/10/2019

11h00

17/10/2019

13h00

Blogs Weekly blog posts Individual Weekly

17/10/2019

Weekly

21/11/2019

Task 5

This is a link to our Google document that we will use to colaborate as a team and build the report.

https://docs.google.com/document/d/1KqvixdoUNJ9aTs9ju0rEHntCYIIlY7EF5jugAZpYqug/edit?usp=sharing

Week 9: 23 September

Day 1

The sticking point is turning into a mountain, converting video to images using an Azure serverless function.

I have found another library wrapper for FFMpeg, called NRico, but this has 2 versions, a free version using .Net fundamentals and a .Net core version for $75.

I will have a go building a Version 1 function app. and see what happens.

MS advisors got back to me  regarding Fridays errors with a version 1 function running Accord FFMpeg. They used my code snippets and built the App in their own environment, they have the same errors as me and are unable to run the function, at least I know its not just me and my computer. They have passed the problem higher up the chain.

Some more advice from MS, I can consider using a Container Instance to run the code. A container instance works in a logic App and can be event driven. An event can start a container instance which would then run the conversion code, the container stops when the code is finished. Billing is per second for the life of the container. One issue is the container instance needs a docker image to launch an instance.

After some research, this is a complicated solution to my problem and is a potential solution to the final product but a little too involved for my project.

Day 2

Further exploration into NReco and a few other FFMpeg wrappers that are available as NuGet packages with GitHub examples and support.

The biggest difficulty I have is getting the metadata out of a video file with these other wrappers.

I am unable to get the frame rate and duration data that I need to identify a specific frame in a video, this means my labeling code would not work to add a time to an event.

Using FFMpegCore, I was eventually able to get a frame rate, but there are issues with saving files to a container, saving to a URL is tricky.

CodeWorkedFPS25

I also experimented with FFMediaToolkit, with no success.

FFMediaFramemaker

Day 3

A little fiddling around with NReco and saving the images using Kudu services. Kudu Services is the environment in which the Function App resides and has a console and user interface which allows exploration of the directory structure of a Function, I can add folders to this directory and save files here.

I was able to get NReco working in a function App, it takes a URL as an input, the URL of a video in a container and converts a frame every second into a jpg.

The function “timed out” after 5 mins, the default running time of an App, unfortunately MS Azure didn’t work as expected the function ran incredibly slow, taking about 2 seconds to extract a frame and save an image, so not the scaling and speed I expected. This means that a Function App will never handle a 3Gb video as MS initially suggested it would. This also means that Accord FFMpeg will have the same problem in a Function.

Back to the drawing board, for the project I will convert the video to frames to images on a local machine and then upload the images to a container.

Day 4

For the project, I have abandoned video – image conversion on Azure.

I have combined the Conversion and Upload code into 1 app.

I have also changed the logic a little so now the app only reads every 25th (or 30th depending on the frame rate), previously I was reading every frame but only saving every 25th/30th, this saves loading 24 frames into memory, hopefully will achieve a speed advantage.

I ran the App with a 3GB video, this took 50 mins to convert and then upload the images to Azure.

upload

This would be an ideal place for investigating multi-threading and asynchronous tasks in future, convert and upload at the same time, instead of the current convert all and then upload all.

I have also managed to get a progress bar working on the image up-loader using threading and “BeginInvoke”, another learning experience.

Capture

I have no error checking yet and I can upload a video to a picture container! This will have to be changed so that the video goes to a video container obviously.

Final Words for a while

Next week starts a mid-semester 2 week study break.

I will take this opportunity to recharge my batteries a little. I will still be spending some days at the work place to work through the challenges I have encountered, but will be taking a break from blogging.

So, anticipate the next blog in week 12, after the start of the week on 14 October.