Archive

Posts Tagged ‘video’

Xtream-Codes IPTV Panel Review – Part 3: Updates and New Features for Version 2.4.2

March 8th, 2017 No comments

This is the third part of Xtream-Codes IPTV Panel review. IPTV Panel Professional Edition is a software to build your own IPTV Server from scratch. It supports all common Streaming Protocols as an Input and it is powered by FFmpeg & nginx. If you have not done so already, you may consider reading the first two parts:

  1. Review of Xtream-Codes IPTV Panel Professional Edition – Part 1: Introduction, Initial Setup, Adding Streams…
  2. Xtream Codes IPTV Panel Review – Part 2: Movie Data Editing, Security, Resellers, Users and Pricing Management

Here are the major changes since Part 2:

And part of the company’s announcement of the release:

Why choose IPTV Panel Pro?

IPTV Panel is powered by many Open Source Tools. These are only few reasons why we believe our software is different from our competitors:

Stability: Our software is powered by FFmpeg to do the Restreaming & Transcoding of your streams. FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they are designed by some standards committee, the community or a corporation.

Security: We provide an Addon who will increase the security of your Streams even more. We guarantee that it will be hard, even impossible for someone, to steal your streams.

Fast & Lightweight: We are using NGinx to serve the Streams to your Client’s, which is one of the fastest (if not the fastest) & most stable Web Server currently. Our solution can be used even in a simple VPS. Everything has been optimized & tuned.

True Load Balancer: When it comes to load balancing, the iptv panel has been made in such way that lets you add your own external servers. By adding a new external server into the current installation offers you many advantages. You can split the load, you can change the streaming flow, you can add/change servers of your Videos and much more

Statistics & Interface: We have built our solution in a way that you can find what you want fast and easy. No matter how many external servers you added, you have everything in one place, you can search, export Statistics, view Client’s Connections from one single interface.

Let’s got to work and test the new Version 2.4.2.

You will notice that the fingerprint addon is now free but it is limited to ONLY send one messages to a specific client and not massive as the pay version add-on does.

Complete Changelog: https://forum.xtream-codes.com/topic/3552-v242-released/

Before getting down-under, here are some very useful advices right in the beginning of Part 3:

Flood Setting (General Setting-Security Settings)

As you can see, the optimal setting for most users is 80 in Flood Limit, and 2 in Request Frequency. This setting will block ONLY customers with no valid or expired Lines! Their IP simply will be blocked and can be seen in BLOCK IP/CIDR Section later, where you are able to unblock as well if you want.

We also see the “XC Support ALLOW AUTO-LOGIN”. This you activate by putting YES in.

If you create a Ticket with XC Support, just tell in the Ticket your CMS Address (URL of your Panel) and inform them, that you activated Auto Login.(Don’t forget to set it to NO after your ticket is closed)

MAG BOXES and Co, like TVIP and BLOMC Boxes, Emulators, Clones and other Stalker Middleware Boxes!

Advice: Pay attention that you have the latest Firmware installed.

Many problems for inexperienced users of the Panel can occur, like the Box gets blocked, cannot load the Portal, or you do the most common mistake in choosing an image to lock the MagBox. (my opinion: inexperienced user’s should not lock the mag boxes with an image. If you have detect Reshare/IP Lock Plugin, you can lock him with IP-LOCK feature.)

Hint: Many clients are having trouble to put the Portal in their boxes, after they bought it, so I’ve included a useful video showing how to put a Portal in a MagBox for your customers.

Click to Enlarge

You can do as follows to unlock the MagBoxes:

Run on Database Manager the command:

Update: This feature was taken OFF from Xtream-Codes a couple of days ago… Not a good decision, more Tickets will be created as a result, I guess.

Look once a while into your SECURITY CENTER

Suspicious Files will be seen there, on all of your servers, as well as intruders or hacking attempts.

Click to Enlarge

The “DASHBOARD” has now the much asked for  Clients’s Connection Geo again, what we know from the older Version 1.

The meaning of the shown geographical connects is, it shows all CLOSED CONNECTIONS. (It would be more useful if it would show the actual real-time connects out of the countries, or is “show from yesterday” such important ? Maybe I am wrong..:))

Hint: After pressing the FIX & OPTIMIZE Button in Database Manager, all current so called “closed” connections are gone….(Guess, starting all over the counting of “all closed conections..still looking for a sense in this..)

Update: The function to install a manually downloaded Databank Backup is also gone now after a few more “pushed” Pre-Updates from Xtream Codes. (Opinion: Not a good idea at all! I think it has to be implemented again)

Before v.2.4.2

Click to Enlarge

And after Update to v.2.4.2

Click to Enlarge

The Clients’s Connection Geo

Click to Enlarge

The huge and most important Section of creating Sub-Resellers from a Reseller-Panel (Since Version 2.3.1)

I must say, why not before? Great idea, great feature! Giving your Reseller A the choice to create a Sub-Reseller B!

So far so good, if there would not be the pricing sector. I try to bring here light into the darkness.

Let’s start with “how to activate” this feature, for the Admin of the panel.

Here we go: MANAGE GROUP MEMBERS; edit the Group-Member of your choice

Then you see 4 Choices in Section Section SubResellers

  • Can Resellers in this Group create SubResellers
  • Credits Cost for Creating Subresellers
  • Can resellers alter the packages prices of their sub-resellers
  • Can Resellers select specific packages to assign to their subresellers

Now I will try to explain the most important part for Admin’s and also Resellers.

Who create a Sub-Reseller. The Margin, the pricing.

A lot of confusion about that, as most of the Admin’s also the Resellers’, who create a Sub-Reseller. Note: Only Reseller A can create a Sub-Reseller B, and that is then the end of the line, a Sub-Reseller can not create another Sub-Reseller.

Pricing, Margins and about Profits

We call here in the following examples with ADMIN (the Owner of the Panel), Reseller A (created from the Admin) and Sub-Reseller B (created from Reseller A).

Admin charges Reseller A with 1 Credit / 1 Euro.

Reseller A creates a Sub-Reseller B, and now Reseller A sells Credits to Sub-Reseller B, right? But for sure Reseller A wants to make a profit, remember, Reseller A pays 1Credit/1Euro already, so his created Sub-Reseller B should be charged more than 1 Euro for 1 Credit, right? The easy way for Reseller A would be to calculate in percentage, meaning: If he wants 50% Profit, he has to charge Sub-Reseller B 1.50 Euros for 1 Credit.

Other way, if the Admin charges the Reseller A 5 Euros for 1 Credit, then Reseller A could theoretically charge every price what is over his own price of 5 Euros.
Example: 1 Month – 1 Credit (Reseller A’s price is 5 Euro, he charges the Sub-Reseller B 7 Euros).

I hope that brings a little light in Reseller-SubResellers pricing politics.

Here’s what the official text says about this all:

We prepared a Subreseller system for you, and to prevent any downtime, we just applied the new system, in all the current v2.3.1 panels. If you are reading this, and you have the new version v2.3.1, you should have the new system embed.

This system gives the ability to groups where the Reseller status is ON, to be able to make their own reseller which we call subreseller.A subreseller has similar features and abilities like the Main Reseller, with the difference that his Users, Credits & Packages are being controlled by his owner.
Features

Reseller can make their own resellers (subresellers)
Resellers can remove some of the packages for their subresellers
Resellers can adjust different credit costs for any of the packages that are assigned by the administrator
Subresellers users & credits, are being controlled by the resellers who made them
Administrator can edit the permissions from the Admin Panel -> Manage Member Groups
Administrators can now edit the Packages and apply different credit costs per Reseller (the current system is per group). Now he can do both. ( Manage Registered Users -> Edit -> Assign Packages )

Reseller A sees this in his Panel:

New “TOOLS” Section (Very Useful)

Click to Enlarge

Click to Enlarge

Click to Enlarge

Many new features, like changing Streams DNS old2new, transfer Live-Streams from a server of your choice to another; fix Vod’s names (the VOD name should be correct and exactly match), Reset all ISPs restrictions for all your users (in case you activated IP Lock before, ex: customer at home with box on ISP A, his mobile phone on ISP B)

Update IMDB Details (needs some overhaul, not correct working in tests)

Clear different kind of Log’s, MagBox events and more.

Conclusion: Highly Useful

Movies Section

I know definitely now, like I mentioned already in Part 1 and 2, that the developers are not great fan’s with movies. There is still the almost whole range of movie editing section missing, and I would also like to see, that a Movie and a Stream could directly being assigned into a bouquet.

By the way…I never really managed to sort the categories out. Meaning that a category could be moved around of choice, up or down. At first place, at the end. And so on.

There is a section MANAGE CATEGORIES, but I must confess, I never came clear with this. Sorting categories works by pressing one “category” down, and move it up or down. Results are shown only in Magboxes later. VLC & Co? No chance at all. All mixed up. Stream Tools seemed promising, But somehow I missed here something, I guess. For me useful only in deleting streams and even mass delete is of no problem.

The ALL-NEW BOOST Setting in v. 2.4.2 (ATTN. ONLY FOR MAIN-SERVER)

To go there, MANAGE SERVERS, edit Main…Performance Settings, activate BOOST PERFORMANCE to YES.

Requirements to activate this BOOST

The Bad News: Totally EMPTY MAIN SERVER, not one single Stream on it, and no VOD, completely empty!
The good News: Before v.2.4.2 the recommendation was a 40-core Beast! You read it right, a “cheap” 40-core EMPTY Main was necessary, to enjoy the boost.

This is not necessary anymore, since update to 2.4.2! A minimum 8-core to 16-core will do the job now, if you should decide to use this boost, yhat results in more stability, and even faster stream connects, panel and on client side.

My personal recommendation is, minimum 32GB RAM with a 16-core server.

This gave me good results in extensive testings.

The ALL-NEW GUI of the Dashboard

Click to Enlarge

Click to Enlarge

Click to Enlarge

As we can see in the first picture, the usage of the network is continuous measured, and absolutely exact! In case of overloading your bandwidth, you will be warned about.

For Security Lovers.

As you see, with Xtream-Codes Backups Cronjob’s, you will be safe and sound, always. You even will be warned if your peer uses a HIGHLY UNSAFE cracked Panel Version v.1 with YOU BET…BACKDOORS!

Pros

  1. Amazing new features, too much to count even, everything is possible!
  2. Faster then ever, more stable then ever before
  3. Very fast reconnects of streams, with no kind of interrupts for clients.
  4. Highly flexible kind of configurations possible
  5. Compared to competitors, very cheap prices
  6. Brilliant Security settings
  7. Great and responsive Support (Thanks to Despoina and colleagues)
  8. Easy understandable GUI (if you invest a little time in the beginning)
  9. Brilliant and superfast transcoding
  10. Xtream-Codes even creates new long awaited Plugin for E2 (soon released)

Cons

  1. No assignment of streams or Vod’s direct into a bouquet till now possible
  2. Categories sections should be more flexible, regarding sorting the Lists
  3. NO REAL MOVIE EDITOR SECTION! Still….

Conclusion

Xtream-Codes is just on the jump to be a big player in the IPTV scene. It is to hope that the developers will go on and listen to the needs of their clients, like they do till now. I want to thank the Developers and the whole XC-Team for the support I received during the last months. You do an amazing job, and it was my pleasure to be a part of Xtream Codes.

Netgem SoundBox is a Speaker with Built-in Set-Top Box Features

February 25th, 2017 1 comment

Netgem, a company specializing in Connected TV & Home, has sent a press release about profit growth, and two new “innovations int its smart home roadmap” with voice control with Amazon, and SoundBox, a connected speaker which embeds set-top box technology.


Netgem does not sell directly to consumers, but instead sell its products and solutions to service providers, and they have not provided a great deal of technical details. But we still know the company has improved Netgem Home Platform, a cloud service allowing the deployment and management of multi-screen features, content discoverability, with support for multi-room, multi-source music service through technology from Voxtok.

SoundBox will then offer both video and audio service, and be controlled by voice using Amazon Alexa. The SoundBox will be customized for each Telco to adapt to the needs of local markets.

A few more details may eventually surfaced on Netgem’s SoundBox product’s page. They’ll also demonstrate their solutions at Mobile World Congress 2017.

Embedded Linux Conference & OpenIoT Summit 2017 Schedule

February 4th, 2017 1 comment

The Embedded Linux Conference 2017 and the OpenIoT Summit 2017 will take place earlier than last year, on February  20 – 23, 2017 in Portland, Oregon, USA. This will be the 12th year for ELC, where kernel & system developers, userspace developers, and product vendors meet and collaborate. The schedule has been posted on the Linux Foundation website, and whether you’re going to attend or not, it’s always informative to check out the topics.

So as usual, I’ll make a virtual schedule for all 5 days.

Monday, February 20

For the first day, the selection is easy, as choices are limited, and the official first day it actually on Tuesday. You can either attend a full-day paid training sessions entitled “Building A Low Powered Smart Appliance Workshop“, and the only session that day:

  • 14:30 – 15:20 – Over-the-air (OTA) Software Updates without Downtime or Service Disruption, by Alfred Bratterud, IncludeOS

Millions of consumers are at risk from security vulnerabilities caused by out-of-date software. In theory all devices should update automatically, but in practice, updating is often complicated, time-consuming and requires manual intervention from users. IncludeOS is a unikernel operating system that enables over-the-air (OTA) software updates of connected devices without downtime or service disruption.

The talk starts with a brief introduction to unikernels, their capabilities and how they can be very beneficial for IoT products from security, performance and operational perspectives. Then we give an overview of the IncludeOS Live Update functionality, which we use to demonstrate an atomic update of a device using Mender.io.

Tuesday, February 21

  • 10:30 – 11:20 – Bluetooth 5 is here, by Marcel Holtmann, Open Source Technology Center, Intel

The next version of Bluetooth has been released just a few month ago. This presentation gives an introduction to Bluetooth 5 and its impacts on the ecosystem. It shows new and exciting use cases for low energy devices and IoT with the focus on Linux and Zephyr operating systems.

With Bluetooth 5, the wireless technology continues to evolve to meet the needs of the industry as the global wireless standard for simple and secure connectivity. With 4x range, 2x speed and 8x broadcasting message capacity, the enhancements of Bluetooth 5 focus on increasing the functionality of Bluetooth for the IoT. These features, along with improved interoperability and coexistence with other wireless technologies, continue to advance the IoT experience by enabling simple and effortless interactions across the vast range of connected devices.

  • 11:30 – 12:20 – Embedded Linux Size Reduction Techniques, by Michael Opdenacker, Free Electrons

Are you interested in running Linux in a system with very small RAM and storage resources? Or are you just trying to make the Linux kernel and its filesystem as small as possible, typically to boot faster?

This talk will detail approaches for reducing the size of the kernel, of individual applications and of the whole filesystem. Benchmarks will you show how much you can expect to save with each approach.

  • 14:00 – 14:50 – Moving from IoT to IIoT with Maker Boards, Linux, and Open-Source Software Tools, by Matt Newton, Opto 22

In this session, developers will learn how to use the open-source tools, maker boards, and technology they’re already familiar with to develop applications that have the potential to deliver a massive positive impact on society. There are billions of devices–sensors, I/O, control systems, motors, pumps, drives–siloed behind proprietary control and information systems, waiting to be tapped into. This workshop is geared towards teaching the developer community how to use the tools they’re already familiar with to access, monitor, and manage these assets to create a potentially huge positive impact on our way of life.

  • 15:00 – 15:50 – Debugging Usually Slightly Broken (USB) Devices and Drivers, by Krzysztof Opasiak, Samsung R&D Institute Poland

USB is definitely the most common external interface. Millions of people are using it every day and thousands of them have problems with it. Driver not found, incorrect driver bound, kernel oops are just examples of common problems which we are all facing. How to solve them or at least debug? If you’d like to find out, then this talk is exactly for you!

We will start with a gentle introduction to the USB protocol itself. Then standard Linux host side infrastructure will be discussed. How drivers are chosen? How can we modify matching rules of a particular driver? That’s only couple of questions which will be answered in this part. Final part will be an introduction to USB communication sniffing. Krzysztof will show how to monitor and analyze USB traffic without expensive USB analyzers.

  • 16:20 – 17:10 – SDK in the Browser for Zephyr Project, by Sakari Poussa, Intel

Starting a development for embedded IoT system can be a tedious task, starting with the tools and SDK installations. You also need to have proper operating system, cables and environment variables set up correctly in order to do anything. This can take hours if not days. In this tutorial, we present an alternative, fast and easy way to start IoT development. All you need is your Zephyr board, USB cable and Web Browser. The Zephyr will be running JavaScript Runtime for Zephyr including a “shell” developer mode and Web USB. The Browser has the IDE where you can edit and download code to your board. No compiling, flashing or rebooting is required. During the tutorial, we have few boards available and participants can start developing applications for zephyr in 5 minutes.

  • 17:20 – 18:10 – Fun with Zephyr Project and BBC micro:bit, by Marcel Holtmann, Open Source Technology Center, Intel

This presentation shows how Zephyr empowers the BBC micro:bit devices and its Bluetooth chip to do fun things.

  • 18:15 – 19:00 – Yocto Project & OpenEmbedded BoF, by Sean Hudson, Mentor

Got a comment, question, gripe, praise, or other communication for the Yocto Project and/or OpenEmbedded technical leaders? Or maybe you just want to learn more about these projects and their influence on the world of embedded Linux? Feel free to join us for an informal BoF.

Wednesday, February 22

  • 10:40 – 11:30 – Journey to an Intelligent Industrial IOT Network, by Giuseppe (Pino) de Candia, Midokura

There are 66 million networked cameras capturing terabytes of data. How did factories in Japan improve physical security at the facilities and improve employee productivity? With the use of open systems, open networking, open IOT platforms of course!

Edge Computing reduces possible kilobytes of data collected per second to only a few kilobytes of data transmitted to the public cloud every day. Data is aggregated and analyzed close to sensors so only intelligent results need to be transmitted to the cloud while non-essential data is recycled. The system captures all flow information, current and historical.

Pino will draw from real IIOT use cases and discuss the variety of operations and maintenance tool to support proactive policy-based flow analysis for edge computing or fog nodes enabling IT and OT end to end visibility from a network perspective.

  • 11:40 – 12:30 – SecurityPI: IronClad your Raspberry Pi, by Rabimba Karanjai

Raspberry Pi has garnered huge interest in last few years and is now one of the most popular Linux boards out there sparking all kinds of DIY projects. But most of these function with the default settings and connect to the Internet. How secure is your Pi? How easy is it for someone to take over and make it part of a botnet or sneak peek on your privacy?

In this talk Rabimba Karanjai will show how to harden the security of a Raspberry Pi 3. He will showcase different techniques with code examples along with a toolkit made specifically to do that. This cookbook will harden the device and also provide a way to audit and analyze the behavior of the device constantly. After all, protecting the device finally protects us all, by preventing another dyndns DDOS attack.

  • 14:00 – 14:50 – IoTivity-Constrained: IoT for Tiny Devices, by Kishen Maloor, Intel Corporation

The IoT will be connected by tiny edge devices with resource constraints. The IoTivity-Constrained project is a small-footprint implementation of the Open Connectivity Foundation’s (OCF) IoT standards with a design that caters to resource-constrained environments. It is lightweight, maintainable and quickly customizable to run on any hardware-software deployment.

This talk will present IoTivity-Constrained’s architecture, features, APIs, and its current integration with a few popular real-time operating systems. It will end with a discussion of IoTivity-Constrained’s adaptation for the Zephyr RTOS.

  • 15:00 – 15:50 – RIOT: The Friendly Operating System for the IoT (If Linux Won’t Work, Try RIOT), by Thomas Eichinger, RIOT-OS

This presentation will start with RIOT’s perspective on the IoT, focusing on CPU- and memory-constrained hardware communicating with low-power radios. In this context, similarly to the rest of the Internet, a community-driven, free and open source operating system such as RIOT is key to software evolution, scalability and robustness. After giving an overview to RIOT’s overall architecture and its modular building blocks, the speaker will describe in more detail selected design decisions concerning RIOT’s kernel, hardware abstraction and network stack. Furthermore, the talk will overview the development and organizational processes put in place to help streamline the efforts of RIOT’s heterogeneous community. The presentation will end with an outlook on upcoming features in RIOT’s next releases and longer-term vision.

  • 16:20 – 17:10 – Graphs + Sensors = The Internet of Connected Things, by William Lyon, Neo4j

There is no question that the proliferation of connected devices has increased the volume, velocity, and variety of data available. Deriving value and business insight from this data is an ever evolving challenge for the enterprise. Moving beyond analyzing just discrete data points is when the real value of streaming sensor data begins to emerge. Graph databases allow for working with data in the context of the overall network, not just a stream of values from a sensor. This talk with cover an architecture for working with streaming data and graph databases, use-cases that make sense for graphs and IoT data, and how graphs can enable better real-time decisions from sensor data. Use cases covered will include data from oil and gas pipelines and the transportation industry.

Thursday, February 23

  • 9:00 – 9:50 – Android Things: High Level Introduction, by Anisha Dattatraya & Geeta Krishna, Intel Corporation

An overview of the basic concepts behind Android things and its structure and components is presented. Upon completion of this session, you should have a good overview of how Android Things brings simplicity to IoT software and hardware development by providing a simple and secure deployment and update model. This presentation provides the context needed for the Android Things Tutorial and other deep dive sessions for Android Things.

  • 10:00 – 10:50 – 2017 is the Year of the Linux Video Codec Drivers, by Laurent Pinchart, Ideas on Board

Codecs have long been the poor relation of embedded video devices in the Linux kernel. With the embedded world moving from stateful to stateless codecs, Linux developers were left without any standard solution, forcing vendors and users to resort to proprietary APIs such as OpenMAX.

Despair no more! Very recent additions to V4L2 make it possible to support video codecs with standard Linux kernel APIs. The ChromeOS team has proved that viable solutions exist for codecs without resorting to the proprietary options. This presentation will explain why video codecs took so long to properly support, and how the can be implemented and used with free software and open APIs.

  • 11:10 – 12:00 – Embedded Linux – Then and Now at iRobot, by Patrick Doyle, iRobot

Mr. Doyle will review the history of the use of embedded Linux at a commercial company (iRobot) and discuss the challenges faced (and overcome) then and now. While home routers and WiFi Access Point developers have enjoyed the benefits (and risks) of deploying Linux based products, that has not always been the case for other products. With the advent of low cost cell phone processors and vendor support for Linux, it is now possible to embed a Linux based solution in a consumer retail product such as a vacuum cleaner, minimizing risk and development time in the process.

  • 12:10 – 13:00 – Mainline Linux on AmLogic SoCs, by Neil Armstrong, BayLibre

Inexpensive set-top boxes are everywhere and many of them are powered by AmLogic SoCs. These chips provide 4K H.265/VP9 video decoding and have fully open source Linux kernel and U-boot releases. Unfortunately most of the products based on these devices are running an ancient 3.10 Android kernel. Thankfully AmLogic has put a priority on supporting their chips in the mainline Linux kernel.

Neil will present the challenges and benefits to pushing support for these SoCs upstream, as well as the overall hardware architecture in order to understand the Linux upstreaming decisions and constraints. He will also detail the future development plans aiming to offer a complete experience running an Upstream Linux kernel.

  • 14:30 – 15:20 – OpenWrt/LEDE: When Two become One, by Florian Fainelli, Broadcom Ltd

OpenWrt is a popular Linux distribution and build system primarily targeting the Wi-Fi router/gateway space. The project has been around for more than 12 years, but has recently experienced a schism amongst the developers over various issues.  This resulted in the formation of the LEDE project.  This split has caused confusion among the community and users. This presentation will cover what OpenWrt/LEDE projects are, what problems they are solving in the embedded Linux space, and how they do it differently than the competition. We will specifically focus on key features and strengths: build system, package management, ubus/ubox based user space and web interface (LuCI). We will demonstrate a few typical use cases for the audience. Finally, the conclusion will focus on the anticipated reunification of the two projects into one and what this means for the community and the user base.

  • 15:30 – 16:20 – Unifying Android and Mainline Kernel Graphics Stack, by Gustavo Padovan, Collabora Ltd.

The Android ecosystem has tons of out-of-tree patches and a good part of them are to support Graphics drivers. This happened because the Upstream Kernel didn’t support everything that is needed by Android. However the Mainline Graphics Stack has evolved in the last few years and features like Atomic Modesetting and Explicit Fencing support are making the dream of running Android on top of it possible. In other words, we will have Android and Mainline Kernels sharing the same Graphics stack!

This talk will cover what has been happening both on Android and Mainline Graphics Stacks in order to get Android to use the Upstream Kernel by default, going from what Android have developed to workaround the lack of upstream support to the latest improvements on the Mainline Graphics Stack and how they will fit together.

  • 16:30 – 17:20 – Developing Audio Products with Cortex-M3/NuttX/C++11, by Masayuki Ishikawa, Sony

Sony released audio products with Cortex-M3 in late 2015. Considering development efficiency, code reusability, feature enhancements and training costs, we decided to port POSIX-based open source RTOS named NuttX to ON Semiconductor’s LC823450 by ourselves, modified the NuttX for fast ELF loading, implemented minimum adb (Android debug bridge) protocols for testing purpose, DVFS in autonomous mode with a simple CPU idle calculation, wake_lock and stack trace which are popular in Linux/Android worlds. Middleware and Applications were developed in C++11 with LLVM’s libc++ which are also popular for large software systems. To debug the software, we implemented NuttX support for OpenOCD so that we can debug multi threaded applications with gdb. In addition, we used QEMU with the NuttX to port bluetooth stack and in-house GUI toolkit and finally got them work before we received LC823450 FPGA.


That’s all. I had to make choice, and did not include some sessions I found interested due to scheduling conflicts such as “Comparing Messaging Techniques for the IoT” by Michael E Anderson, The PTR Group, inc, and “Improving the Bootup Speed of AOSP” by Bernhard Rosenkränzer, Linaro.

You’ll need to register and pay an entry fee if you want to attend the Embedded Linux Conference & OpenIoT Summit:

  • Early Registration Fee: US$550 (through January 15, 2017)
  • Standard Registration Fee: US$700 (January 16, 2017 – February 5, 2017)
  • Late Registration Fee: US$850 (February 6, 2017 – Event)
  • Academic Registration Fee: US$175 (Student/Faculty attendees will be required to show a valid student/faculty ID at registration.)
  • Hobbyist Registration Fee: US$175 (only if you are paying for yourself to attend this event and are currently active in the community)

Targus Universal DisplayLink Docking Stations Support Up to Six 4K Monitors via a Single USB Cable

February 3rd, 2017 7 comments

USB type C connectors are becoming more and more common and beside transmitting data and power, some devices also support video over USB which requires a dock, and if you have some serious display requirements, Targus docking stations over USB-C or USB 3.0 might be what you are looking for, as they support two 4K monitors at the same time thanks to their multiple HDMI 2.0, DisplayPort 1.2a and DVI outputs, and you can even daisy-chain three docking stations over USB 3.0 type A cables in order to control six 4K monitors from one USB port.

Targus Dock 160 – Click to Enlarge

Targus has several models, but let’s check out the specifications of their “USB 3.0 DV4K DOCK160USZ dock station” pictured above:

  • Chipset – DisplayLink DL-6950
  • Video Output Ports – 2x HDMI 2.0 ports, 2x DisplayPort 1.2a ports supporting up to dual 4K Ultra HD video @ 4096×2160 60Hz 24 bpp
  • Audio – 1x 3.5 mm audio in/out jack for microphone, headphone or speakers, 6-Channel (5.1) audio over HDMI/DisplayPort
  • USB
    • 1x USB-C port (USB 3.0 data only)
    • 4x USB 3.0 SuperSpeed ports (1x powered for fast device charging)
    • Input from PC – USB 3.0 micro B port marked “UP”
  • Connectivity – 1x Gigabit Ethernet port
  • Misc – Integrated lock slot accommodates standard industry-security locks to safeguard equipment
  • Power Supply – 19V (45Watt) power supply

The dock comes with a detachable one meter USB-µB/M to A/M cable, and a 45Watt AC power supply. It works with Windows 7/8/10, Chrome OS, Mac OS X 10.8 or later, Linux, and Android 5.0/5.1 or greater operating systems. Beside controlling two displays, you can also attach USB 3.0 devices, access the network through Ethernet, and charge the input device (computer/laptop/smartphone). The company also offers Dock 410 docking station using USB-C input instead, still supporting up to  two 4K monitors, but with two DisplayPorts, one HDMI, and one DVI-D, and featuring a 65 Watts power supply. I found about their solution through Charbax video below at DisplayLink Booth at CES 2017. The video is 17 minutes long, and covers multiple DisplayLink solutions. The part related to the dock starts at 1:26.

It seems fairly complicated to find out whether a dock will work with your laptop, as some specific USB feature may be required, and you’d better ask the seller or to the company whether it will really be compatible with computer, laptop, or mobile device and which limitation you should expect. I’ve included some customers questions from Targus website to give an idea of what I mean:

Q: This has 2 DP1.2 ports, do these ports also support MST, such that I could split each port using a MST port splitter and drive 4 standard 1920×1200 displays?

A: Great question! Currently the DOCK160USZ does not support MST on either DP1.2 port. It is being considered by our product development team but to date we have yet to find any Intel based graphics that support more than three (two external and one local) monitor.

Q: With what type of Cable will connect to my laptop (my laptop has TB3); Will it charge my laptop thru the connection cable as well, Or I still have to charge laptop separately

A:  To connect it your laptop via TB3, you may use a USB Type-A to USB Type-C adapter such as the Targus ACC923USX adapter. The DOCK160USZ is not designed to charge the host PC via TB3. The Targus DOCK410USZ can power and charge up to 60W via the TB3 port and is recommended for most TB3 applications.

Q: Will DOCK130USZ comes with a USB-3.0 C cable to connect to a dell XPS 9365, and would it power the laptop?

A: The DOCK130USZ comes with a USB 3.0 Type Micro B to A cable. While USB 3.0 can often charge certain devices (i.e. a smartphone), it is not designed to charge the host PC. The Targus DOCK410USZ however, should power and charge the Dell XPS 9365 on the DisplayPort Alternate Mode port with power (right side) and may power and charge on the Thunderbolt 3 port (left side).

So you have to carefully think about your use case to find out if it can meet your needs.

Targus Dock 160 is sold on Amazon US for $249.99, and Dock 410 with USB-C input port for $188.91.If you only want to drive a single 4K display from a USB port, and don’t need any of the other features, there are much cheaper solutions.

FOSDEM 2017 Open Source Meeting Schedule

January 31st, 2017 4 comments

FOSDEM (Free and Open Source Software Developers’ European Meeting) is a 2-day free event for software developers to meet, share ideas and collaborate that happens on the first week-end of February, meaning it will take place on February 4 & 5, 2017 this year. FOSDEM 2017 will features 608 speakers, 653 events, and 54 tracks, with 6 main tracks namely: Architectures, Building, Cloud, Documentation, Miscellaneous, and Security & Encryption.
I won’t be there, but it’s always interesting to look at the schedule, and I made my own virtual schedule focusing especially on talks from “Embedded, mobile and automotive” and “Internet of Things” devrooms.

Saturday 4, 2017

  • 11:00 – 11:25 – Does your coffee machine speaks Bocce; Teach your IoT thing to speak Modbus and it will not stop talking, by Yaacov Zamir

There are many IoT dashboards out on the web, most will require network connection to a server far far away, and use non standard protocols. We will show how to combine free software tools and protocols from the worlds of IT monitoring, Industrial control and IoT to create simple yet robust dashboards.

Modbus is a serial communication protocol developed in 1979 for use with programmable logic controllers (PLCs). In simple terms, it is a method used for transmitting information over serial lines between electronic devices., it’s openly published, royalty-free, simple and robust.

Many industrial controllers can speak Modbus, we can also teach “hobby” devices like Arduino boards and ESP8266 to speak Modbus. Reliable, robust and simple free software Modbus client will be used to acquire the metrics from our device, then the metrics will be collected and sent to Hawkular and Grafana to store and visualize our data.

  • 11:30 – 11:55 – Playing with the lights; Control LIFX WiFi-enabled light bulbs, by Louis Opter

In this talk we’ll take a close look at a one of the “smart” (WiFi-connected) light-bulbs available on the market today. The bulbs expose a small API over UDP that I used to run an interface on a programmable buttons array. We will see how topics like reverse engineering, security, licensing, “self-hosting” and user experience came into play.

monolight is an user interface to control LIFX WiFi-enabled light bulbs. monolight runs on a programmable button array; it is written in Python 3.6 (to have type annotations and asyncio), and it interfaces with the bulbs through a more complex daemon written in C: lightsd.

This talk will start with a live demo of the button grid remotely controlling the light bulbs. We will then explore how it works and some of the motivations behind it (network isolation, trying to not depend on the “cloud”, reliability, user-experience). Finally, we will look into what kind of opportunities even more open IoT products could bring, and open leave the place to Q&A and discussion.

  • 12:00 – 12:30 – Creating the open connected car with GENIVI, by Zeeshan Ali, GENIVI Development Platform (GDP) technical lead

A number of new components have matured in GENIVI to provide a true connected car experience. A couple of them are key connectivity components; namely SOTA (Software Over the Air) and RVI (Remote Vehicle Interface). This talk will discuss both these components, how they work together, the security work done on them and their integration into the GENIVI Development Platform.

This talk will also run down the overall status of GENIVI’s development platform and how it can enable an automotive stack to speak not just with the cloud, but with IoT devices via Iotivity interface.

  • 12:30 – 13:00 – Making Your Own Open Source Raspberry Pi HAT; A Story About Open Source Harware and Open Source Software, by Leon Anavi

This presentation will provide guidelines how to create an open source hardware add-on board for the most popular single board computer Raspberry Pi using free and open source tools from scratch. Specifications of Raspberry Pi Foundation for HAT (Hardware Attached on Top) will be revealed in details. Leon Anavi has been developing an open source Raspberry Pi HAT for IoT for more than a year and now he will share his experience, including the common mistakes for a software engineer getting involved in hardware design and manufacturing. The presentation is appropriate for anyone interested in building entirely open source products that feature open source hardware and open source software. No previous experience or hardware knowledge is required. The main audience are developers, hobbyists, makers, and students. Hopefully the presentation will encourage them to grab a soldering iron and start prototyping their DIY open source device.

  • 13:00 – 13:25 – Building distributed systems with Msgflo; Flow-based-programming over message queues, by Jon Nordby

MsgFlo is a tool to build systems that span multiple processes and devices, for instance IoT sensor networks. Each device acts as a black-box component with input and output ports, mapped to MQTT message queues. One then constructs a system by binding the queues of the components together. Focus on components exchanging data gives good composability and testability, both important in IoT. We will program a system with MsgFlo using Flowhub, a visual live-programming IDE, and test using fbp-spec.

In MsgFlo each process/device is an independent participant, receiving data on input queues, and sending data on output queues. A participant do not know where the data comes from, nor where (if anywhere) the data will go. This strong encapsulation gives good composability and testability. MsgFlo uses a standard message queue protocol (MQTT or AMQP). This makes it easy to use with existing software. As each participant is its own process and communicate over networks, they can be implemented in any programming language. Convenience libraries exist for C++, Python, Arduino, Node.js and Rust. On top of the message queue protocol, a simple discovery mechanism is added. For existing devices without native Msgflo support, the discovery messages can be sent by a dedicated tool.

  • 13:30 – 13:55 – 6LoWPAN in picoTCP, and how to support new Link Layer types, by Jelle De Vleeschouwer

6LoWPAN enables, as the name implies, IPv6-communication over Low-power Wireless Personal Area Networks, e.g. IEEE802.15.4. A lot of resources are available to allow 6LoWPAN over IEEE802.15.4, but how can one extend the 6LoWPAN feature-set for the use with other link layer types? This talk will cover the details about a generic implementation that should work with every link layer type and how one can provide support for ones own custom wireless network. The goal is to give quite a technical and detailed talk with finally a discussion about when 6LoWPAN is actually useful and when is it not.

Last year, as a summer project, a generic 6LoWPAN adaption layer was implemented into picoTCP, an open source embedded TCP/IP-stack developed by Altran Intelligent Systems, with an eye on the IoT. The layer should also be able to allow multiple link-layer extensions, for post-network-layer processing. This could be used for mesh-under routing, link layer security, whatever you want. This talk will cover how one can take advantage of these features and caveats that come with it.

  • 14:00 – 15:00 – Groking the Linux SPI Subsystem by Matt Porter

The Serial Peripheral Interconnect (SPI) bus is a ubiquitous de facto standard found in many embedded systems produced today. The Linux kernel has long supported this bus via a comprehensive framework which supports both SPI master and slave devices. The session will explore the abstractions that the framework provides to expose this hardware to both kernel and userspace clients. The talk will cover which classes of hardware supported and use cases outside the scope of the subsystem today. In addition, we will discuss subtle features of the SPI subsystem that may be used to satisfy hardware and performance requirements in an embedded Linux system.

  • 15:00 – 15:25 – Frosted Embedded POSIX OS; a free POSIX OS for Cortex-M embedded systems, by Brabo Silvius

FROSTED is an acronym that means “FRee Operating System for Tiny Embedded Devices”. The goal of this project is to provide a free kernel for embedded systems, which exposes a POSIX-compliant system call API. In this talk I aim to explain why we started this project, the approach we took to separate the kernel and user-space on Cortex-M CPU’s without MMU, and showcase the latest improvements on networking and supported applications.

  • 15:30 – 16:00 – How to Build an Open Source Embedded Video Player, by Michael Tretter

Video playback for embedded devices such as infotainment systems and media centers demands hardware accelerators to achieve reasonable performance. Unfortunately, vendors provide the drivers for the accelerators only as binary blobs. We demonstrate how we built a video playback system that uses hardware acceleration on i.MX6 by using solely open source software including Gstreamer, Qt QML, the etnaviv GPU driver, and the coda video decoder driver.

The Qt application receives the video streams from a Gstreamer pipeline (using playbin). The Gstreamer pipeline contains a v4l2 decoder element, which uses the coda v4l2 driver for the CODA 960 video encoder and decoder IP core (VPU in the Freescale/NXP Reference Manual), and a sink element to make the frames available to the Qt application. The entire pipeline including the Gstreamer to Qt handover uses dma_bufs to avoid copies in software.This example shows how to use open source drivers to ease the development of video and graphics applications on embedded systems.

  • 16:00 – 16:25 – Project Lighthouse: a low-cost device to help blind people live independently, by David Teller

The Word Health Organization estimates that more than 250 million people suffer from vision impairment, 36 millions of them being entirely blind. In many cases, their impairment prevents them from living independently. To complicate things further, about 90% of them are estimated to live in low-income situations.

Project Lighthouse was started by Mozilla to try and find low-cost technological solutions that can help vision-impaired people live and function on their own. To this date, we have produced several prototypes designed to aid users in a variety of situations. Let’s look at some of them. This will be a relatively low-tech presentation.

  • 16:30 – 16:55 – Scientific MicroPython for Microcontrollers and IoT, IoT programming with Python, by Roberto Colistete Jr

MicroPython is a implementation of Python 3 optimised to run on a microcontroller, created in 2013 by the Physicist Damien P. George. The MicroPython boards runs MicroPython on the bare metal and gives a low-level Python operating system running interactive prompt or scripts.

The MicroPython boards currently use 32 bit microcontrollers clocked at MHz and with RAM limited to tens or hundreds of Kbytes. These are the microcontroller boards with official MicroPython support currently in the beginning 2017 : Pyboard, Pyboard Lite, WiPy 1/2, ESP8266, BBC Micro:bit, LoPy, SiPy, FiPy. They cost between USD3-40, are very small and light, about some to tens of mm in each dimension and about 5-10 g, have low power consumption, so MicroPython boards are affordable and can be embedded in almost anything, almost anywhere.

Some hints will be given to the FOSS community to be open minded about MicroPython : be aware that MicroPython exists, MicroPython is a better programming option than Arduino in many ways, MicroPython boards are available and affordable, porting more Python 3 scientific modules to MicroPython, MicroPython combines well with IoT.

  • 17:00 – 17:25 – Iotivity from devices to cloud; how to make IoT ideas to real using FLOSS, by Philippe Coval & Ziran Sun (Samsung)

The OCF/IoTivity project aims to answer interoperability issues in the IoT world from many different contexts to accommodate a huge range devices from microcontrollers, to consumer electronics such as Tizen wearables or your powerful GNU/Linux system The vision of Iotivity is not restricted to ad hoc environment but also can be connected to Internet and make the service easily accessible by other parties. With cloud access in place, usage scenarios for IoT devices can be enriched immensely.

In this talk we walk through the steps on how to practically handle IoT use cases that tailored towards various topologies. To introduce the approach used in IoTivity, we first give a detailed background introduction on IoTivity framework. Then we will present a demo that shows a few examples, from setting up a basic smart home network to accessing the IoT resource via a third party online service. Challenges and solutions will be addressed from development and implementation aspects for each step of the demo.

We hope this talk will inspire developers to create new IoT prototypes using FLOSS.

  • 17:30 – 17:55 – Open Smart Grid Platform presentation, an Open source IoT platform for large infrastructures, by Jonas van den Bogaard

The Open Smart Grid Platform is an open source IoT platform. The open smart grid platform is a generic IoT platform, built for organizations that manage and/or control large-scale infrastructures. The following use cases are now readily available: smart lighting, smart metering, tariff switching, and microgrids. Furthermore the following use-cases are in development: distribution automation, load management and smart device management. The architecture of the open smart grid platform is modular and consists multiple layers.

The open smart grid platform is highly unique for embracing the open source approach and the following key features:

  • Suitable for scalable environments delivering high performance
  • High availability and multitenant architectures
  • Built with security by design and regularly tested.
  • It has a generic architecture. More use cases and domains are easily added to the platform.
  • The open smart grid platform is based on open standards where possible.

We believe the platform is interesting for developers who have interest in working on use-cases for Smart Cities, Utility Companies and other large-scale infrastructure companies.

  • 18:00 – 19:00 – AGL as a generic secured industrial embedded Linux; factory production line controllers requirements are not that special, by Dominig ar Foll

There is no de facto secured embedded Linux distro while the requirement is becoming more and more critical with the rise of IoT in Industrial domains. When looking under the hood of the Yocto built AGL project (Automotive Linux), it is obvious that it can fit 95% of the most common requirements as a Secured Embedded Linux. We will look how non Automotive industries can easily reuse the AGL code and tools to build their own industrial product and why it’s a safer bet than to build it internally.

Industrial IoT cannot be successful without a serious improvement of the security coverage. Unfortunately there is as today, no of-the-shelves offer and the skills required to create such solution, are at best rare, more often out of reach. AGL as created a customizable embedded Linux distro which is nicely designed for reuse in many domains outside of Automotive. During the presentation we will see how to: – start your development with boards readily available on the Net, – change the BSP and add peripherals using Yocto layers or project like MRAA, – integrate a secure boot in your platform, – add your middleware and your application without breaking the maintained Core OS – develop a UI on the integrated screen and/or an HTML remote browser – update the core OS and your add-ons. – get support and influence the project.

Sunday 5, 2017

  • 10:00 11:00 – How I survived to a SoC with a terrible Linux BSP, Working with jurassic vendor kernels, missing pieces and buggy code, by Luca Ceresoli

In this talk Luca will share some of his experiences with such vendor BSPs, featuring jurassic kernels, non-working drivers, non-existing bootloaders, code of appallingly bad quality, ineffective customer support and Windows-only tools. You will discover why he spent weeks in understanding, fixing and working around BSPs instead of just using them. The effects on the final product quality will be described as well. Luca will also discuss what the options are when you face such a BSP, and what both hackers and vendors can do to improve the situation for everybody’s benefit.

  • 11:00-12:00 – Open Source Car Control, by Josh Hartung

This fall my team launched the Open Source Car Control (OSCC) project, a by-wire control kit that makes autonomous vehicle development accessible and collaborative to developers at every level. In this presentation, we discuss the project and its implications on the development of autonomous cars in a vertically integrated and traditionally closed industry.

A primary barrier to entry in autonomous vehicle development is gaining access to a car that can be controlled with an off-the-shelf computer. Purchasing from an integrator can cost upwards of $100K, and DIY endeavors can result in unreliable and unsafe solutions. The OSCC project acts as a solution to these problems. OSCC is a kit of open hardware and software (based on Arduino) that can be used to take control of the throttle, brake, and steering in modern cars. The result is a fully by-wire test car that can be built for about $10K (USD), including the vehicle. In this discussion, we unpack the impetus and development of the OSCC project, challenges we encountered during development, and the role projects like OSCC have in a necessary “flattening” of the automotive industry.

  • 12:00 – 13:00 – Kernel DLC Metrics, Statistic Analysis and Bug-Patterns, by Nicholas Mc Guire

SIL2LinuxMP strives to qualify a defined GNU/Linux subset for the use in safety-related systems by “assessment of non-compliant development”. To demonstrate that the kernel has achieved suitable reliability and correctness properties basic metrics of such properties and their statistic analysis can be used as part of the argument. Linux has a wealth of analytical tools built-in to it which allow to extract information on compliance, robustness of development, as well as basic metrics on complexity or correctness with respect to defined properties. While IEC 61508 Ed 2 always pairs testing and analysis, we believe that for a high complexity system traditional testing is of relatively low effectiveness and analytical methods need to be the primary path. To this ends we outline some approaches taken:

  • Bug-age analysis
  • Bug-rates and trend analysis
  • Code-complexity/bug relationship
  • Brain-dead correctness analysis
  • Interface and type-correctness analysis
  • API compliance analysis
  • Analysis of build-bot data

While much of the data points to robust and mature code there also are some areas where problems popped up. In this talk we outline the used methods and give examples as well as key findings. FLOSS development has reached a quite impressive maturity, to substantially go beyond we think it will need the use of quantitative process and code metrics – these results from SIL2LinuxMP may be a starting point.

  • 13:00 – 14:00 – Loco Positioning: An OpenSource Local Positioning System for robotics, presentation with a demo of autonomous Crazyflie 2.0 quadcopter, by Arnaud Taffanel

Positioning in robotics has alway been a challenge. For outdoor, robots GPS is solving most of the practical problems, but indoor, precise localization is still done using expensive proprietary systems mainly based on an array of cameras.

In this talk, I will present the loco positioning system: an open source Ultra Wide Band radio-based local positioning system, why we need it and how it works. I will also speak about its usage with the Crazyflie 2.0 open source nano quadcopter, of course ending with an autonomous flying demo.

  • 14:00 14:50 – Free Software For The Machine, by Keith Packard

The Machine is a hardware project at Hewlett Packard Enterprise which takes a new look at computer architecture. With many processors and large amounts of directly addressable storage, The Machine program has offered an equally large opportunity for developing new system software. Our team at HPE has spent the better part of two years writing new software and adapting existing software to expose the capabilities of the hardware to application developers.

As directly addressable storage is such a large part of the new hardware, this presentation will focus on a couple of important bits of free software which expose that to applications, including our Librarian File System and Managed Data Structures libraries. Managed Data Structures introduces a new application programming paradigm where the application works directly on the stable storage form for data structures, eliminating serialization and de-serialization operations.

Finally, the presentation will describe how the hardware is managed, from sequencing power to a rack full of high-performance computing hardware, through constructing custom Linux operating systems for each processor and managing all of them as parts of a single computing platform.

  • 15:00 – 15:25 – Diving into the KiCad source code, by Maciej Sumiński

Let’s be sincere, all of us would love to change something in KiCad. I bet you have an idea for a new tool or another killer feature that would make your life so much easier.

You know what? You are free to do so! Even more, you are welcome to contribute to the project, and it is not that difficult as one may think. Those who have browsed the source code might find it overwhelming at first, but the truth is: you do not have to know everything to create useful extensions.

I would like to invite you for a walk through the KiCad source code to demonstrate how easy it is to add this tool you have always been dreaming about.

  • 15:30 – 16:00 – Testing with volcanoes – Fuego+LAVA, embedded testing going distributed, by Jan-Simon Möller

LAVA and Fuego are great tools individually already. Combining and extending them allows for a much broader test coverage than each tool alone can provide.

The focus of this talk is to share the experiences made and lessons learned so people can integrate such tools better in their own environment. It also raises the pain-points and open issues when setting up a distributed environment.

Especially for Automotive, Long-Term-Support, CIP or Consumer Electronics, advancing the Test-harness is essential to raise the bar and strengthen the confidence in our embedded platforms. Automated testing can improve our ecosystem from two sides: during development (feature does work and does not break things) and during maintenance (no regressions through backports).

  • 16:00 – 16:30 – Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device, by Stefan Schmidt

Adding support for IEEE 802.15.4 and 6LoWPAN to an embedded Linux board opens up new possibilities to communicate with tiny, IoT type of, devices.

Bringing IP connectivity to devices, like sensors, with just a few kilobytes of RAM and limited battery power is an interesting IoT challenge. With the Linux-wpan and 6LoWPAN subsystems we get Linux ready to support the needed wireless standards as well as protocols that connect these tiny devices into the wider Internet. To make Linux a practical border router or smart home hub for such networks.

This talk will show how to add the needed transceiver hardware to an existing hardware and how to enable and configure the Linux-wpan and 6LoWPAN mainline subsystems to use it. The demonstration will include setting up the communication between Linux and other popular IoT operating systems like RIOT or Contiki as well.

  • 16:30 – 17:00 – OpenPowerlink over Xenomai, by Pierre Ficheux

Industrial Ethernet is a successor of classic field bus such as CAN, MODBUS or PROFIBUS. POWERLINK was created by B&R Automation and provides performance and real­-time capabilities based on standard Ethernet hardware. openPOWERLINK is open source and runs on lots of platforms such as Linux, Windows, various RTOS and dedicated hardware (FPGA). We will explain how to use openPOWERLINK on top of Xenomai 3, a powerful real-time extension for Linux kernel based on co-­kernel technology.

FOSDEM 2017 will take place at the ULB Solbosch Campus in Brussels, Belgium, and no registration is required, you just need to show up in order to attend the event.

Xtream Codes IPTV Panel Review – Part 2: Movie Data Editing, Security, Resellers, Users and Pricing Management

October 4th, 2016 20 comments

Dear readers, after part 1 of Xtream Codes Panel v.2.2.0 EVO review, here is part 2. I tried hard to get all in two parts, but “to be exhaustive” there will also have to be a part 3…

Movie Editing Section

xtream-codes-movie-editing

As we can see, it’s only possible to assign a movie into a single category, a SELECT BOUQUET Option under the Category would be more then useful. So while Movie Editor Section is useful right now, it still needs improvement.

Also taking each movie by hand for editing, after, for example, a Main server crash or changing the Main, is really something, a waste of time. Some of the issues / possible improvements include:

  • No mass edit of movies to bouquets
  • If changing the category of a movie, I found no working method to change in a bulk.. Even if I tried to delete the “content” of a bouquet, it was denied.
  • Left Hand Section, Mass Edit Streams allows only live streams to be edited.
  • Stream Tools! To be able to delete the falsely assigned movies. With the result of the complete addition process later on, and the transcoding process has to be repeated all over again…
  • I strongly advice customers/user’s of the Xtream Codes Panel to name their movies in a kind of unique, retrievable way later on. If not, and if you try to sort them later by assigning them in to a bouquets, you stand in front of all the movies, the way you loaded them up. No kind of Movie editing (re-naming) possible, before you load them to transcode. The mass edit movie section is simply missing.
  • This great piece of Software NEEDS A MOVIE EDITING SECTOR

The options available right now:xtream-codes-movie-editing-options

xtream-codes-movie-editing-subtitles-transcoding

  • Manage Categories has to be more specific to meet the needs of the customer.
  • Right now I was not able to really sort the categories to my preferred sequences. Did I miss here options? I couldn’t find it.
  • Edit Category function is limited to change the name only.

xtream-codes-movie-editing-category

  • Again, if you have already tons of movies assigned to a category there’s no other way to assign them in a bulk right now. A time waster.

General Warnings

To be on the safe side, do not fill your HDD up to the limit. Max 70% should give more stability.

Attention: If you rent a dedicated server, seeing the offer for example, let’s say 2x 2TB, you should know that after a normal install, you’ll only get 2TB. That is because one is mirrored, in case you loose the first partition, it would be fatal, right?

So, better let it this way, do not use the whole size. Agreed?

Having issues with reconnecting interrupted streams, I filled Xtream Codes panel with over 200 streams, and around 500 movies. I checked the stopped streams, and most connected again after manually pressing the “start/restart stream” button. But these are rare cases only, overall I must say the platform is absolutely stable.

I found a few times the ‘Guilty-ONE” for this: It was not Xtream Codes Panel, it was the miserable Streams I got from a friend for testing purposes.

Security settings (Fight the Intruders by blocking them)

Handle this setting carefully! Especially if you give a trial List to a customer, he will zapp through the channels quickly, or VLC crash often, how we all know..

Wrong or too hard settings will block him immediately.

A good setting should be as follows:

  1. General Settings->Security Settings->Flood Limit to 6 or 8
  2. Request Frequency in Seconds to 1.

Security Settings Section

Back to the Security “plugins”

xtream-codes-security-pluginsBLOCK IP/CIDR

xtream-codes-security-block-ip-cidr

We see the IP’s or better, the intruders (hint: After you set-up the Flood Limits in General-Security/Settings)

Here we go, nice to look at… but why not show directly the “customer by name with IP”?. In the end, we have to make the decision whether to unlock the IP or keep him locked. It’s only working if a server with a fixed IP started the attack, dynamic IP’s appear soon then if the IP changed.

And in case no internal customer, let’s say a simple “from outside” or no customer would be a great help. Going through the log files  to find out if it us a customer or instead a competitor trying to slow down your server (we are all nosy, aren’t we?) makes no sense and no fun. Reason: time extensive if dozens or hundreds of logs!

Live Streams-Video on Demand Section

Manage Stream/Add New Stream

xtream-codes-live-streams-vodThere is also one relatively “unique” function; you should handle with care, or best ask the seller of the LEGITIMATE streams, if he allows that you use the “Use Direct Source & don’t restream it”. This means all coming traffics are not on your side, the connected server takes it all. You should be able to see the other side. But I guess you know already.

You can also redirect the Stream to the Original Source, so that your customers connect through your own DNS. Doing so, setting to yes, your URL will show up in the Bouquet List later. But again, be aware, choosing NO, your user will not connect to your server in any case. I tested it by letting the user connect over my DNS. I thought, I would see any client connecting through my DNS, but you will not, in both cases. No matter Client Connection Logs or in Manage Lines, he is simply invisible to you. I guess, after all not the smartest idea.

xtream-codes-dns

Security Section

General settings->Security Settings

xtream-codes-security-settings

Useful if you find the “right” setting. The Flood Limit shows the number of requests specified in “Request Frequency”. I started with 5 requests within 3 seconds, result: I got blocked myself and no idea why. I just watched one channel, no fast channel switching, no nothing. This seems to getting interesting, I thought.

Switched to 8 requests in 3 seconds range. Activated my test users… Result: 2 Android boxes getting blocked.

Mhhhh, I go deeper in this then after, and because of English is not my native language, haha, we “none-english” have sometimes a problem to understand the language. And…I found it! My mistake! Definitely to 90% only, haha! And 10% I give to Xtream Codes back, because they should really be more specific about this classy feature, which is highly useful!

Advice: Give 3 options, or 4, the ordinary customer can use! Like: LOW-Standard-HIGH-HYPER Settings, pre-configured! (Also the option for manual settings).

I know I know…but remember this: Many customers are not common with these terms; they simply do mistakes resulting in blocking customers who do nothing wrong at all, which could lead to losing customers.

Standard should be: 10:1, or 20:1 ((flood limit:request frequency), but hard to say for sure in my opinion. And even this could maybe cause some troubles, if a nervous user zapping the channel’s in a lightspeed and the playlist is huge…

For example: Each zapping under 1 second is 1 evil request, collected and memorized by the panel! 10:1  means, 10 times under 1 second is OK, but then… the 11th try would blocked them! This is a hard decision to make for each panel user, if he has a huge playlist with many customers. Some customers could complain, if they get blocked, and I don’t want to talk about the non-stop checking the Security Settings, and look for blocked IPs.

Recommendation: Invest in a DDOS Protection with your server, every hosting provider is offering this. Also let this setting to OFF (0) in the beginning, and get used to everything first. You can then implement the settings you are comfortable with lateron.

Resellers – Registered Users Section

xtream-codes-users-resellers

Reseller Section

Registered Users and Reseller

When I started to work with the panel and getting used to it, this was the first category I started with. I expected something like: REGISTER RESELLER, or similar. Registered means already already registered, right?

Let’s start with “Register New User”. This feature is mainly used, to create a new RESELLER of yours, a now you want to give him access to a reseller panel. Let’s create one!

xtream-codes-register-new-user

As we can see, you have to provide the follwing details for the new user (reseller in this case):

  • Username (Whatever you want to call the reseller)
  • Password (Please 6 digits minimum, out of security reasons, phrases are also useful)
  • E-Mail (Email address of your reseller, without one you can not create a new reseller)
  • Default Language (right now only English is possible)
  • Group Members (see the next Section, Group Members)
  • Reseller DNS (Reseller Only) – Here you can specify the reseller’s own DNSs
  • Credits (reseller Only) – The amount of money the Reseller payed you, usual is 1 credit = 1 UK pound or other currencies)

Section Manage Group Members

xtream-codes-create-new-group
First of all, a little explanation here on this important part. As we’ve already seen above, we can “register” a new user, reseller in this case with “REGISTER NEW USER” option (I would rather see a “Create new Reseller” button). But here is the point: If you register a new future reseller, you have to assign the payment formalities later (ex: 300 Euro = 300Credits), but also how much for 1 month, 3 months or any other kind of subscription (time frame), and the reseller can create lines for his own customers later, and see his own costs each time.

Assigning them (the resellers) all in one category, named reseller, let you later no choice to give different kind of subscription prices. (ex: Reseller A 1 month =6 Euro, Reseller B 1 month 8 Euro), so that’s why Xtream Codes has a great feature in creating groups.

You can simply create a new “group”, let’s say Group elcap in my case, and assign reseller A to it. Now your Reseller A is a Group Member of “elcap” group. Next step, you want to give him prices and time frames of each line he creates.

xtream-codes-price-options

As you can see, I created the trials , 1 month, 3 months, 6 months and 12 months, and also a VOD package for the reseller part of group elcap.

You start with Resellers -> New Package (Adds a new Package)

xtream-codes-resellersWe see the following options after clicking on New Package:xtream-codes-resellers-new-package-1

xtream-codes-resellers-new-package-2

You first need to name the package, mark it as Trial or Official Package (1-12 month or else later, you are free in your decision), you can even pair the line with the ISP provider of your client by first connection. (Attn.: need additional plugin to buy).

Useful only if you create a Package for a RESTREAMER (Restreamers are able to put your bouquets/packages on their server(s) and use them as there own streams), as they have a fixed IP in any case.

In this example we give 20 connections to a Restreamer

xtream-codes-resellers-restreamer

Meaning: You can give your whole LEGITIMATE stream list, or assorted ones, like a bouquet you filled with specific streams before. In any case, your Restreamer you are selling to, is only able to open 20 connections on his server. The amount of connections you assign to him is what he pays for.

Settings Prices with Manage Packages

xtream-codes-resellers-manage-package-price

Edit a packagextream-codes-resellers-edit-package

xtream-codes-resellers-edit-package-2

A complete option to edit your before assigned package (Manage Package->Edit Package).

Here’s the output of my own created packages Create them for your own needs, everything is possible!

xtream-codes-subcription-examples

Manage ROOT (Registered Users)

xtream-codes-registered-users

By clicking on Manage Root you get the following options:

xtream-codes-users-manage-root

Here you can change your ROOT username/password given by Xtream Codes for your panel.

You can change both passwords here later, if you do not wish to use the old ones once given from Xtream Codes after you ordered and paid for your panel. Handle this carefully, write it down and copy it to safe locations, just in case of a crash of the main server (see upcoming part 3, with simulated crash of the Main server)

I initially planned to finish this review into two parts, but there are so many options, I have to do at least one more part.

I also have to repeat Options and Features for better understanding later on. See you guys on Part 3 soon, which should include:

  1. Changing the Main Server (through my extended kind of tests, I worked a couple of days on this, and the results should benefit all of us who are using this software and working with it.)
  2. Finishing the features for good, I promise
  3. The “Have’s” and the “Have Not’s
  4. Enumerations of the Top 5 settings to use
  5. Results after a new installation (Simulated Crash of the Main Server)
  6. The Pro’s & the contra’s
  7. The Competitors of Xtreme-Codes Panel
  8. Be aware of some kind of hosting services (Strange experiences with 2 “Big Ones”! Troubleshootings)
  9. The Conclusion
  10. Preparing a little Manual (PDF format, to help you guys)

[Update: During finishing my work on the huge Part 3 of the Review Xtream Codes Panel Version.2.2.0 EVO, there was yesterday, 08th October, an update to Version 2.3.0 EV0, with a lot of new Features and Improvements!

So, I will need a little longer to finish the Part 3, please stay tuned.]

Review of Xtream-Codes IPTV Panel Professional Edition – Part 1: Introduction, Initial Setup, Adding Streams…

September 22nd, 2016 11 comments

Today I’ll start the review of one of the streaming software available on the market, with version 2.2.0 EVO of IPTV Panel Professional Edition developed by Xtream-codes.

The Software is mainly used for the so-called IPTV broadcasting, but also with great potential for all kind of other content delivery applications such as audio and business streaming, cloud video transcoding, and all other kind of global streams.

What is IPTV?

Wikipedia definition:

Internet Protocol television (IPTV) is a system through which television services are delivered using the Internet protocol suite over a packet-switched network such as a LAN or the Internet, instead of being delivered through traditional terrestrial, satellite signal, and cable television formats. Unlike downloaded media, IPTV offers the ability to stream the media in smaller batches, directly from the source. As a result, a client media player can begin playing the data (such as a movie) before the entire file has been transmitted. This is known as streaming media.

IPTV services may be classified into three main groups:

  • Live television, with or without interactivity related to the current TV show;
  • Time-shifted television: catch-up TV (replays a TV show that was broadcast hours or days ago), start-over TV (replays the current TV show from its beginning);
  • Video on demand (VOD): browse a catalogue of videos, not related to TV programming.

IPTV is distinguished from Internet television by its ongoing standardisation process (e.g., European Telecommunications Standards Institute) and preferential deployment scenarios in subscriber-based telecommunications networks with high-speed access channels into end-user premises via set-top boxes or other customer-premises equipment.

This review will contain results mainly for the “end-user” or business owner, who already owns or bought legitimate streams, as Xtream-codes IPTV software does not provide any video streams, and “only” helps distributing your content.

If starting from scratch, producing your self-made streams, it’s already professionally explained in the video below using Xtream-codes IPTV panel on AMD MOI Pro IPTV streaming server.

I would love to do this by myself, but I would be in need of the necessary hardware. TBS can provides future producers of streams with all the required and necessary hardware.

Installation Process

After you registered at https://xtream-codes.com and placed your order, you get access (after payment) to your unique default root username, default root password, and your CMS Address.

You can now login with both credentials, and start adding your server addresses. Your Server IP and SSH Password is required, and the whole process is pretty straightforward.

Click to Enlarge

Click to Enlarge

xtream-codes-iptv-server-success

Click to Enlarge

If necessary, you can add a second Load balancer Server by the same method. If you need more Load balancers (LB’s) in the future, you will have to pay an extra Fee. Xtream-Codes call this “plugins”, but I guess it’s a simple SSH Protocol.

They activate on their server side, like: 2/4/6 LB’s…. Again, the first LB is free of charge.

The Graphical User Interface (GUI): Xtream-Codes Panel

xtream-codes-iptv-guiIf you are confronted the very first time with it, it might be confusing at first with all the available options, but be assured, that after 1 or 2 days you’ll be getting used to it. Many features and possibilities are waiting for you, and it also a few have’s and have not’s. Let’s start with the “have’s!

One of the great features in version 2.2.0 Evo is the Transcoding process. Here a general overview of the 2 Versions: Profesional and Minimal Editions.

xtream-codes-iptv-panel-professional-version-2

Xtream-Codes also offers a Minimal Edition of this software for a cheaper monthly price (19 Euros per month vs 59 Euros per month)

xtream-codes-iptv-panel-minimal-editionAs you might expect, the professional edition adds several features including:

  • Load Balancing by adding servers (1 is free, all others must be bought)
  • Manage all servers in a very simple and powerful interface
  • MAG Devices Support
  • New powerful transcode System supporting almost every function
  • Every stream is playable (more protocols support)
  • Faster zapping time (instant)
  • Powerful Logging & Search System
  • Stream Statistics
  • Http Live Streaming (HLS) Output
  • iOS/Android Client Area Portal
  • More lightweight

The Menus & Options  of the Panel

Click to Enlarge

Click to Enlarge

 

 

The Transcoding or Video-Conversion process

This is one one of the “Highlights” of Xtream-Codes IPTV Panel. I’ve tested over a hundred different kinds of formats, from Blu-ray-MKV, different AVI’s, FLV, MP4, WMV, MOV and OGG. Each time the transcoding process was successful.

I also tested quite a few homemade AVI’s without transcoding, all watchable later on. But for professional hosting, large sized movies should be encoded before transferred to your server, in my opinion. The reason is mainly the later ability for your future customers to watch the movie streams, without any kind of freezings or bufferings. Due to Internet limitations, and nowadays also server bandwidth problems, the movies should be transcoded in 720p maximum and the file size should be around +/- 1GB each. The bitrate should be somewhere around 2 – 3000k maximum. This would later almost guarantee the freeze free availability of the stream, if the user owns a decent Internet connection. Not everybody have an 200 Mbit/s and up broadband connection.

Sure, there are higher bitrates possible and many customers already crying for lossless FHD’s streams. In my eyes often a wishful thinking. Too many components playing a huge role in the Internet world, and last but not least there’s always the question of bandwidth.

encoding-vs-transcoding

“What’s the difference between encoding and transcoding?” was one of the first questions I had when I started working with video’s and IPTV streaming. I had always used them interchangeably and after a quick Internet search I was surprised that I did not find a clear answer.

While encoding and transcoding both represent ways of converting files between formats, there is a distinct difference:

  • Encoding, by definition, takes analog source content and converts it to a digital format. For example – converting a video on a VHS tape to an mpeg file or a video DVD.
  • Transcoding takes an existing digital format and converts it to a different digital format, like taking a sample video and converting it to an adaptive bitrate format such as HTTP-Live-Streaming.

Despite the clear differences by definition, I’ve noticed that only technical experts tend to use the term with distinction. People getting started with video are often left behind and confused between the terms like I was. I hope that with this short note, we were able to shed some light on this myth….

Here you can see the different kinds of VIDEO and AUDIO transcoding codecs available:

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

The Preset option allows you to select between ultra fast and very slow transcoding options, which should also affect the video quality.

Click to Enlarge

Click to Enlarge

The Video Profile option (in my opinion too many Apple’s…)

Click to Enlarge

Click to Enlarge

Setting the average video bitrate

Click to Enlarge

Click to Enlarge

Other Transcoding Options

Click to Enlarge

Click to Enlarge

Main server and load balancer monitoring

Click to Enlarge

Click to Enlarge

3rd Load balancer

xtream-codes-multiple-load-balancer

Load Balancer Settings

Load balancing Chart? What this feature is doing exactly? As stated before, IPTV Panel Pro has load-balancing mode that will redirect your users automatically to other servers in a case of huge load. The load-balancing chart is being used to control the SOURCE flow or how the stream source will be transferred to your servers.

You can draw any flow you want depending on your needs.

iptv-load-balancerBoth servers will take the stream from the source in the configuration above.

iptv-load-balancer-proxy

In this case, the server “Load balancer 1” will read the stream from the source and at the same time he will transfer the same stream to the second server.

Implementing LEGITIMATE Streams in your Panel and Managing Streams

Attention: Many customers make here a major mistake, with the result of missing audio and other misbehaviors in the stream later. What Video & Audio Codec should I use if I transcode later?

Xtream Codes has added many video & audio codecs but not all of these codecs are supported for IPTV use. To be on the safe side, you should always use the H.264 as video codec and AAC as audio codec for IPTV use.

iptv-panel-live-stream

As we can see, importing a live stream, a movie or a radio broadcast stream was never that easy. We start by adding a live stream.

Two options here: One single stream, or multiple streams! If you import multiple streams, you need the file/stream list containing all of your streams.

Click to Enlarge

Click to Enlarge

We have several options later, how the streams can act. For better understanding, it’s theoretically possible that you “restream” your legitimate bought streams later. In other words…in some cases, you may want to sell these streams to other resellers.

Through this setting you can block your streams to be “restreamed” later on, if you really try to sell some of your streams in time by choosing a category or bouquet later for your customer. Streams marked here as “yes” will not work for your customer.xtream-codes-restream-block

xtream-codes-stream-control Very useful are the “Quicktools” in the Manage-Streams Section:

xtream-codes-quicktools-menu

xtream-codes-quicktools

xtream-codes-quicktools-streams-options

Adding a New Movie

You can also add a movie you uploaded to your server previously, or even from a remote source.

Click to Enlarge

Click to Enlarge

xtream-codes-file-server

If you add a movie from your own server, it works over the integrated file browser, while if you want to stream from a remote location, simply type in the location.

Click to Enlarge

Click to Enlarge

You can set read “Input Source in Native Frames”, and  if you are transcoding, set it to YES.xtream-codes-imdb-database

You like to have a picon for your Movie? Here you can add a IMDB ID.

But here we go…Movies! It is common in this business, that once a while a server is having issues, and most times the load balancer also gives up. If this happens, and no matter the backup of your data bank, you are in troubles. You may have tons of movies in backup, and must re-assign them all again to a server manually.

This feature is definitely missing in the editing movies section. There are only 3 parts: Add New Movie, Import Multiple Movies and Manage Movies.

The scenario: You transfer in an emergency case over ssh protocol sftp-wise all your movies to an other server. You set up a new OS or reinstall one, and you get a new root password. After making a new server with Xtream Codes Panel, so far, so good. But you have to assign them later, all of them! A mass-edit regarding assigning movies to the main server or one of the load balancers would do it! Saving a dramatic amount of time for a customer. I repeat myself here, I mentioned that above already, regarding “add a new stream”. No reason for me to think of right now, that it should not be possible to assign this stream to a bouquet, and not only in to a category.

Adding a New Radio

It’s the same procedure as adding a video stream. You can import a single or multiple Streams from a file.

Creating new Client/Customer Lines xtream-code-user-details-2

Creating a new customer line is a piece of cake; just fill up the necessary fields. Like user, a unique password if you wish so, you even can use the created line in a stalker portal, but watch out then, please read:

xtream-codes-iptv-panel-mag-devices

If a customer has a MagBox for example, the better option is to bind the box over the MAC address. It is even possible to bind a before created simple m3u Playlist to a newly created MAC address. Simply go to “Add New Mag Device” and associate the existing line to it.

xtream-codes-iptv-panel-mag-stbPortals for Mag-Devices are like “http://yoursite.com:port/c/”

Features, Options, Security

xtream-codes-security

Restreamers Finder

Another useful feature is the so-called Restreamers Finder. In these days there are many restream software’s for ordinary users on the market, like Hola addons for Android Systems and many more.

Block User Agent

Not absolutely clear about this feature. What is a “User Agent”? A User Agent is normally a short string that web browsers and other applications send to identify themselves to web servers. Unfortunately, most browsers falsify part of their User-Agent header in an attempt to be compatible with more web servers. Useful, but I find that the manual assigning of each single user agent is a hell of a work. There are preconfigured block lists already in the Internet and it would be from great help, if Xtream Codes would allow loading a whole list.

Block IP/CIDR

IP blocking is clear, but what is a CIDR? Classless inter-domain routing (CIDR) is a set of Internet protocol (IP) standards that is used to create unique identifiers for networks and individual devices.

The IP addresses allow particular information packets to be sent to specific computers. Shortly after the introduction of CIDR, technicians found it difficult to track and label IP addresses, so a notation system was developed to make the process more efficient and standardized. That system is known as CIDR notation.

Resume? Absolutely useful!

There is still some work to do specially in the editing sector, one of the most important parts of streaming software:

  • Searching for Bad Movies (a dog’s work if hundreds/thousands of movies)
  • Adding a new stream and assign it direct into a bouquet, would be more then useful.
  • Mass edit Movies features (ex:Assign Movies to a server in bulk)

Part 2 (…coming soon)

  1. Finishing the part of the most important features
  2. Comparison the “Have’s” and “Have Not’s”
  3. Results after a new installation (Simulated Crash of the Main Server)
  4. The Pro’s
  5. The Contra’s
  6. The Competitors of Xtreme-Codes Panel
  7. Be aware of some kind of hoster (Strange experiences with 2 “Big Ones”! Troubleshootings)
  8. The Conclusion and resume

Ending the first part, I want to say thanks to Xtream-Codes for giving me the tools and the necessary “LB Plugins” (Naaaa, not a plugin, Xtream-Codes! Call it a Addon better!) to start.

[Update: Part 2 is up @ Xtream Codes IPTV Panel Review – Part 2: Movie Data Editing, Security, Resellers, Users and Pricing Management ]

AOMedia AV1 is a Royalty-free, Open Source Video Codec Aiming to Replace VP9 and Compete with H.265

July 3rd, 2016 22 comments

The Alliance for Open Media, or AOMedia, is a new non-profit organization founded in 2015 by Amazon, Cisco, Google, Intel Corporation, Microsoft, Mozilla, and Netflix, and more recently joined by AMD, ARM, and NVIDIA, whose first project is to develop AV1 royalty-free and open video codec and format to provide an alternative to H.265 / HEVC, and a successor to VP9.

Alliance_For_Open_Media_AOMedia

The project is a team effort combining teams working on Daala, Thor, and VP10 video codecs, and while AFAIK, AV1 specifications have not been released yet (target: Q1 2017), the organization has already released an early implementation of AV1 video decoder and encoder under the combination of an BSD-2 clause license and the Alliance for Open Media Patent License 1.0 , which can be found on googlesource.com.

So I’ve had a quick my myself following the instructions, by first downloading one uncompressed YUV4MPEG sample:

and the source code:

before building it:

The last command will install the headers, and aomdec video decoder and aomenc encoder.

We also need some scripts to be placed in the path:

Now we can run the script in the directory for the sample(s):

The command will encode all y4m files in the directory at 200 kbps up to 500 kbps at a 50 kbps increment. Encoding only uses one core, my machine is powered by AMD FX8350 processor, and you can see encoding is currently very slow well under 0.5 fps for a CIF video (352 x 288 resolution), but that should be expected because VP9 encoding is already slow (its successor is expected to require even more processing power), and first software implementations are usually not optimized for speed, they are just meant to show the encoding works.

The test scripts will create a bunch of AV1 video files in baseline directory: husky_cif.y4m-200.av1.webm, husky_cif.y4m-250.av1.webm, etc… as well as husky_cif.y4m.stt with some statistics.

Decoding is much faster as it should be:

You can play back the videos with mpv using aomdec for decoding. For example:

AOmedia_AV1_Video_MPV

New video codecs normally take years to replace old ones, but if it gains traction AV1 will likely be used along side VP9, H.265 and H.264 for several years. Considering software and silicon vendors, and content providers (Google/YouTube, Amazon, and Netflix) are involved in the project, I’m quite confident the AOMedia AV1 codec will become popular, and hardware decoder are likely to be implemented in ARM, Intel and  AMD SoCs in a few years.

Thanks to Ohmohm for the tip.