Weaponizing Social Media & Revolving Governments

If you asked me 10 years ago, I would be a strong proponent of democracy and how the Internet and social media will harmonize and amplify our inherent goodness of the majority and make the world a better place. Of course, I can see this is now totally incorrect. I now see modern mass media technology is being weaponized to promote ideas that benefits those who want to seek or stay in power. Perhaps I would further suggest that any communication advancements will ultimately be utilized in such fashion. Think about how consumer marketing has evolved with communication tech.

When you couple the power of what I described above with the modern liberal democracy ideals of, “everyone should have a voice”, you have a perfect storm fostering opposing, divisive, and influential views, which creates ever growing friction in the efficiency of governing within a democratic process. Decisions at the grass roots levels tend to be more emotional and less pragmatic. The current pandemic reaction from the liberal West can be viewed as a barometer of this effect. Also the leadership is representative of a mass emotional breakdown.

Recently I have become blasé to the instruments of government. Instead of focusing on how a government should work, we should treat it like a product which we the people all consume. Is it a good product and are we happy with it?

People are advocating or dear I say “preaching” one form of government as better than another instead of looking at the actual results of governing and people’s livelihoods. If you look at it from a high enough level, I come to the realization that modern advocacy of liberal democracy has become a religious crusade, one that seeks the conversion of all non-believers.

I am now toying with the realization that governments like all products will evolve or revolve on the changing needs of the consumer. I am not saying a simple change in leadership of a static system, but a massive reformulation of the government itself.

Perhaps we as a race have already figured it out, and the solution is already naturally practiced. Instead of our myopic planning horizons of every four years, or a life span, perhaps the fabric of governance is working through generations.

In essence every government is a crude form of true democracy. Everyone has the ability to vote, of sorts. When life gets too tough to tolerate and you blame the government and leadership for it, you vote by rebelling. This mechanism is of course called a revolution. Instead of an election that temporarily appeases the mass population, the mass population revolts and overturns the government and reinvents it. Social content settles to a new way of governing and the population is content until the next revolution. There is a natural social contract between leaders and those being governed. The votes will truly matter because they are being offered by sweat and blood, and not some, “going through the motion of an election turn out”.

So if you look at it from this granularity, it is somewhat immaterial to continue to debate on which type of government is a better or best government. The people will ultimately decides which government is best for them over the course of time.

In between revolutions, and we don’t feel like “voting / rebelling”, the best we can do is to play the current game that was established in the previous revolution.

Having said all of this, I do think a hierarchical structure of leadership properly established through merit vs a representation of a popular vote is probably more stable and beneficial. A party is in the depth of hypocrisy when it preaches for democracy that is infrequently practiced at intervals of spanning from 2 to 6 years, while we all goto work under a hierarchical structure with clear master/slave relationships for the majority of our working hours of our day.

Notes: I wrote the above in response to a Quora post here.

Trying out Apple Fitness+

I’ve switched to indoor cycling since mid-November when it got too cold and windy to perform an outdoor ride.

My indoor routine is to typically hop on my road bike which is affixed to a trainer (Kinetic Road Machine), and watched an Electronic Dance Music (EDM) filled with either English or Chinese dance mixes.

For each workout, I do my own HIIT sessions that usually last for about an hour or so. A typical session looks something like this recording on Strava. I try different things on different rides. Sometimes I do 1:1 intervals, sometimes I do 1:4 intervals on rest days, and other rides I do pyramid build ups, etc. I try to do an hour and at least for 45 min. The intervals can be between 30 seconds to 5 min depending on how I feel.

Yesterday Apple released their Fitness+ service. Since I’m part of their Apple One subscription, we get the service along with the subscription, so I figure I give it a go.

Today, I did two workouts, one 45 min with Emily and another by the same trainer for another 20 min. I think these workouts are nice for those who wants to get moving, but I personally found it hard to my liking.

The trainer is motivating, and upbeat. The workout is of a lower cadence than I am use to. The only lead in that you get is from the trainer, so there is no visual cue to help you with the next set of effort, or prep you how much rest you are going to get before the next hard effort. I also missed the power and cadence reading on the screen. For those measurements, I have to look down to my Garmin unit.

In short, at least for cycling, these programs are not going to replace Zwift and TrainerRoad. They are good for those who want to replace their typical gym classes. I may give other forms of exercises a shot later on.

Overall I think many will like the service. The integration with Apple Watch is pretty seamless and super friendly. However for cycling, I’ll probably continue with my EDM videos.

Covid-19 Alert App and Scheduling Tests

The Government of Canada has been recommending the Covert-19 Alert App for quite some time now. This is an app that is installed on your smart phone and in a confidential, and anonymous manner, logs proximity interactions between your phone and other phones without sharing any elements of your personal identity or confidential information. If users of the app ended up testing positive for Covid-19, it is up to the users to share their diagnosis with the app in a confidential manner. Once the diagnosis is shared, all the historical phone interactions within the last 14 days that were within 2 meters for 15 minutes will be notified. This in theory should expedite contact tracing with other exposed users.

Any users receiving a notification should get tested before interacting with others or self-isolate for a period of 2 weeks, so I assumed.

I recently schedule a Covid-19 test on behalf of a friend who received such a notification. However, the person who is registering the tests, try to persuade me that a test may not be necessary. Although this person may be correct under certain circumstances, I personally think it is the wrong message to send. First I don’t think the user who is at risk should judge in which circumstances a test is not required. That is simply too much to ask.

I detected a tone of mistrust on the app itself. The person told me the app is “unreliable”. Being in the app business myself, I was curious as why it is unreliable, so I asked the person. They said that many people get an alert because they recently visited a hospital or other high risk areas. I stopped my questioning there, because I did not want to offend the very person who I want to schedule a Covid-19 test with, but in my mind, I am yelling, “WHAT THE HELL! That is precisely the point!”

The idea is to detect a level of risk, and if the threshold (within 2 meters for 15 minutes) is exceeded, then it is best to get tested so that we prevent a possible walking virus breeder. What am I missing here? Instead I get the feeling of, Covid-19 tests are extremely precious, and you should not waste them. The interface that we are using to schedule a test, is discrediting the Covid-19 Alert App, which I think will hinder the prevention of virus spread.

If I did not continue to persuade her that a test is necessary, she could have convinced me not to take the test. This could potentially be poor judgement risking exposures to others.

This is why we do not have this under control people! Our prevention protocols are like sifting baking flour with a tennis racket. This is absolutely crazy!

Getting Tested for Covid-19

Last night I received a call from the vice-principal of one of my son’s high school. They indicated that my son had an indirect contact with a Covid positive individual. That individual was not a member of the school, but is a family member of a classmate.

As a result of this discovery, his entire class now requires isolation and a Covid-19 test is strongly recommended.

Mackenzie Health, located on 10 Trench St., Richmond Hill, ON. is about 10 minutes drive from our house. It just so happens they have a Covid-19 Assessment Centre there. In Ontario, all Covid-19 tests are conducted at these assessment centres, and at the time of this writing, an appointment is required.

I called 905-417-2004 at 8am sharp this morning and ended up first in the queue to make an appointment. I had my son’s Health Card ready, and is the first thing they ask for. They have all of our information once I gave them my son’s Health Card number. They collected his email address so that they can register him through MyChart, an online site where you can get your test results once it is ready.

If you are already a patient at Mackenzie Health, and already have a MyChart account, you can schedule a test online without having the need to call in.

The appointment was for 4:20pm this afternoon, and we arrived at around 5 minutes early. We park in the A-Wing parking lot. They will give you a voucher / ticket to get out of the parking lot, so you do not need to pay for parking.

Here is a top down satellite photo to show precisely where you need to go and park and where the walk-in entrance is.

Satellite Photo (Up is North) – click to enlarge

There was only about 2 to 3 groups ahead of us in line, so the wait was a matter of couple of minutes. At registration, they ask you to change your mask to the ones they provided. The test was completed in less than 15 minutes. They had 8 stations performing the tests in parallel.

The cotton swab test was a bit uncomfortable for my son. He characterized it as a bit of a burning sensation afterwards.

Overall the process is fairly simple and straight forward. Now we await the good news in 2 to 3 days.

Adding Ceiling Fans to HomeKit

I have two legacy ceiling fans in the house. One upstairs and the second in the living room. Both uses a radio frequency remote control. I could replace the fan or its remote control units to be more “smart”. However, I found out about this Bond Bridge product, which acts a WiFi to RF bridge for these products. Both my Hampton Bay fans are supported.

Hampton Bay Fan

I had some issues setting up the Bond Bridge to my home WiFi network, but their customer support was extremely helpful. After setting up both of my fans on the Bond Home app, and tested the light and fan speed controls, I integrated the Bond Bridge to my Homebridge server on my NAS.

I had to use the homebridge-bond plugin, which by now I was old hat in setting up these homebridge plugin’s. A quick edit in the homebridge configuration file as instructed by the plugin, and I can control the fans with Siri and the HomeKit app.

Next step is to probably wait for Black Friday and get 2 HomePod mini, one for upstairs and one in the basement, so that our voice commands can be picked up throughout the house. All common accessories save the basement has now been integrated into HomeKit.

Converting iPhone 12 HDR Videos to SDR with FFMpeg

In a previous post, I talked about how to view HDR (High Dynamic Range) videos from the iPhone 12 on my OLED TV. However, sometimes I like to take that HDR video and converted into SDR (Standard Dynamic Range) videos for posting or distribution.

During the course of experimenting with FFMpeg, as the primary tool for this purpose, I found out that it is not always necessary to convert the video depending on where you are going to use the video. For example, uploading the raw HDR footage from the iPhone 12 to YouTube works just fine. However posting HDR video footage to Instagram currently yields a very washed out result.

I personally prefer to store all my raw footage in its high resolution 4K HDR goodness. However, I also keep a rendered down SDR version for practical use. How does one get an SDR video from an HDR source? This is what FFMpeg is for.

All the command line instructions below have been tested on the macOS, and it is assumed that you already have brew installed.

You will need to install a version of FFMpeg that has the zscale filter. If you have a previous version installed without this filter, then you will have to uninstall it first.

brew uninstall --ignore-dependencies ffmpeg

And then we install the version with the filter from the homebrew-ffmpeg tap.

brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac --with-libbluray --with-libbs2b --with-libcaca --with-libgsm --with-libmodplug --with-librsvg --with-libsoxr --with-libssh --with-libvidstab --with-libvmaf --with-libxml2 --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-openssl@1.1 --with-rav1e --with-rtmpdump --with-rubberband --with-speex --with-srt --with-tesseract --with-two-lame --with-wavpack --with-webp --with-xvid --with-zeromq --with-zimg

I recorded a sample video from my iPhone 12 Pro, below is the raw footage.

The included videos in this article are all HEVC encoded. If your browser does not support this encoding, then you will not be able to play the videos. Safari has no issues. If you have Windows 10, then you can install an extension. How the videos are displayed also depend on the quality and capability of your monitor.

Raw footage from iPhone 12 (4K HDR 60fps) – 92M in size

If you just perform a simple conversion, you will get the washed up version:

ffmpeg -y -i raw.mov -map v:0 -map 0:a -c:v hevc -preset veryfast -tag:v hvc1 -c:a copy sdr_washed_out.mp4
Simple conversion without filters gets a bland result – 5.8M in size

The HDR colours have to be appropriately mapped using some filter trickery with FFMpeg. I found these filter settings about two years ago when trying to convert HDR videos from YouTube in the BT2020 space to BT709. Below is the set of filters used:

ffmpeg -y -i raw.mov -filter_complex "[0:v]zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p[v]" -map "[v]" -map 0:a -c:v hevc -preset veryfast -tag:v hvc1 -c:a copy sdr.mp4
SDR result with filter – 5.6M in size

As you can see the SDR version with filter is a lot closer to the original one.

These FFMpeg conversions require a lot of CPU horse power, so beware that they will take a long time. Let me know if there is a better way, as I’m always open to optimize this workflow.

Best Way to Play Dolby Vision Videos from your iPhone 12

Last week our iPhone 12 Pro arrived.

One of the many highlights of owning the new iPhone 12 Pro is the new Dolby Vision videos one can take. I took some footage of Darci our cat using the 4K 60FPS mode. The footage looked stunning on the iPhone itself. However, the small screen of the iPhone is less compelling than our 65″ LG OLED B7 TV that we have in the living room.

The question is, “What is the best way to get these new recordings on the TV and is our 3 year old TV compatible with the new Dolby Vision format?”

My first instinct is to slap it on to my Plex server and play it with the Apple TV 4K Plex App. This was terrible. It was like watching the video in slow motion.

Then I try the Plex App on the LG TV. This was better. The image was sharp, and the colour was vivid. However, the TV buffers every 5 to 7 seconds causing the video to pause or stutter. Not ideal!

I gave up on Plex, and went back to basics. I copied the video file to a NTFS formatted USB drive, that I previously AirDrop’ed from the iPhone to my Mac. The TV only understands FAT or NTFS, and FAT is pretty much useless because it has a file size limit of 4GB. I also tried exFAT but the TV did not like that format either. The video played flawlessly directly from the USB drive. So from this exercise, I knew the TV was compatible with the Dolby Digital format from the iPhone. Hurray!

Now, is there a way to direct stream the video to the TV from our NAS storage that the Plex Media Server is referencing. The LG is DLNA compatible, so I enabled the DLNA feature on my Plex server and voila.

The Plex Server Setting Screen used to enable DLNA

Below is a video showing the steps that I took on the LG OLED TV.

It is too bad that the Plex App on both the TV and the Apple TV cannot make it work. I hope this will be remedy with a future release.

York Region Covid-19 Communication Issues

We are parents of a son who has opted for choosing the in-person learning format this fall in Richmond Green Secondary School. With the recent rises in Covid-19 cases in recent weeks, we have been monitoring new developments continuously. We attempt to monitor new information on regional news via mostly online resources.

However, recent school communication has gotten us pretty confused and frustrated which prompted me, admittedly, ranting about this here. I do hope to provide some constructive feedback, so let me set this up.

On October the 18th, we received the following form letter via an email from the principal.

From: Richmond Green SS xxxxx.yyyyyyy.zz@yrdsb.ca
Subject: COVID-19 Notice of exposure – Richmond Green Secondary School
Date: October 26, 2020 at 1:33 AM 
To: xxxxxxxxx@gmail.com

To: xxxxxxxxx@gmail.com

Dear Parents & Guardians

Please find attached a notification from York Region Public Health. We ask that you please read the attached letter carefully as it contains important information regarding COVID-19.



email: xxxxxx.yyyyy@yrdsb.ca

The attached notification PDF file is here. The last paragraph of the letter is:

If you have any questions or concerns, please visit york.ca/covid19 or contact York Region Public Health at 1-877-464-9675.

When you click on the above link, I had to do this (follow my navigation by viewing the video below):

So you can see from the above video, that it was not immediately apparent how to get to the information. It took some hunting and exploring. You almost wish that the link that they had will bring you directly to:

School Covid Information

Life would be so much simpler!

If you are trying to access the york.ca/covid19 site on your mobile phone, then the user experience is worse than using a desktop browser.

I understand that they are trying to reuse their existing dashboard information, but frankly speaking this is just throwing data into a big pile and asking people to go to the pile and hunt for the relevant needle that you want, and call it job done.

On top of this, we got the exactly the same email yesterday on October 27th. I am sorry, but now we are being spammed by our schools without net added information, which simply causes more confusion. These guys are responsible for the education of our kids, and yet their form of communication and distributing information is second rate to industry norms. It is sad to see.

I want to be clear that I am criticizing the system and the process, and not laying any blame to the principal who may simply be a conduit in all of this. I know we are in a pandemic and we are all under stress. However, we can use this as an excuse, or we can use this opportunity to bring out the best in us.

Maybe I’m simply being too picky. Let me know what you think.

Update 2020-10-27 8:20PM:

Our York Region, Dave Barrow, has provided an alternative link york.ca/covid19data, which actually work so much better on my mobile phone.

I think the team must have modified something. Kudos to a team for a rapid response.

Teckin Smart LED Bulb

I found a pair of these on Amazon for around $30 CAD (after a $2 coupon saving). They look like fun to install. I figured that now that I know how to installed Tuya devices with the Homebridge, these would be great additions to the common areas of the house, should we need some colour added to our lives.

Amazon was extremely helpful and these bulbs came the next day. Amazon Prime is such a great service!

I proceeded to add these devices to the TuyaSmart app without any issues. Tested the lights using the app. I then logged into the Tuya developer site to ensure that the new devices were registered.

I provided the configuration into Homebridge using the following template from the homebridge-tuya-lan plugin page. Unfortunately, the provided sample template did not work, because the datapoint identifier, a terminology that represents a numerical id that uniquely identifies a specific device function, such as power on/off the device. My vague understanding is that the OEM, in this case Teckin, can pick and choose the datapoint identifier when creating their product, and map specific numerical values to the various functions of their devices. I gleaned this from Tuya’s developer documentation here.

Therefore, the provided sample of:

"dpPower": 1

was simply incorrect. The dpPower setting needs to have the correct numerical value that points to the power on/off functionality of the device. The default of 1 was not working, and I now have the challenge of finding the right value.

Through much research on Tuya’s site and Google, I found out that each device has a signature / schema. I found out that I can get the current status by executing the following command line (key and id has been replaced with fake ones):

% tuya-cli get --ip --key 8ddeadbeef5456ed --id 55deadbeefdeadbeef40 -a --protocol-version 3.3
  devId: '55deadbeefdeadbeef40',
  dps: {
    '20': false,
    '21': 'white',
    '22': 1000,
    '23': 188,
    '24': '00bc03e803e8',
    '25': '',
    '26': 0

I then guessed that the datapoint identifier started with 20 instead of 1. Also based on the value of 1000 for dps '22', I also deduced that I had to change the colorFunction from HEXHSB to HSB, because it was not using HEX to denote ranges. The last hint that I got was from this comment on a forum. Ultimately, consolidating all of the above knowledge, I arrived to the final configuration that looks like this:

    "name": "Smart Bulb 2",
    "type": "RGBTWLight",
    "manufacturer": "Teckin",
    "model": "SB50 Smart Bulb",
    "id": "55deadbeefdeadbeef40",
    "key": "8ddeadbeef5456ed",

    "dpPower": 20,
    "dpMode": 21,
    "dpBrightness": 22,
    "dpColorTemperature": 23,
    "dpColor": 24,
    "minWhiteColor": 140,
    "maxWhiteColor": 400,
    "colorFunction": "HSB",

    "minBrightness": 10,
    "scaleBrightness": 1000,
    "scaleWhiteColor": 1000

The lights finally worked with Homebridge and therefore also worked with HomeKit. I thought adding these couple of bulbs would be done in a few minutes, but it took a little more effort than I thought.

I couldn’t be happier that they now work with Siri!

Gosund (Tuya) Smart Outlet with HomeKit

Recently I received an Amazon email, and I found the above Gosund Smart Socket promotion. Four smart plugs for $33 CAD. Unfortunately, it was not HomeKit compatible. I did not want to have any of my smart IoT devices connected to Amazon or Google so no thank you Alexa and Google Home.

A few years ago, I built my own smart garage door opener and hooked it up to the Homebridge server that is running on my NAS media server. The Homebridge server allows non-certified IoT devices to be connected to HomeKit. My garage door opener being one of them. I did a cursory search on Google and found that it should be possible to connect the Gosund outlets to HomeKit using Homebridge, so I took the plunge and made the purchase.

The plugs came and I downloaded the Gosund app and setup one of the outlet. It worked like a charm through the Gosund app. As I was setting up this single outlet with Homebridge, I found tuya-convert. This is an alternative to Homebridge. Instead of registering the device to Homebridge, tuya-convert claims that I can just flash the firmware and I can add the Gosund plug directly to HomeKit. Sounds attractive and I have to give it a shot. Long story short, I was successful with replacing the firmware, but when configuring the plug I provided wrong configuration data and as such I was locked out of the plug, effectively bricking the plug. Nothing ventured, nothing gained. While doing this exercise, I learned a lot about how to use esp-homekit-devices project to turn any ESP8266 chip set and make it HomeKit compatible. This could be very handy in a future project, but for now let’s go back to Homebridge.

I found that the version of homebridge on my NAS server was outdated, and so was the version of node. I backed up my existing homebridge configuration and proceed to uninstall homebridge.

I installed the latest stable version of node as of the writing of this blog, v12.19.0. I then followed these instructions and installed the latest version of Homebridge. This new version came with a web based UI as well. For convenience, this is what I did:

sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
sudo hb-service install --user homebridge

I then reinstalled the Homebridge plugins that I previously had, which included homebridge-camera-ffmpeg, and my custom homebridge-kl-garage.

The Gosund plugs effectively uses the Tuya IoT Platform. So instead of using the Gosund App, I downloaded the TuyaSmart App from the App Store. The user interface is nearly identical to the Gosund App and I re-added the outlet with the TuyaSmart App.

Now I’m ready to install the homebridge-tuya plugin using the instructions here:

% sudo npm install -g --unsafe-perm homebridge-tuya

As per the instructions, I watched the YouTube video and followed its steps using the QR-Code method.

However, I found the video to be incomplete and I ran into issues when running the tuya-cli command. Essentially I got an error indicating that I did not have permission to run the API.

Using the information I had from the video and after some more Google searches, here are the steps which I followed and they worked for me.

First, install the tuya-cli command:

sudo npm i @tuyapi/cli -g

Next I had to create an account with iot.tuya.com. The sign-up process was a bit tricky because their email sending out the verification code seem to be slower than the allotted 60 seconds before the whole process timeout. It took me a couple of tries before I was able to create an account.

Once the account is created, I proceeded to create a project called HomeKit as part of Cloud Development. Below is a screenshot from the site.

After project creation

Click into the project and under Device Management, we need to link devices using the Link devices by App Account tab. When you click on the Add App Account, a QR-Code will be presented which needs to be scanned from the TuyaSmart App.

After linking the App account

To scan the QR-Code, open the TuyaSmart App and select the Me tab at the bottom, and tap on the scan icon in the upper right hand corner.

Use TuyaSmart App
to Scan QR-Code

Once the TuyaSmart App scans the QR-Code, you will see the Account along with a device count that you previously linked to your App.

You should be able to list all the devices that you previously registered / paired with the TuyaSmart App. I had to select America before I see the devices. See below.

Devices previously added to the TuyaSmart App will be displayed

You will need the virtual id which is the identifier below the device name. Go back to Project Overview and take note of the client id and secret:

The Client ID is the same as the API key for tuya-cli

Once you have these three pieces of information, you can then find the keys for your devices that you will need to configure the homebridge-tuya plugin. To do this, execute the following (note that the API key and secret below are fake):

% DEBUG=* tuya-cli wizard
? The API key from tuya.com: akkopy4vox723px9kcb23
? The API secret from tuya.com 3hfjodfu672kfm08711kpsnbvzzuyerk
? Provide a 'virtual ID' of a device currently registered in the app: 46616355e09806ca6ba7

The above command should yield something like (again the key is fake):

    name: 'Mini Smart Plug',
    id: '46616355e09806ca6ba7',
    key: '823a8ee651beefdead'

Now that we have the id and key for the Gosund outlet, we can then configure Homebridge using the homebridge-tuya plugin. We use the Homebridge web interface to do this.

Homebridge Web UI

The configuration for the plugin looks something like:

    "platform": "TuyaLan",
    "name": "TuyaLan",
    "devices": [
            "name": "Mini Smart Plug",
            "type": "Outlet",
            "manufacturer": "Gosund",
            "model": "WP3 Mini Smart Plug",
            "id": "46616355e09806ca6ba7",
            "key": "823a8ee651beefdead"

Once I restarted Homebridge on my NAS server, my Home App on my iPhone showed the smart plugs all configured. Below is what it looks like once I configured three of the Gosund smart plugs.

Home App

The integration is pretty good. The plugs are pretty cheap that I decided to buy four more.

Update: I had to add the "encoderOptions": "-preset ultrafast" property in the videoConfig object, as well as ensure the "audio" property is set to false of the homebridge-camera-ffmpeg plug-in configuration to fix the HomeKit camera streaming. With the latest version 3.0.3, the picture freezes and only get audio if this encoder option was not provided. Below is a complete sample for one of the Unifi cameras:

"cameras": [
                    "name": "Dining Room",
                    "videoConfig": {
                        "source": "-rtsp_transport http -re -i rtsp://",
                        "maxStreams": 4,
                        "maxWidth": 1280,
                        "maxHeight": 720,
                        "maxFPS": 15,
                        "maxBitrate": 600,
                        "vcodec": "h264",
                        "packetSize": 188,
                        "mapvideo": "0:1",
                        "mapaudio": "0:0",
                        "audio": false,
                        "encoderOptions": "-preset ultrafast",
                        "debug": false