navigate site menu

Start learning with our library of video tutorials taught by experts. Get started

HTML5 Projects: Video Bumpers

HTML5 Projects: Video Bumpers

with Joseph Lowery

 


Put HTML5, CSS3, and recent JavaScript API technologies to work and provide an enhanced brand opportunity for your clients with custom video bumpers. This short, easy-to-follow project shows how to add opening and closing video bumpers with the video tag and its JavaScript API. Author Joseph Lowery shows how to add these elements dynamically without additional editing, and includes instructions for troubleshooting the final presentation.

show more

author
Joseph Lowery
subject
Video, Web, User Experience, Web Design, Projects
software
HTML , JavaScript , CSS
level
Intermediate
duration
31m 36s
released
Mar 29, 2013

Share this course

Ready to join? get started


Keep up with news, tips, and latest courses.

submit Course details submit clicked more info

Please wait...

Search the closed captioning text for this course by entering the keyword you’d like to search, or browse the closed captioning text by selecting the chapter name below and choosing the video title you’d like to review.



Introduction
Welcome
00:00(music playing)
00:04Hello! I'm Joe Lowery and I'm really happy you've joined me for HTML5 Projects Video Bumpers.
00:10A Video Bumper is a separate piece of video that introduces or closes the primary video.
00:17Previously, to integrate a bumper into your final output, the primary video
00:21would have to be reedited to include the additional content and then converted
00:25to the proper formats.
00:27Thanks to the introduction of the video tag in HTML5, that workflow is a thing of the past.
00:33Because the video tag uses players native to the browser and can be manipulated
00:37through a JavaScript API, we can programmatically play a sequence of videos.
00:43In this lesson, I'll take you step-by-step to show you how it's done.
00:47Let's get going.
Collapse this transcript
Using the exercise files
00:00I am very happy to announce that any member of the lynda.com online training
00:04library, whether premium, monthly or annual, now have access to the exercise
00:09files used throughout this title.
00:11Naturally, the information in this course is ultimately intended to be applied
00:15to your own web pages.
00:16However, you may find it helpful to work with the supplied exercise files to
00:20practice the steps safely and without creating your own examples.
00:25To begin using the files from the site, download them, extract them and then
00:29store those files in a convenient location such as your desktop.
00:35The exercise files folder is organized by chapter and the chapters are broken
00:40down into various lessons.
00:43Within the lesson folders there are a series of items that make up the practice
00:47files, typically HTML, CSS, Images, JavaScript and so forth.
00:54In most lesson folders, you'll find a Final Folder and that contains the files
00:59showing the completed lesson which you can open up and explore at your leisure.
01:03You can either follow the whole course chapter by chapter or jump in at any point.
01:08If you'd rather not use the exercise files, you can definitely follow along
01:12with your own assets.
Collapse this transcript
Course and browser requirements
00:00To follow along with this course, the requirements are pretty straightforward.
00:04From the tools perspective you'll just need a code editor and a number of
00:07browsers for testing.
00:09You can use whatever code editor you prefer.
00:11I'm going to be working with Aptana on the Mac.
00:15It's a free editor that's available for both Mac and Windows.
00:18Most of our browser demonstration and testing will be done with pretty current
00:22versions of standard-based browsers like Mozilla Firefox.
00:26As the focus in this course is on some of the most recently released
00:30technologies, you probably shouldn't depend on the techniques demonstrated if
00:34your client needs to support legacy browsers like Internet Explorer 6.
00:39That's it for tools.
00:40From a knowledge perspective, you should be pretty familiar with both HTML and
00:44CSS with a general understanding of JavaScript.
00:47I'll walk through in the advanced JavaScript we used block-by-block, so you can
00:51understand what's going on under the hood.
00:54One last thing, the absolute best thing you can bring to this course is your imagination.
00:59Although I'm going to be going through all the details of applying HTML 5
01:03technologies to a specific project, you'll get the most benefit if you'd
01:07keep your mind open for other ways that you can apply the same lessons to
01:11your own work.
Collapse this transcript
1. Understanding the Project
What we're going to build
00:00Let's take a quick look at the completed project, so you can see where we're going.
00:04If you're the type who likes to dive right into the code and you've already
00:08downloaded the exercise files, you'll find the completed project in the
00:12Chapter 1> 01_01 folder.
00:15So here I have that page open in the Firefox browser and I am going to scroll
00:21down a little bit to we see our video.
00:24Now truthfully, from the user point of view, here's really nothing to see here
00:29and that's how's it should be.
00:30We want the integrated display of video bumpers to be as transparent as possible.
00:36So you see the video embedded on this page, it's got a poster image that's
00:41initially visible and a big old Play button.
00:44Let's click it to start the show.
00:46(video playing)
00:55So as you can see, the video begins playing right away.
00:58This is the intro bumper that runs 25 seconds and conveys the opening client message.
01:04In concept, this would play before every video.
01:08Now when it ends, the second video should start immediately.
01:11Let me click Play again (video playing)
01:18and I'll scrub towards the end. (video playing)
01:25And that's the beginning of the second video.
01:27The transition is nothing really out of the ordinary, I find.
01:31So let's go ahead and play this for a little bit. (video playing)
01:43Now here we are at the end of the video and we have a bumper out that's set up
01:48to play after this one is done.
01:50Let me go ahead, click Play and we will play through to the end and see if the
01:55final bumper shows up.
01:57(video playing)
02:03And there it is again, almost immediately.
02:06Pretty cool, don't you think?
02:08And it's all done with HTML5 and JavaScript.
02:12No additional editing required.
02:13Do you want to see how it's done?
02:15Good, because I want to show you.
02:17Let's go.
Collapse this transcript
Highlighted HTML5, CSS3, and JavaScript technologies
00:00I want to spend just a moment or two to talk about the key
00:03technologies involved.
00:05There are basically two in play here:
00:07the HTML5 Video Tag and the associated JavaScript DOM API calls.
00:14Let's take a closer look at theVideo tag first.
00:18theVideo tag is, to my mind at least, actually both glorious and notorious.
00:24If you can accept that an HTML tag can have those types of qualities, Apple's
00:29complete embrace of theVideo tag as a native video player for the company's
00:34super hot iPads and iPhones really gave HTML5 a huge jumpstart and propelled the
00:41overall acceptance of advanced browser capabilities.
00:45It also ultimately caused the almost total collapse of Adobe Flash as a video platform.
00:50theVideo tag provides for a number of attributes including standard ones such as
00:56source, width and height as well as video specific ones like auto play,
01:02controls, loop and others.
01:05Currently, theVideo tag supports three different formats: MP4, webM and Ogg.
01:13Although browser support is pretty widespread, not all browsers support all formats.
01:19Internet Explorer and Safari support only MP4, Firefox and Opera support both
01:27webM and Ogg but not MP4, and Chrome supports all three.
01:34Essentially, you're going to need all three formats in order to make sure that
01:38you've got full cross-browser compatibility.
01:42If you need to convert your video files to any or all of these formats, I can
01:47heartily recommend the Miro Video converter, free software for both Windows and Mac.
01:55To ensure cross-browser compatibility, the source tag is used and placed within theVideo tag.
02:02The source tag specifies the SCR attribute, the source, as well as the specific format.
02:09Let's take a look at theVideo DOM API next.
02:12A video DOM API includes a robust set of methods, properties and events all accessed by JavaScript.
02:21A typical JavaScript function includes a variable that gets theVideo object,
02:28as in here it's called theVideo, and then a property method or event can be incorporated.
02:36In the code on your screen we get the width of the video and put it in a
02:41variable called theVideoWidth and then in the function pauseVideo we use the
02:46Pause method for theVideo object to pause that video.
02:52There are five different methods for theVideo DOM API:
02:55load(), play(), pause(), addTextTrack() and canPlayType(), which checks to see
03:03which format the browser can play.
03:05We've got a great number of properties available so you can get or set the auto
03:10play status, the current source, the current time, duration whether the video
03:15has ended and much more.
03:17Likewise, there's a full slate of events to pull from so you can easily track
03:22the current state of the video even down to a volume change.
03:26So that's an overview of the technologies we'll be tapping into for the project at hand.
03:32Let's get underway.
Collapse this transcript
2. Creating the Video Bumpers
Setting up the HTML
00:00Time to lay the foundation for our Video Bumper Project.
00:04In this lesson, we'll concentrate on the HTML necessary to set up the video tag properly.
00:09Not only will we enter the video tag in all the necessary attributes but we'll
00:14also add in all the required source tags.
00:17Before we start, I do want to give credit where credit is due.
00:22This project is based on an article written by Drew McLellan for 24ways.org.
00:27Awesome work from Drew as always.
00:32In my code editor, I have the index.htm file from the Chapter 2_02_01 folder open.
00:38I'm going to scroll down to around line 66 and there you'll see a div with an
00:46ID of videoContainer.
00:48I'm going to place my cursor within the div and enter my video tag.
00:55As for attributes, I'll set the width and height first.
01:00The width is going to equal 480, no need to put the px or pixels measurement
01:06unit there, and then the height will be 272.
01:10Next, I'll add the controls attribute.
01:14This will, of course, enable the Play, Pause, Control and others.
01:19Poster is the final attribute to add and I'll need a path to an image for that,
01:25that's going to be found in images/videoPoster.png.
01:31Okay, I can close the video tag.
01:33Within that video tag we'll add a series of source tags, one for each of
01:38the supported formats.
01:40So source, now if you're using Aptana, I do want to caution you not to attempt to
01:46close the tag at this point, Aptana automatically adds a actual closing tag,
01:51whereas source is an empty tag and doesn't take a tag pair.
01:56So let's put in our attribute of source and set that equal to assets/ and here
02:04you'll see a listing of all the various assets.
02:06There are nine different files here, three for each of the segments that we have.
02:13So you'll see three for bumper-in, three for bumper-out and three for main.
02:17We're going to be putting in the main ones here;
02:21so I'll just hit m to scroll down to there and put in my first one, which is MP4,
02:25and we set the type="video/mp4", and then we'll close this tag after space.
02:36Okay, let's do our second one;
02:39src is going to be also in the assets folder and this time we'll put in the webm format
02:48and give it a type=video/webm, close the tag; one last source tag.
03:02This time we pick up main.ogv.
03:07Now the type here is not video/ogv but rather video.ogg, a subtle but important difference.
03:20Okay, that's all done.
03:22I'll save the page and you're done with the HTML.
03:25Now we're ready to begin adding the JavaScript.
Collapse this transcript
Prepping multiple formats
00:00The main strategy to programmatically play the initial bumper, even though the
00:05main video is referenced in the source tags, is to change the SRC or Source Value with JavaScript.
00:12To do this, we'll use one of JavaScript's most powerful features, Regular Expressions.
00:18In this lesson, we'll also establish the necessary variables as well as store
00:23the primary video's name.
00:25Here I have opened index.htm from Chapter 2_02_02 and I'm going to scroll down
00:32to the bottom because we'll put our script tag down just above the closing body
00:36tag there and what I'm going to do is hit return a couple of times just to make
00:42some white space, you can close that up a little bit later.
00:45Now let's start by just opening up a script tag here.
00:48I'll take advantage of that Aptana feature that gives us the closing tag and
00:53hit Return so I can put a little space in between my opening and closing script tags.
00:59And now I'm ready to start to enter in my code.
01:02Now let's declare our variables.
01:06The first variable is videos, sources is the next, then a couple of single
01:12letters, i for increment and l, that we'll also be using as a incremental value,
01:18orig will hold the original file name, current and modified.
01:24You'll see how those flags are used throughout the code.
01:28Next, I'll set up sources, my variable, to the source tag objects.
01:34So for that I'll need document getElementsByTagName, then an opening and closing
01:43parenthesis, single quotes within it, and the tag we're looking for is source.
01:48Once that's done, we can set up a for loop that will go through each of the
01:52source tags and perform a series of tasks; for open and close parenth, i=0 to
02:00increment it, l=sources length that will loop through all the elements in our
02:06array, i<l; and then increment i so i++.
02:15Now let's add in our curly brace and start entering the tasks that we want to perform.
02:21The first such task is to put the current src value in a variable named orig.
02:28So I'll put in orig = sources and then in square brackets i, that's the current
02:35object in the array that we're looping through, .getAttribute, parenthesis and
02:41the attribute we want to get is the source. Then we'll store that value in a new
02:46attribute called data-orig, sources i. setAttribute, parenthesis, the attribute
02:56we want to set in single quotes is data-orig, follow that with a comma (,) and
03:04the value we want to put in there is the variable, orig.
03:08Finally, we'll use regular expressions, which I'd like to think of as search and
03:13replace on steroids, to swap the bumper in file name for each of the sources.
03:18To do that, we'll start very similar to the last line, source i.setAttribute,
03:27and the attribute we want to set is src, follow that with a comma (,).
03:31Now the value we're going to put in there we'll use the JavaScript replace
03:36function in combination with a regular expression to put the new file name in the
03:40source value, orig.replace. We'll do an open and close parenthesis and here
03:47comes the regular expression.
03:49The regular expression will definitely appear complex, but when you break it
03:53down it's really not that bad. Basically, it will break the file name down into two parts.
03:59The first part, before the period in a file name, which is the basic name and then
04:03the other part, after the period, which is the extension.
04:07Let's write that by putting a escaping slash (/) and then a set up of parenthesis.
04:13This will group the pattern that is returned by the regular expression and here we
04:16do a \w+ and that will get whatever is within a certain group of words.
04:24After the next parenthesis, put another backslash (\) and a period (.).
04:29Now this period here is actually the dot in between the basic file name and the extension.
04:36So then, we put in another set of parenthesis, and again, we're going to do a
04:41\w+, exact same construct and after that particular parenthesis a forward slash (/).
04:49That part of the regular expression is now complete.
04:52So I'll put a comma (,) and then the main part of the file name that we're going
04:56to be using, then we substitute the basic name with bumper-in.
05:01If your assets are named something other than bumper-in, this is where you would change that.
05:05Now still staying within the single quotes, period and then $2.
05:11The $2 tells the regular expression to pick whatever the second grouping is
05:17and that's the second \w+ that we see here, which will be the extension and place it here.
05:24Okay, that's all done.
05:25I'll put a semicolon (;) there to close that out and now the first part of our JavaScript is complete.
05:31Be sure to save the file and let's move on to connecting the main video in the next lesson.
Collapse this transcript
Connecting the main video
00:00Now it's time to hook up our JavaScript to play the videos.
00:04We can do this, thanks to the Video DOM API supported by all modern browsers.
00:09The routine that we use will load the videos and if they're played by the user,
00:15listen for them to end.
00:17When they do end, we'll swap out the next video source and play it, unless it's
00:22the last one of course. Sound zippy? It is. So let's get to the code.
00:27We're going to start our code where we left off.
00:31I have opened here as an example, the index.htm file from Chapter 2_02_03 and
00:37we're going to put our next code right after the close of a for loop.
00:42First, let's get all the video objects and I'll put them in my variable videos.
00:48So I enter document.get ElementsByTagName, open and close parenth and this time
00:58the tag name is video.
01:00Next, we'll loop through those objects.
01:02Now this means that the routine should work regardless of the number of
01:05videos on your page.
01:08So I'll start with a for followed by an open and close parenthesis and then,
01:13i=0, l=videos.length;
01:24and the condition as long as i>l then increment i. Afterwards, an open and close curly brace.
01:35Now within the loop the first task is to load the video.
01:39So videos i that will get whatever the video is currently in the array.
01:47After the square bracket .load and this is one of those JavaScript API events we
01:53were talking about, put in a semicolon (;).
01:56Next, we'll add an EventListener, which waits for the video to end.
02:01This leaves the ability to start and stop videos in the site visitors' hands.
02:06Videos i.addEventListener, open and close parenth.
02:15And what is the event that we're listening for?
02:19It's the one called ended.
02:21And then, what do we do when that particular event occurs?
02:25Following the comma (,) we started off with a function, open and close parenth
02:31and then the curly brace pair.
02:33I'll scroll up a bit more.
02:34Once the ended event has fired we'll get all of the sources.
02:38The code to do this is almost the same as we have up here.
02:42So let's go ahead and copy that and I'll paste it as the first line here within my function.
02:49Now we also want to loop through these just as we did before.
02:52So I'm going to go up and copy the next line and then paste it in under here.
02:57Now I want to add a closing curly brace here then put my next set of code within that.
03:04Now as we loop through the sources we're going to get the attribute data-orig
03:10that we previously set up and put it in a variable named orig;
03:14orig=sources i.getAttribute, open and close parenth and then in single quotes
03:26the attribute we're getting data-orig.
03:30Now we can test to see whether there was anything in the attribute data-orig or not.
03:37If there is then, if orig exist that means we're working within the main video
03:44and not the bumpers and so we can set the src attribute to that value.
03:49So sources i.setAttribute, open and close parenth, the attribute we're setting
03:58source and the value we're putting in it is orig.
04:03I'm going to put my cursor after the if orig clause and create a new line.
04:09And now, we're going to clear out the data-orig attribute by doing
04:15sources i.setAttribute data-orig comma (,) I'm going to make sure to put my
04:25comma (,) after the closing single quote there - and just a empty pair of single quotes.
04:32Now let's go pass the next curly brace, which will take us out of the loop and
04:38once that's all done we'll load the current video.
04:44This will register whatever changes that we've made and play it.
04:51I just need to add a closing semi-colon (;) here and we're done.
04:56I know that's a lot to take in but we're almost home.
04:58The last step is to play the final bumper and we'll tackle that next.
Collapse this transcript
Playing the final bumper
00:00All right we're in the home stretch.
00:02All that's left is to load and play the final bumper.
00:06But to do that we have to make sure we're playing the main video and not the first bumper.
00:11And then, we have to listen for that main video to end.
00:15Sounds more complicated than it is, so let's go for it.
00:18I have opened index.htm from the Chapter 2 02_04 folder and we're basically
00:24picking up where we left off in the previous video.
00:27First, I'm going to bring my modified variable that I declared in the first line of the script into play.
00:35I'll use this variable to check to see if the src attribute has changed after
00:40the first bumper has played.
00:42So I need a flag to set modified to false and I'll put that right after line 102
00:50where it says videos i.load.
00:53Now once we have it set to false, the condition under which we wanted to be true
00:59is if we are playing the main video and the source attribute has been modified.
01:05After line 109 I'll make a new line and put in modified = true.
01:11Now I'm just going to create a new line here to get rid of this unneeded white space.
01:17We've already played bumper in and the main video.
01:20Now let's add the code to set up bumper-out.
01:23Well, this will be handled through an else clause that triggers if we're not in
01:28the main video anymore.
01:31So on line 111 I'll enter in else and then a curly brace pair.
01:36Within the else clause we first we'll get the src attribute and assign it to
01:42the current variable;
01:44current = sources i.getAttribute, open and close parenth and single quotes and
01:56the attribute we're getting, which is src.
01:58Next, we want to check to see if that source or src is equal to bumper-out.
02:04So we'll use the JavaScript index of function to check that condition.
02:11So this is an if statement;
02:12if current.indexOf open and close parenthesis and what we're checking for is bumper-out.
02:23Again, if your bumper out is named something other than what I have in a moment
02:29of clarity named bumper-out, this is where you would change that.
02:34So we'll check to see if it was found.
02:36If it was not found, a negative one will be returned by the index of function.
02:41And if it's not found, we want to do some stuff and the first thing that we want
02:47to do is set the attribute of source using our regular expression.
02:54So for that I'm going to go up, grab my regular expression here, come down and
03:06paste it in and you want to be sure to change bumper-in to bumper-out.
03:11Otherwise, everything else is exactly the same.
03:14Now after that line again we've modified the source.
03:18So let's put in a modified=true and we want to put in a else clause to go with
03:26our if, so this becomes an if else clause now.
03:29So if the condition is false we're going to pause the video and set modified to false.
03:37Finally, I need to wrap the load and play functions that you see on lines 123
03:44and 124 within if modified clause.
03:49This will prevent endless looping.
03:51So I'm going to create a little line in front of that and put in if modified and
03:58put in my closing curly brace after this load and this play.
04:03Let me go ahead and just indent it a little bit so it neatens up and we're all done.
04:09Well, it's time for the moment of truth. Oh, just a second.
04:13I just spotted a problem on line 114, the line that I copy and pasted in.
04:19You always have to be very careful with these;
04:22where I have orig.replace.
04:24I actually want to make current.replace.
04:29Otherwise everything else is as we set it up on this line.
04:33Now we're ready to save it again and let's try it out in the browser.
04:42Okay, I'll scroll down.
04:44There's my video with its poster image. I'll click play. (video playing)
04:55And our opening bumper is playing very smoothly.
04:58So let me scroll towards the end of that, play again. (video playing)
05:06And we seamlessly go in to the main video.
05:09Now let's scroll to the end of the main video. (video playing)
05:20And so is this video project.
05:22That's our HTML5 Video Bumper Project.
05:25Thanks for hanging in with me.
05:27I think the code really showcases one of the key benefits for using the HTML5 video tag.
05:33Now anytime the client wants to update their message all they need to do is cut
05:38a new bumper, convert to the needed sources and you're done.
05:41It is awesome, don't you think?
Collapse this transcript
Troubleshooting
00:00Testing often reveals problems that don't surface during development that's why you test.
00:06In this lesson, I'm going to go over any issues that have been encountered and
00:10discussed the fix and/or work around.
00:12Currently, I'm only aware of one such problem and that's with webKit browsers.
00:17So it affects both Safari and Chrome.
00:19I realize when testing Safari on a live site that the initial bumper was never ready to play.
00:26You'd see a loading message in the video player status bar down in this area.
00:33After some digging, I discovered that the issue had to do with MIME types.
00:38If your web host doesn't have the proper MIME type set up for your video formats,
00:42the video won't play.
00:45Now you can solve this issue in one of two ways.
00:48You can either set the MIME type through your web host interface;
00:51some host allow this while others do not.
00:54Or you can take matters into your own hands and create an HT access file to put in your site route.
01:00Let me show you how.
01:02Here in my code editor I have a new text file open and I'm going to add my
01:07three needed MIME types.
01:09I'll use the keyword AddType and then the MIME type that I want to add,
01:16video/mp4 space and the extension .mp4.
01:24Let's do that again.
01:26This time for video/ogg .ogv.
01:35One last time, AddType video/webm .webm.
01:45Once that's done, let's save the file in your site root and you would save it
01:52as .htaccess, no extension just .htaccess.
01:58The dot is important because it designates a system file.
02:01Once you've saved the file, post it online in your site root. That's it.
02:06Your video complete with in and out bumpers should be good to go.
Collapse this transcript
Conclusion
Next steps
00:00I hope you found HTML5 Projects Video Bumpers helpful and will be able to put to
00:05it to use in the next website that utilizes video bumpers.
00:10HTML5 has a lot to offer web designers and I have a number of courses that
00:14explore this rich territory.
00:16Check them out in the lynda.com online training library when you get a chance.
00:20I hope you have a great day!
Collapse this transcript


Suggested courses to watch next:


HTML5: Video and Audio in Depth (2h 7m)
Steve Heffernan

HTML5 Projects: Customized Photo Cards (44m 20s)
Joseph Lowery


Are you sure you want to delete this bookmark?

cancel

Bookmark this Tutorial

Name

Description

{0} characters left

Tags

Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading
cancel

bookmark this course

{0} characters left Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading

Error:

go to playlists »

Create new playlist

name:
description:
save cancel

You must be a lynda.com member to watch this video.

Every course in the lynda.com library contains free videos that let you assess the quality of our tutorials before you subscribe—just click on the blue links to watch them. Become a member to access all 104,069 instructional videos.

get started learn more

If you are already an active lynda.com member, please log in to access the lynda.com library.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Access to lynda.com videos

Your organization has a limited access membership to the lynda.com library that allows access to only a specific, limited selection of courses.

You don't have access to this video.

You're logged in as an account administrator, but your membership is not active.

Contact a Training Solutions Advisor at 1 (888) 335-9632.

How to access this video.

If this course is one of your five classes, then your class currently isn't in session.

If you want to watch this video and it is not part of your class, upgrade your membership for unlimited access to the full library of 2,024 courses anytime, anywhere.

learn more upgrade

You can always watch the free content included in every course.

Questions? Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com.

You don't have access to this video.

You're logged in as an account administrator, but your membership is no longer active. You can still access reports and account information.

To reactivate your account, contact a Training Solutions Advisor at 1 1 (888) 335-9632.

Need help accessing this video?

You can't access this video from your master administrator account.

Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com for help accessing this video.

preview image of new course page

Try our new course pages

Explore our redesigned course pages, and tell us about your experience.

If you want to switch back to the old view, change your site preferences from the my account menu.

Try the new pages No, thanks

site feedback

Thanks for signing up.

We’ll send you a confirmation email shortly.


By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked