Blog

Developing the Leader Within You by John C. Maxwell (First Pass)

I just wanted to share details of the work that went into cleaning this piece up from the original livestream version to the one you may have seen.

Disclaimer: I still haven’t watched it through to the end, so I don’t know how good of a job I did on this first pass, but I’ve been feeling the need to output content faster. #fuckitshipit

I ran FFmpeg with the following arguments
ffmpeg -i "Developing the Leader Within You.mp4" -c:v libx264 -preset ultrafast -crf 15 -threads 8 -c:a copy "Developing the Leader Within You CFR.mp4"

I’ve included both the head and tail of the output

Head of Output

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\Blinks\Developing the Leader Within You\Developing the Leader Within You.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf55.43.100
  Duration: 00:16:32.62, start: 0.000000, bitrate: 5170 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1920x1080, 5052 kb/s, 29.20 fps, 29.92 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 108 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (copy)

Tail of Output

frame=29696 fps=131 q=-1.0 Lsize= 3150821kB time=00:16:32.61 bitrate=26003.7kbits/s dup=724 drop=7 speed=4.38x
video:3136735kB audio:13107kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.031094%
[libx264 @ 00000255e2328dc0] frame I:119   Avg QP:11.56  size:332738
[libx264 @ 00000255e2328dc0] frame P:29577 Avg QP:14.57  size:107260
[libx264 @ 00000255e2328dc0] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 00000255e2328dc0] mb P  I16..4: 17.0%  0.0%  0.0%  P16..4: 69.1%  0.0%  0.0%  0.0%  0.0%    skip:13.9%
[libx264 @ 00000255e2328dc0] coded y,uvDC,uvAC intra: 71.5% 83.9% 50.2% inter: 49.1% 54.2% 11.0%
[libx264 @ 00000255e2328dc0] i16 v,h,dc,p: 26% 21% 39% 14%
[libx264 @ 00000255e2328dc0] i8c dc,h,v,p: 31% 31% 19% 19%
[libx264 @ 00000255e2328dc0] kb/s:25887.07

Arguments were ones that I referenced from this post, which appeared on the GeForce forums: FFmpeg batch – a fix for variable frame rate for Adobe Premiere Pro

Next, I used MP4Muxer to demultiplex, separating the audio and video tracks.

I fed the audio track into Adobe Audition, where I:

  • Generated a Noise Print
  • Applied Noise Reduction
  • Applied De-Esser (if relevant)
  • Applied Normalization -16 LUFS

I exported the file as a CBR MP3 (320kbps) to ensure fidelity (I do recognize that the source audio is AAC – no notes on why I chose MP3)

I went back into MP4Muxer and multiplexed, setting Frame Rate to 30.

The output was pushed to YouTube, yielding what you see below:

I’d appreciate your feedback on this process. Constructive comments and criticism are always appreciated here 🙂

Refinements

Lately, I’ve been making some changes. I’ve switched my broadcasting tools, moving from Live:Air Solo (iOS) to Streamlabs’s Streamlabs: Livestreaming mobile app (iOS). Additionally, I’ve borrowed a page from a partnered Discord server on how to set up self-assignable roles so that they are more intuitive.

First, a quick rundown of the pros and cons of Streamlabs.

Pros

  • Being able to use Streamlabs overlays is great!
    • I’ve set up three of them for my stream so far: Alertbox, Chatbox, Event List, and Donation Goal
  • Capable of Custom RTMP
  • Resilient
    • Seems to handle the handoff from WiFi to LTE better than the other apps I have tried

Cons

  • Interacting with the Editor on a device like my iPhone 7 Plus is an exercise in frustration
  • Major drawback: no ability to review chat at this time from the broadcasting device outside of reading messages as they appear, and fade away, from the Chatbox
    • Note that Live:Air Solo does not do a much better job of handling them, but at the very least it provides the broadcaster with a scrollable chat window
    • On a mobile device where multitasking support is enabled, it’s probably possible, but those familiar with me know that my hardware is rarely cutting-edge
  • Overlays are sometimes flakey
    • Is this just an issue with Streamlabs overlays in general?
  • Framerate issues
    • This is especially evident when an animated GIF appears

I may update this list of pros and cons as I continue to explore the Streamlabs app, though major changes to the functionality of the app will be addressed in a separate post.

As a bit of a gag, I made a donation goal – become a millionaire by Christmas 2018. I want to take a moment to acknowledge Deffy Urz for being the first to contribute towards this lofty goal. You’re a G.

I don’t use Streamlabs for donations at this time. There’s a fee associated with PayPal donations accepted through Streamlabs: they’re charged as if they’re payment for goods or services, incurring PayPal’s prevailing rates. Over time, this can be quite significant: if I were to reach the $1 million goal, they’d amount to at least $29,000! I’d much rather turn that money around into a car for someone who needs reliable transportation…

But I digress.

Self-assignable roles in my Discord server are now handled through short and simple commands that members can type in chat. I can see them evolving to become even more intuitive over time, to the point where one needn’t even type, but for now this is the best that I can do given my existing exposure to the platform. I will continue to sing praises to the virtues of Discord.

Going back to the subject of mobile streaming: it occurs to me that there’s a significant opportunity in apps targeted towards mobile livestreamers. I’ll share my observations here, because I lack the time and the resources necessary to tackle the problem myself, but the first developer to make the right moves in the space will reap the rewards. Established players, enjoy your head starts.

It’s about giving broadcasters the ability to interact with chat.

Outside of the Twitch mobile app, I’ve now conducted livestreams from my iPhone 7 Plus using IRLTV (iOS), Live:Air Solo, and Streamlabs. Live:Air Solo is unique in keeping the broadcaster’s ability to interact with chat locked behind a micro-transaction. I paid the small price to keep a watchful eye over my Twitch chat, pigeon-holing myself into conducting lifestreams solely to Twitch for a brief period of time, but functionality lags significantly behind the official Twitch app.

Flexibility of overlays is the other key point that needs to be addressed. To the best of my knowledge, there is no mobile livestreaming app catering to Twitch broadcasters that allows the broadcaster to include an overlay in the style of an OBS Browser Source (Browser Plugin). An app that handles this would be tremendous.