Move command line options to Sphinxdoc

Change-Id: Ia043612012ff3d101afcf3366d95f9001f0dc8f4
This commit is contained in:
KongQun Yang 2017-09-06 13:57:07 -07:00
parent a9d957e7f0
commit 0adf0492ab
12 changed files with 423 additions and 0 deletions

View File

@ -0,0 +1,23 @@
Chunking options
^^^^^^^^^^^^^^^^
--segment_duration <seconds>
Segment duration in seconds. If single_segment is specified, this parameter
sets the duration of a subsegment; otherwise, this parameter sets the
duration of a segment. Actual segment durations may not be exactly as
requested.
--fragment_duration <seconds>
Fragment duration in seconds. Should not be larger than the segment
duration. Actual fragment durations may not be exactly as requested.
--segment_sap_aligned
Force segments to begin with stream access points. Default enabled.
--fragment_sap_aligned
Force fragments to begin with stream access points. This flag implies
*segment_sap_aligned*. Default enabled.

View File

@ -0,0 +1,45 @@
DASH options
^^^^^^^^^^^^
--generate_static_mpd
If enabled, generates static mpd. If segment_template is specified in
stream descriptors, shaka-packager generates dynamic mpd by default; if
this flag is enabled, shaka-packager generates static mpd instead. Note
that if segment_template is not specified, shaka-packager always generates
static mpd regardless of the value of this flag.
--mpd_output <file_path>
MPD output file name.
--base_urls <comma separated url>
Comma separated BaseURLs for the MPD. The values will be added as <BaseURL>
element(s) immediately under the <MPD> element.
--min_buffer_time <seconds>
Specifies, in seconds, a common duration used in the definition of the MPD
Representation data rate.
--minimum_update_period <seconds>
Indicates to the player how often to refresh the media presentation
description in seconds. This value is used for dynamic MPD only.
--time_shift_buffer_depth <seconds>
Guaranteed duration of the time shifting buffer for dynamic media
presentations, in seconds.
--suggested_presentation_delay <seconds>
Specifies a delay, in seconds, to be added to the media presentation time.
This value is used for dynamic MPD only.
--default_language <language>
Any tracks tagged with this language will have <Role ... value=\"main\" />
in the manifest. This allows the player to choose the correct default
language for the content.

View File

@ -0,0 +1,15 @@
General encryption options
^^^^^^^^^^^^^^^^^^^^^^^^^^
--protection_scheme <scheme>
Specify a protection scheme, 'cenc' or 'cbc1' or pattern-based protection
schemes 'cens' or 'cbcs'.
--vp9_subsample_encryption, --novp9_subsample_encryption
Enable / disable VP9 subsample encryption. Enabled by default.
--clear_lead <seconds>
Clear lead in seconds if encryption is enabled.

View File

@ -0,0 +1,18 @@
HLS options
^^^^^^^^^^^
--hls_master_playlist_output <file_path>
Output path for the master playlist for HLS. This flag must be used to
output HLS.
--hls_base_url <url>
The base URL for the Media Playlists and media files listed in the
playlists. This is the prefix for the files.
--hls_playlist_type <type>
VOD, EVENT, or LIVE. This defines the EXT-X-PLAYLIST-TYPE in the HLS
specification. For hls_playlist_type of LIVE, EXT-X-PLAYLIST-TYPE tag is
omitted.

View File

@ -0,0 +1,18 @@
HLS specific stream descriptor fields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:hls_name:
Required for audio when outputting HLS. name of the output stream. This is
not (necessarily) the same as output. This is used as the NAME attribute for
EXT-X-MEDIA.
:hls_group_id:
Required for audio when outputting HLS. The group ID for the output stream.
This is used as the GROUP-ID attribute for EXT-X-MEDIA.
:playlist_name:
Required for HLS output. Name of the playlist for the stream. Usually ends
with '.m3u8'.

View File

@ -0,0 +1,20 @@
MP4 output options
^^^^^^^^^^^^^^^^^^
--mp4_include_pssh_in_stream
MP4 only: include pssh in the encrypted stream. Default enabled.
--mp4_use_decoding_timestamp_in_timeline
If set, decoding timestamp instead of presentation timestamp will be used
when generating media timeline, e.g. timestamps in sidx and mpd. This is
to workaround a Chromium bug that decoding timestamp is used in buffered
range, https://crbug.com/398130. Default false.
--num_subsegments_per_sidx <number>
Set the number of subsegments in each SIDX box. If 0, a single SIDX box is
used per segment; if -1, no SIDX box is used; Otherwise, the muxer packs N
subsegments in the root SIDX of the segment, with
segment_duration/N/fragment_duration fragments per subsegment.

View File

@ -0,0 +1,39 @@
Playready encryption options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--enable_playready_encryption
Enable encryption with playready key.
--playready_server_url <url>
Playready packaging server url.
--program_identifier <program_identifier>
Program identifier for packaging request.
--playready_key_id <hex>
Playready key id in hex.
--playready_key <hex>
Playready key in hex.
--ca_file <file path>
Absolute path to the certificate authority file for the server cert.
PEM format.
--client_cert_file <file path>
Absolute path to client certificate file.
--client_cert_private_key_file <file path>
Absolute path to the private key file.
--client_cert_private_key_password <string>
Password to the private key file.

View File

@ -0,0 +1,30 @@
Raw key encryption options
^^^^^^^^^^^^^^^^^^^^^^^^^^
--enable_fixed_key_encryption
Enable encryption with fixed key.
--enable_fixed_key_decryption
Enable decryption with fixed key.
--key_id <32-digit hex string>
The key id in hex string format.
HEX.
--key <32-digit hex string>
The key in hex string format.
--iv <16-digit or 32-digit hex string>
IV in hex string format. If not specified, a random IV will be generated.
This flag should only be used for testing. IV must be either 8 bytes
(16 digits HEX) or 16 bytes (32 digits in HEX).
--pssh <hex string>
One or more concatenated PSSH boxes in hex string format. If not specified,
a `v1 common PSSH box <https://goo.gl/s8RIhr>`_ will be generated.

View File

@ -0,0 +1,51 @@
Segment template formatting
^^^^^^^^^^^^^^^^^^^^^^^^^^^
The implementation is based on *Template-based Segment URL construction*
described in ISO/IEC 23009-1:2014.
.. table:: Supported identifiers
============== ============================== ==============================
$<Identifier>$ Substitution parameter Format
============== ============================== ==============================
$$ is an escape sequence, i.e. Not applicable.
"$$" is replaced with a single
"$".
$Number$ This identifier is substitued The format tag may be present.
with the *number* of the
corresponding Segment. If no format tag is present, a
default format tag with
*width*\=1 shall be used.
$Time$ This identifier is substituted The format tag may be present.
with the value of the
**SegmentTimeline@t** If no format tag is present, a
attribute for the Segment default format tag with
being accessed. Either *width*\=1 shall be used.
$Number$ or $Time$ may be used
but not both at the same time.
============== ============================== ==============================
.. note::
Identifiers $RepresentationID$ and $Bandwidth$ are not supported in this
version. Please file an `issue
<https://github.com/google/shaka-packager/issues>`_ if you want it to be
supported.
In each URL, the identifiers shall be replaced by the substitution parameter
per the definition in the above table. Identifier matching is case-sensitive.
Each identifier may be suffixed, within the enclosing '$' characters, with an
additional format tag aligned with the *printf* format tag as defined in IEEE
1003.1-2008 following this prototype::
%0[width]d
The *width* parameter is an unsigned integer that provides the minimum number
of characters to be printed. If the value to be printed is shorter than this
number, the result shall be padded with zeros. The value is not truncated even
if the result is larger.
Strings outside identifiers shall only contain characters that are permitted
within URLs according to RFC 3986.

View File

@ -0,0 +1,71 @@
Stream descriptors
^^^^^^^^^^^^^^^^^^
There can be multiple *stream_descriptor* with input from the same "file" or
multiple different "files".
Stream is of the form::
{field}={value}[,{field}={value}]...
These are the available fields:
:input (in):
input/source media "file" path, which can be regular files, pipes, udp
streams. See :doc:`/options/udp_file_options` on additional options for UDP
files.
:stream_selector (stream):
Required field with value 'audio', 'video', 'text' or stream number (zero
based).
:output (out):
Required output file path (single file).
:init_segment:
initialization segment path (multiple file).
:segment_template (segment):
Optional value which specifies the naming pattern for the segment files,
and that the stream should be split into multiple files. Its presence should
be consistent across streams. See
:doc:`/options/segment_template_formatting`.
:bandwidth (bw):
Optional value which contains a user-specified content bit rate for the
stream, in bits/sec. If specified, this value is propagated to (HLS)
EXT-X-STREAM-INF:BANDWIDTH or (DASH) Representation@bandwidth and the
$Bandwidth$ template parameter for segment names. If not specified, the
bandwidth value is estimated from content bitrate. Note that it only affects
the generated manifests/playlists; it has no effect on the media content
itself.
:language (lang):
Optional value which contains a user-specified language tag. If specified,
this value overrides any language metadata in the input stream.
:output_format (format):
Optional value which specifies the format of the output files (MP4 or WebM).
If not specified, it will be derived from the file extension of the output
file.
:skip_encryption=0|1:
Optional. Defaults to 0 if not specified. If it is set to 1, no encryption
of the stream will be made.
:trick_play_factor (tpf):
Optional value which specifies the trick play, a.k.a. trick mode, stream
sampling rate among key frames. If specified, the output is a trick play
stream.
.. include:: /options/hls_stream_descriptors.rst

View File

@ -0,0 +1,18 @@
UDP file options
^^^^^^^^^^^^^^^^
UDP file is of the form udp://ip:port[?options]. Here is the list of supported
options:
:reuse=0|1:
Allow or disallow reusing UDP sockets.
:interface=<addr>, source=<addr>:
Multicast group interface address. Only the packets sent to this address is
received.
:timeout=<microseconds>:
UDP timeout in microseconds.

View File

@ -0,0 +1,75 @@
Widevine encryption options
^^^^^^^^^^^^^^^^^^^^^^^^^^^
--enable_widevine_encryption
Enable encryption with Widevine key server. User should provide either
AES signing key (--aes_signing_key, --aes_signing_iv) or RSA signing key
(--rsa_signing_key_path).
--enable_widevine_decryption
Enable decryption with Widevine key server. User should provide either
AES signing key (--aes_signing_key, --aes_signing_iv) or RSA signing key
(--rsa_signing_key_path).
--include_common_pssh
When using Widevine encryption, include an additional v1 PSSH box for the
common system ID that includes the key IDs. See https://goo.gl/s8RIhr.
--key_server_url <url>
Key server url. Required for Widevine encryption and decryption.
--content_id <hex>
Content identifier that uniquely identifies the content.
--policy <policy>
The name of a stored policy, which specifies DRM content rights.
--max_sd_pixels <pixels>
The video track is considered SD if its max pixels per frame is no higher
than *max_sd_pixels*. Default: 442368 (768 x 576).
--max_hd_pixels <pixels>
The video track is considered HD if its max pixels per frame is higher than
*max_sd_pixels*, but no higher than *max_hd_pixels*. Default: 2073600
(1920 x 1080).
--max_uhd1_pixels <pixels>
The video track is considered UHD1 if its max pixels per frame is higher
than *max_hd_pixels*, but no higher than *max_uhd1_pixels*. Otherwise it is
UHD2. Default: 8847360 (4096 x 2160).
--signer <signer>
The name of the signer.
--aes_signing_key <hex>
AES signing key in hex string. *aes_signing_iv* is required if
*aes_signing_key* is specified. This option is exclusive with
*rsa_signing_key_path*.
--aes_signing_iv <hex>
AES signing iv in hex string.
--rsa_signing_key_path <file path>
Path to the file containing PKCS#1 RSA private key for request signing.
This option is exclusive with *aes_signing_key*.
--crypto_period_duration <seconds>
Defines how often key rotates. If it is non-zero, key rotation is enabled.
--group_id <hex>
Identifier for a group of licenses.