Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added an faq #3805

Merged
merged 8 commits into from
Dec 2, 2016
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions docs/guides/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# FAQ

## Q: What is video.js?
video.js is an extendable wrapper around the native video element. It does the following:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

framework rather than wrapper?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I don't really feel like either is quite appropriate. Library is probably the most accurate term. I think I've used "decorates a native video element" as a description before.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

videojs.com calls it "The Player Framework"

* Offers a plugin API so that different types of video can be handed to the native
video element. IE: HLS, Flash, or HTML5 video.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should probably be:

video element (e.g. HLS, Flash, etc).

* Unifies the native video api across browsers (polyfilling support for features
* if necessary)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no bullet on this line

* Offers an extendable and themable UI
* Takes care of accessibility for the user (in-progress)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's worth introducing core plugins like videojs-contrib-* as part of the ecosystem early as they make a big difference to the feature set.


## Q: How do I install video.js?
Currently video.js can be installed using bower, npm, or by serving a release file from
a github tag. For information on doing any of those see the [install guide](http://videojs.com/getting-started/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternatively, you can use the CDN hosted version.


## Q: What do video.js version numbers mean?
video.js follows [semver](http://semver.org/) which means that the API should not change
out from under a userunless there is a major version increase.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

user unless


## Q: How can I troubleshoot playback issues?
See the [troubleshooting guide](/docs/guides/troubleshooting.md) for information on troubleshooting playback issues

## Q: A video does not play in a specific browser. Why?
Chrome and Safari both rely on byte-range requests for playing back video. So It is important to
Make sure that the location which is serving your video files supports byte-range requests.
Often PHP serving video is an issue as it does not support byte-range requests by default.

## Q: Why does the entire video download before playback? Why does the video load for a long time?
This could mean that your video is not encoded with the metadata -- things like duration,
video dimensions, etc -- at the beginning of the video. This means that the browser will
need to load the entire video before it know how long the video is and what to do with
the video.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I drafted some expanded answers for these at #3805 (comment)


## Q: I see an error thrown that mentions `vdata12345`. What is that?
This error is thrown when an element that is associated with a component is removed
from the DOM but the event handlers associated with the element are not removed. This
is almost always due to event listeners not being disposed when dispose is called on
a component.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If troubleshooting is going to be a separate doc, this would be better there

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is still up in the air, but I think we may make a troubleshooting guide and link this question there when we have it.


## Q: What media formats does video.js support?
This depends on the browsers support, video.js will work off of that. If Flash is
avialable Flash videos can also be played but only if the Flash tech is included with
video.js.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This depends on the formats supported by the browser's HTML5 video element, and the playback techs made available to video.js. For example, video.js 5 includes the Flash tech by default which enables the playback of FLV video where the Flash plugin is available.


## Q: How can I hide the links to my video/subtitles/audio/tracks?
This is outside of the scope of video.js and there are things that can be done to make
it harder, but it will never be completely possible.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's impossible to hide the network requests a browser makes and difficult to sufficiently obfuscate URLs in the source. Techniques such as token authentication may help but are outside of the scope of video.js.

For content that must be highly secure videojs-contrib-eme adds DRM support.


## Q: I think I found a bug with video.js or I want to add a feature. What should I do?
### if you think that you can fix the issue or add the feature
Submit a pull request to the [video.js repo](https://github.com/videojs/video.js/pulls).
Make sure to follow the [contributing guide](/CONTRIBUTING.md#contributing-code) and
the [pull request template](/.github/PULL_REQUEST_TEMPLATE.md).

### If you don't think you can fix the issue or add the feature
Open an [issue on the video.js repo](https://github.com/videojs/video.js/issues). Make
sure that you follow the [issue template](/.github/ISSUE_TEMPLATE.md) and the
[contributing guide](/CONTRIBUTING.md#filing-issues) so that we can better assist you
with your issue.

## Q: What is a [reduced test case](https://css-tricks.com/reduced-test-cases/)?
A [reduced test case](https://css-tricks.com/reduced-test-cases/) is an example of the
problem that you are facing in isolation. Think of it as example page that reproduces
the issue in the least amount of possible code. We have a [starter example](http://jsbin.com/axedog/edit?html,output)
for reduced test cases.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

http://jsbin.com/axedog has an old version of video.js

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gkatsev can this be updated or do we have to change the url?


## Q: How do a make a plugin for video.js?
See the [plugin guide](/docs/guides/plugins.md) for information on making a plugin for video.js.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A "what is a plugin?" question would be useful first.


## Q: How do I add a button to video.js?
See the [button guide](/docs/guides/button.md) for information on adding a button to video.js.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we comment this out until we get a button guide?


## Q: Where can I find a list of video.js plugins?
A list of plugins is avialable on [videojs.com](http://videojs.com/plugins).

## Q: How can I get my plugin listend on the website?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"listend" -> "listed"

Add the 'videojs-plugin' [keyword to your array in package.json](https://docs.npmjs.com/files/package.json#keywords)
and publish your package to npm.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe mention that the generator provides this by default? 😄


## Q: Where can I find a list of video.js skins?
See the [video.js github wiki](https://github.com/videojs/video.js/wiki/Skins).

## Q: Does video.js work as an audio only player?
Yes! It can be used to play audio only files in a `<video>` or `<audio>` tag. The
difference being that the `<audio>` tag will not have a blank display area and the `<video>`
tag will.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While Flash is still around, worth noting that audio only doesn't work in Flash.


## Q: Does video.js support audio tracks?
Yes! See the [audio tracks guide](/docs/guides/audio-tracks.md) for information on using audio tracks.

## Q: Does video.js support video tracks?
The code for video tracks exists but it has not been tested. See the [video tracks guide](/docs/guides/video-tracks.md)
for more information on using video tracks.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Video track support is in development" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think all the code is done, but we never got around to testing it. It could very well work for some use cases at this point.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The guide will now mention that it's "experimental". It should work in theory but since nobody supports it yet...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The guide will mention that it's an experimental technology at the top.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So should I just bring this answer in line with the others? Or should I keep the mention of it not having been tested.


### Q: Does video.js support text tracks (captions, subtitles, etc)?
Yes! See the [text tracks guide](/docs/guides/text-track.md) for information on using text tracks.

## Q: Does video.js support HLS (HTTP Live streaming) video?
video.js supports HLS video if the native HTML5 element supports HLS (e.g. Safari, Edge,
Chrome for Android, and iOS). For browsers without native support see the [videojs-contrib-hls](https://github.com/videojs/videojs-contrib-hls)
project which adds support.

## Q: Does video.js support MPEG Dash video?
video.js itself does not support MPEG DASH, but a project called [videojs-contrib-dash](https://github.com/videojs/videojs-contrib-dash)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"but a project" -> "but there is a project"

which is maintained by the video.js organization.

## Q: Does video.js support live video?
Yes! Video.js adds support for live videos.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Flash tech supports simple RTMP streams, and videojs-contrib-hls add support for live HLS.


## Q: Can video.js be required in node.js?
Yes! Please submit an issue if this does not work. See the question on submiting issues
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"submiting" -> "submitting"

to find out how.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicates the "how do I install" question earlier.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this question was to address the fact that video.js can be used server side in node.js. Some packages on npm can only be used in the browser, as weird as that sounds.


## Q: Does video.js work with webpack?
Yes! Please submit an issue if this does not work. See the question on submiting issues
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"submiting" -> "submitting"

to find out how.

## Q: Is video.js on bower?
Yes! See the [install guide](http://videojs.com/getting-started/) for more information.