Sunday, July 19, 2020

Are you making Business Central videos? Generate a video Table of Contents with timestamps!

By Steve Endow

Natalie Karolak recently asked a question on Twitter that I and many others have pondered over the last few years.

How do you consume technical content?

This post is not about videos vs blog posts, but rather the conversation that was sparked by her poll.

Can we find a compromise?

She asked an interesting question:  If videos are easier to make, could we include a Table of Contents or Index with the video to make it easier for people to find what they want?  And the thread speculated about whether adding a TOC to the video description would make it more searchable.

I watch a lot of YouTube videos, so I've seen several YouTube "creators" who regularly include a TOC with timestamps in their video descriptions, like the excellent Podcastage channel.

I did a brief search to see how those video TOCs were created, and if there was a way to automate the process.  Based on the typical "Improve your videos with TOCs!" posts, it seemed that the only way was to review the video, record the time stamps for each topic, and manually type out the TOC.

I'm lazy, so I was interested in a way to try and automate the time stamp recording process.

Here are four ways that I've found to create a TOC for a video.  Three involve using the recording software to record the timestamps for topic transitions, and the fourth is the low-tech manual method.

1. OBS:  InfoWriter plugin

Erik Hougaard uses OBS to record his videos, and he quickly found a plugin called OBS InfoWriter that lets you record timestamps with keyboard shortcuts or Stream Deck buttons.  It looks very cool, although I don't know how easy it will be to parse that log and convert it into a video TOC.

OBS InfoWriter Log

2. vMix: WriteDurationToRecordingLog

I use vMix to produce my live stream videos, which is a completely different animal than OBS, so I had no idea how I might do something similar. Fortunately vMix has a fantastic user forum, so I was able to find a few threads with clues that led me to the awesome Function called WriteDurationToRecordingLog.

vMix Function to the rescue!

In vMix, you can call the WriteDurationToRecordingLog function with keyboard shortcuts or Stream Deck buttons (or even scene transitions and triggers, come to think of it).  And you can create multiple shortcuts to record different values to the log.

So I heard you like shortcuts?
I setup Shortcuts assigned to the Num Pad digit keys so that, in THEORY, as I progress through the video, I can press a different num pad number.  When I start my intro, I press 0.  When I start the first topic, I press 1.  Then 2, 3, 4, etc.

I'll explain why I say "in theory"...

One limitation I'm seeing is that vMix shortcuts can only be assigned to single keyboard keys.  So I can assign a shortcut to the "A" key, but I cannot assign a shortcut to CTRL+SHIFT+A.  That's probably fine in reality, since I am sure I won't be able to remember several multi-key shortcuts or use them during a video.

After I finish my video, I can open the vMix recording log and see the TOC entries.

You asked for a TOC? I give you a TOC.

What is particularly nice about the vMix log is that it is comma delimited.  I can simply rename the log file with a .CSV extension and open it directly in Excel.  It formats perfectly and I can then use the time stamps and values to build my video TOC.


I don't yet know if this sequential 1, 2, 3 event logging will be valuable--when I'm reviewing the log, I'll see the entries, so it may be sufficient to just have a single shortcut, or use shortcuts tied to VS Code like what Erik did with OBS Info Writer.

The problem with this setup is that it requires that I remember to press a button as I'm live streaming.  Let's just say that I can barely manage to get intelligible words out of my mouth while trying to operate PowerPoint, demos, switch vMix scenes, and monitor the video and audio on the live streaming.  It's already a juggling challenge, so having to remember to press a key every time I start talking about a new topic is probably impractical.

Given this, I'm going to look into having vMix call the WriteDurationToRecordingLog function with every scene transition, and see if I can somehow tie vMix shortcuts to existing shortcuts that I might use in my demos of Business Central, VS Code, PowerShell, etc.

3.  Camtasia Markers

Luc van Vugt then asked the great question--how can this type of TOC automation be done in Camtasia?

Can it be done?

If you've made or seen instructional videos, you've probably used or heard of Camtasia by TechSmith.  It's a fantastic tool for recording a desktop and webcam and quickly editing the video before posting it to YouTube.

At first I doubted that Camtasia had a similar feature, as I didn't think it had a "logging" feature while recording.  But it turns out that Camtasia has a different feature called Markers that can be used to help build a TOC.

This Camtasia support video shows how to generate a video table of contents using the Camtasia recorder.

That is one way, but...

While this technique does technically work, it has a few limitations.  First, it also requires that someone remember to click on the Add Marker button as the video is being recorded.  If you are the solo presenter + video producer, it will be difficult to present and remember to click that button every time you change topics.  If you are just doing the recording and someone else is presenting, then it may work much better.  Second, extracting the timestamps out of the XML file that is generated by Camtasia is a mess.

UPDATE:  I found a better method with Camtasia!

If you do remember to add Markers while record in Camtasia great, but if you don't, I realized that you can easily add markers later in the Camtasia video editor.

Manage your Markers in Camtasia Editor

You can add, move, or remove Markers, and you can also name each one, right in the Camtasia editor. Note that I have all of my TOC Markers on the same track.  This is important, as the Markers are stored separately for each track.

Once you have added markers for each topic in the video, simply save your Camtasia project to a tscproj file.

Turns out that the tscproj file is just JSON.  So you can open the tscproj file in a text editor, and locate the Keyframes section.  That lists all of your Markers with timestamps and marker names.

Set your TOC timestamps free

The "time" values in the tscproj file represent the frame count.  So if your Camtasia project is using 30 fps, a time value of 300 will be 10 seconds.  A time value of 1200 is 40 seconds.  If you can pull the keyframes data into Excel, you can just divide the time values by 30 to get the number of seconds, then convert that to minutes and seconds for your TOC.

4.  Just Create the TOC Manually

Yesterday I did a 1 hour live stream on Learning BC Development from Scratch, and I was all set to use my clever new vMix shortcuts to record TOC entries in the vMix log.

Guess how many times I remembered to press my Num Pad keys to record entries.

Take a guess.

Zero.  Zilch.  Nada.

I was so busy trying to make sure the streaming was working, switch scenes in vMix (which I messed up repeatedly), and actually present the content that I completely forgot to record TOC entries.  It is just too much for a single person to deal with.  Maybe someday I can figure out a routine to do it, but if it requires that I remember to press a button with every topic change, I can be confident that will not work for me.

So, since I had no TOC entries in my video log, I had to create the TOC the old fashioned way.  To my surprise, it wasn't that hard.  But it did take maybe 10 minutes to do.

I opened the video on YouTube and then opened Notepad next to my browser.  I played the video and used the J, K, and L keys to scrub through the entire video, looking for scene changes and obvious topic changes in the video.  I then rewound the video and looked for the timestamp.  I manually typed that time in Notepad and added a description.

The old fashioned way

Since I knew exactly what I was presenting at the time, generating the descriptions was easy.  But finding the timestamps was a bit tedious.

Overall, it wasn't quite as bad as I anticipated, but it did take some time, so I would like to try and automate the timestamp process.

Posting the TOC on YouTube

Once I had the TOC information prepared, I edited my YouTube video and pasted the TOC into the video description.


I then saved the video, and to my surprise, YouTube automatically adds hyperlinks to each timestamp that lets the viewer jump directly to that point in the video!

That is cool

This is VERY nice, as it makes the TOC very convenient for viewers, and makes it worthwhile for the creator to prepare the TOC.

So, that is the learning journey that was spawned out of a simple Twitter poll.

I hope this information helps other people who make videos prepare their TOC information.

If you know of any other ways (preferrably easier) to automate the timestamp recording and prepare a TOC, please let me know!

Steve Endow is a Microsoft MVP in Los Angeles.  He works with Dynamics 365 Business Central, Microsoft Power Automate, Power Apps, Azure, .NET, Dynamics GP, and SQL Server.

You can also find him on Twitter and YouTube

1 comment:

  1. A big thanx for your effort, Steve. I am now uploading or latest Areopa webinar with TOC. Hope it works. ;-)


All comments must be reviewed and approved before being published. Your comment will not appear immediately.

How many digits can a Business Central Amount field actually support?

 by Steve Endow (If anyone has a technical explanation for the discrepancy between the Docs and the BC behavior, let me know!) On Sunday nig...