init
This commit is contained in:
commit
c5cd492449
475 changed files with 27928 additions and 0 deletions
19
technology/media/Codecs.md
Normal file
19
technology/media/Codecs.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
tags: ["meta"]
|
||||
obj: meta/collection
|
||||
---
|
||||
# List of Codecs
|
||||
## Video
|
||||
- [H.264](video/H.264.md)
|
||||
- [H.265](video/H.265.md)
|
||||
- [VP9](video/VP9.md)
|
||||
- [AV1](video/AV1.md)
|
||||
|
||||
## Audio
|
||||
- [Opus](audio/Opus.md)
|
||||
- [FLAC](audio/FLAC.md)
|
||||
- [WAV](audio/WAV.md)
|
||||
|
||||
## Images
|
||||
- [PNG](image/PNG.md)
|
||||
- [AVIF](image/AVIF.md)
|
32
technology/media/Matroska.md
Normal file
32
technology/media/Matroska.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
aliases: ["mkv"]
|
||||
website: https://matroska.org
|
||||
obj: concept
|
||||
---
|
||||
# Matroska
|
||||
The Matroska Multimedia Container is a free and open container format, a file format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. It is a universal format for storing common multimedia content, like movies or TV shows. Matroska is similar in concept to other containers like AVI, MP4, or Advanced Systems Format (ASF), but is entirely open in specification, with implementations consisting mostly of open source software. Matroska file extensions are .mkv for video (which may include subtitles or audio), .mk3d for stereoscopic video, .mka for audio-only files (which may include subtitles), and .mks for subtitles only.
|
||||
Editing and creation of Matroska files can be done using [MKVToolnix](../applications/media/MKVToolnix.md).
|
||||
|
||||
| Name | Value |
|
||||
| ------------------------ | -------------------------------------- |
|
||||
| Extension | .mkv .mk3d .mka .mks |
|
||||
| [MIME](../files/MIME.md) | video/x-matroska <br> audio/x-matroska |
|
||||
| Website | https://matroska.org |
|
||||
|
||||
## Features
|
||||
|
||||
**_Matroska_** is designed with the future in mind. It incorporates features you would expect from a modern container format, like:
|
||||
- Fast seeking in the file
|
||||
- Chapter entries
|
||||
- Full metadata (tags) support
|
||||
- Selectable subtitle/audio/video streams
|
||||
- Modularly expandable
|
||||
- Error resilience (can recover playback even when the stream is damaged)
|
||||
- Streamable over the internet and local networks ([HTTP](../internet/HTTP.md), CIFS, [FTP](../internet/FTP.md), etc)
|
||||
- _Menus (like DVDs have)_
|
||||
|
||||
## What file extensions does Matroska use?
|
||||
- `.mkv`: Used for files that contain at least one video track (usually with at least one audio track and optionally with subtitle tracks). This is the most commonly used extension.
|
||||
- `.mka`: Used for audio only files, can contain any supported audio compression format, such as MP2, MP3, Vorbis, AAC, AC3, DTS, or PCM
|
||||
- `.mk3d`: A special case of `.mkv` containing stereoscopic (3D) video
|
||||
- `.mks`: Used for files that only contain subtitles
|
20
technology/media/audio/FLAC.md
Normal file
20
technology/media/audio/FLAC.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
repo: https://gitlab.xiph.org/xiph/flac
|
||||
website: https://xiph.org/flac/
|
||||
obj: codec
|
||||
---
|
||||
# FLAC
|
||||
FLAC (Free Lossless Audio Codec) is an audio coding format for lossless compression of digital audio, developed by the Xiph.Org Foundation, and is also the name of the free software project producing the FLAC tools, the reference software package that includes a codec implementation. Digital audio compressed by FLAC's algorithm can typically be reduced to between 50 and 70 percent of its original size and decompresses to an identical copy of the original audio data.
|
||||
|
||||
FLAC is an open format with royalty-free licensing and a reference implementation which is free software. FLAC has support for metadata tagging, album cover art, and fast seeking.
|
||||
|
||||
| Name | Value |
|
||||
| --------------- | --------------------------------- |
|
||||
| Initial Release | 2001-07-20 |
|
||||
| Repository | https://gitlab.xiph.org/xiph/flac |
|
||||
| Website | https://xiph.org/flac/ |
|
||||
|
||||
## Comparison to other formats
|
||||
FLAC is specifically designed for efficient packing of audio data, unlike general-purpose lossless algorithms such as DEFLATE, which are used in [ZIP](../../files/ZIP.md) and gzip. While [ZIP](../../files/ZIP.md) may reduce the size of a CD-quality audio file by 10–20%, FLAC is able to reduce the size of audio data by 40–50% by taking advantage of the characteristics of audio.
|
||||
The technical strengths of FLAC compared to other lossless formats lie in its ability to be streamed and decoded quickly, independent of compression level.
|
||||
Since FLAC is a lossless scheme, it is suitable as an archive format for owners of CDs and other media who wish to preserve their audio collections. If the original media are lost, damaged, or worn out, a FLAC copy of the audio tracks ensures that an exact duplicate of the original data can be recovered at any time. An exact restoration from a lossy copy (e.g., MP3) of the same data is impossible. FLAC being lossless means it is highly suitable for transcoding e.g. to MP3, without the normally associated transcoding quality loss between one lossy format and another. A CUE file can optionally be created when ripping a CD. If a CD is read and ripped perfectly to FLAC files, the CUE file allows later burning of an audio CD that is identical in audio data to the original CD, including track order and pregap, but excluding CD-Text and other additional data such as lyrics and CD+G graphics.
|
17
technology/media/audio/Opus.md
Normal file
17
technology/media/audio/Opus.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
website: https://opus-codec.org/
|
||||
obj: codec
|
||||
---
|
||||
# Opus
|
||||
Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.
|
||||
|
||||
Opus combines the speech-oriented LPC-based SILK algorithm and the lower-latency MDCT-based CELT algorithm, switching between or combining them as needed for maximal efficiency. Bitrate, audio bandwidth, complexity, and algorithm can all be adjusted seamlessly in each frame. Opus has the low algorithmic delay (26.5 ms by default) necessary for use as part of a real-time communication link, networked music performances, and live lip sync; by trading-off quality or bitrate, the delay can be reduced down to 5 ms. Its delay is exceptionally low compared to competing [codecs](../Codecs.md), which require well over 100 ms, yet Opus performs very competitively with these formats in terms of quality per bitrate.
|
||||
|
||||
As an open format standardized through RFC 6716, a reference implementation called libopus is available under the New BSD License. The reference has both fixed-point and floating-point optimizations for low- and high-end devices, with SIMD optimizations on platforms that support them. All known software patents that cover Opus are licensed under royalty-free terms. Opus is widely used as the voice-over-IP (VoIP) codec in applications such as Discord, WhatsApp, and the PlayStation 4.
|
||||
|
||||
| Name | Value |
|
||||
| --------- | ----------------------- |
|
||||
| Extension | .opus |
|
||||
| [MIME](../../files/MIME.md) | audio/ogg<br>audio/opus |
|
||||
| Website | https://opus-codec.org/ |
|
||||
|
10
technology/media/audio/WAV.md
Normal file
10
technology/media/audio/WAV.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
obj: codec
|
||||
---
|
||||
# WAV
|
||||
Waveform Audio File Format (WAVE, or WAV due to its filename extension; pronounced "wave") is an audio file format standard, developed by IBM and Microsoft, for storing an audio bitstream on PCs. It is the main format used on Microsoft Windows systems for uncompressed audio. The usual bitstream encoding is the linear pulse-code modulation (LPCM) format.
|
||||
|
||||
| Name | Value |
|
||||
| --------- | -------------------------------------- |
|
||||
| Extension | .wav<br>.wave |
|
||||
| [MIME](../../files/MIME.md) | audio/x-wav<br>audio/wav<br>audio/wave |
|
227
technology/media/ffmpeg.md
Normal file
227
technology/media/ffmpeg.md
Normal file
|
@ -0,0 +1,227 @@
|
|||
---
|
||||
website: https://ffmpeg.org/
|
||||
repo: https://github.com/FFmpeg/FFmpeg
|
||||
obj: application
|
||||
---
|
||||
|
||||
# ffmpeg
|
||||
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of video and audio files. It is widely used for format transcoding, basic editing (trimming and concatenation), video scaling, video post-production effects and standards compliance (SMPTE, ITU).
|
||||
|
||||
FFmpeg also includes other tools: `ffplay`, a simple media player and `ffprobe`, a command-line tool to display media information. Among included libraries are libavcodec, an audio/video codec library used by many commercial and free software products, libavformat (Lavf), an audio/video container mux and demux library, and libavfilter, a library for enhancing and editing filters through a Gstreamer-like filtergraph.
|
||||
|
||||
FFmpeg is part of the workflow of many other software projects, and its libraries are a core part of software media players such as VLC, and has been included in core processing for [YouTube](../internet/websites/clearnet/YouTube.md) and Bilibili. Encoders and decoders for many audio and video [file formats](../files/File%20Formats.md) are included, making it highly useful for the transcoding of common and uncommon media files.
|
||||
|
||||
**Example:**
|
||||
```shell
|
||||
ffmpeg -i INPUT.mp4 OUTPUT.mkv
|
||||
```
|
||||
|
||||
## Usage
|
||||
Usage: `ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... `
|
||||
|
||||
### Options
|
||||
| Option | Description |
|
||||
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `-i [input]` | Input a file |
|
||||
| `-map [input]:[stream]` | Map input streams |
|
||||
| `-c:[stream]:[input], -codec:[stream]:[input] [codec]` | Specify codec. If `codec` is `copy` stream will not be reencoded. |
|
||||
| `-t duration (input/output)` | When used as an input option (before `-i`), limit the duration of data read from the input file. |
|
||||
| `-to position (input/output)` | Stop writing the output or reading the input at position. |
|
||||
| `-ss position (input/output)` | When used as an input option (before `-i`), seeks in this input file to position. Note that in most formats it is not possible to seek exactly, so ffmpeg will seek to the closest seek point before position. |
|
||||
| `-sseof position (input)` | Like the `-ss` option but relative to the "end of file". That is negative values are earlier in the file, 0 is at EOF. |
|
||||
| `-itsoffset offset (input)` | Set the input time offset.<br>offset must be a time duration specification.<br>The offset is added to the timestamps of the input files. Specifying a positive offset means that the corresponding streams are delayed by the time duration specified in offset. |
|
||||
| `-itsscale scale (input,per-stream)` | Rescale input timestamps. scale should be a floating point number. |
|
||||
| `-timestamp date (output)` | Set the recording timestamp in the container.<br>date must be a date specification. |
|
||||
| `-metadata[:metadata_specifier] key=value (output,per-metadata)` | Set a metadata key/value pair.<br>An optional metadata_specifier may be given to set metadata on streams, chapters or programs.<br>This option overrides metadata set with `-map_metadata`. It is also possible to delete metadata by using an empty value.<br>For example, for setting the title in the output file: `ffmpeg -i in.avi -metadata title="my title" out.flv`<br>To set the language of the first audio stream: `ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT` |
|
||||
| `-filter[:stream_specifier] filtergraph (output,per-stream)` | Create the filtergraph specified by filtergraph and use it to filter the stream. |
|
||||
| `-frames[:stream_specifier] framecount (output,per-stream)` | Stop writing to the stream after framecount frames. |
|
||||
| `-q[:stream_specifier] q (output,per-stream), -qscale[:stream_specifier] q (output,per-stream)` | Use fixed quality scale (VBR). The meaning of q/qscale is codec-dependent. If qscale is used without a stream_specifier then it applies only to the video stream, this is to maintain compatibility with previous behavior and as specifying the same codec specific value to 2 different [codecs](Codecs.md) that is audio and video generally is not what is intended when no stream_specifier is used. |
|
||||
| `-attach filename (output)` | Add an attachment to the output file. This is supported by a few formats like [Matroska](Matroska.md) for e.g. fonts used in rendering subtitles. Attachments are implemented as a specific type of stream, so this option will add a new stream to the file. It is then possible to use per-stream options on this stream in the usual way. Attachment streams created with this option will be created after all the other streams (i.e. those created with `-map`or automatic mappings). <br>Note that for Matroska you also have to set the mimetype metadata tag: `ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv` |
|
||||
| `-dump_attachment[:stream_specifier] filename (input,per-stream)` | Extract the matching attachment stream into a file named filename. If filename is empty, then the value of the filename metadata tag will be used. <br>E.g. to extract the first attachment to a file named ’out.ttf’: `ffmpeg -dump_attachment:t:0 out.ttf -i INPUT`<br>To extract all attachments to files determined by the filename tag: `ffmpeg -dump_attachment:t "" -i INPUT` |
|
||||
|
||||
### Video Options
|
||||
| Option | Description |
|
||||
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `-r[:stream_specifier] fps (input/output,per-stream)` | Set frame rate (Hz value, fraction or abbreviation). |
|
||||
| `-aspect[:stream_specifier] aspect (output,per-stream)` | Set the video display aspect ratio specified by aspect.<br>aspect can be a floating point number string, or a string of the form num:den, where num and den are the numerator and denominator of the aspect ratio. For example "4:3", "16:9", "1.3333", and "1.7777" are valid argument values.<br>If used together with -vcodec copy, it will affect the aspect ratio stored at container level, but not the aspect ratio stored in encoded frames, if it exists. |
|
||||
| `-pix_fmt[:stream_specifier] format (input/output,per-stream)` | Set pixel format. Use -pix_fmts to show all the supported pixel formats. If the selected pixel format can not be selected, ffmpeg will print a warning and select the best pixel format supported by the encoder. If pix_fmt is prefixed by a +, ffmpeg will exit with an error if the requested pixel format can not be selected, and automatic conversions inside filtergraphs are disabled. If pix_fmt is a single +, ffmpeg selects the same pixel format as the input (or graph output) and automatic conversions are disabled. |
|
||||
|
||||
### Audio Options
|
||||
| Option | Description |
|
||||
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `-ar[:stream_specifier] freq (input/output,per-stream)` | Set the audio sampling frequency. For output streams it is set by default to the frequency of the corresponding input stream. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options. |
|
||||
| `-ac[:stream_specifier] channels (input/output,per-stream)` | Set the number of audio channels. For output streams it is set by default to the number of input audio channels. For input streams this option only makes sense for audio grabbing devices and raw demuxers and is mapped to the corresponding demuxer options. |
|
||||
|
||||
### Advanced Options
|
||||
| Option | Description |
|
||||
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `-ignore_unknown` | Ignore input streams with unknown type instead of failing if copying such streams is attempted. |
|
||||
| `-copy_unknown` | Allow input streams with unknown type to be copied instead of failing if copying such streams is attempted. |
|
||||
| `-map_chapters input_file_index (output)` | Copy chapters from input file with index input_file_index to the next output file. If no chapter mapping is specified, then chapters are copied from the first input file with at least one chapter. Use a negative file index to disable any chapter copying. |
|
||||
|
||||
### Filters
|
||||
[List of all filters](https://ffmpeg.org/ffmpeg-filters.html)
|
||||
|
||||
#### Video Filters
|
||||
##### Scale
|
||||
Syntax: `-vf scale=w:h`
|
||||
Example: Resize video to 720x480 pixels
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf scale=720:480 output_scaled.mp4
|
||||
```
|
||||
|
||||
##### Crop
|
||||
Syntax: `-vf crop=w:h:x:y`
|
||||
Example: Crop video to 640x480 pixels starting from the top-left corner
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf crop=640:480:0:0 output_cropped.mp4
|
||||
```
|
||||
|
||||
##### Rotate
|
||||
Syntax: `-vf rotate=angle`
|
||||
Example: Rotate video by 90 degrees clockwise
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf rotate=90 output_rotated.mp4
|
||||
```
|
||||
|
||||
##### Overlay
|
||||
Syntax: `-vf "movie=overlay.mp4 [ov]; [in][ov] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]"`
|
||||
Example: Overlay one video on top of another
|
||||
```shell
|
||||
ffmpeg -i main_video.mp4 -i overlay.mp4 -filter_complex "overlay=10:10" output_overlay.mp4
|
||||
```
|
||||
|
||||
##### Drawtext
|
||||
Syntax: `-vf "drawtext=text='Your Text':x=10:y=10:fontsize=20:fontcolor=white"`
|
||||
Example: Add text to the video
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf "drawtext=text='Hello, World!':x=10:y=10:fontsize=20:fontcolor=white" output_texted.mp4
|
||||
```
|
||||
|
||||
##### Chroma Keying (Green Screen Removal)
|
||||
Syntax: `-vf "colorkey=0x00ff00:0.3:0.2"`
|
||||
Example: Remove green background using chroma keying
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf "colorkey=0x00ff00:0.3:0.2" output_no_green_screen.mp4
|
||||
```
|
||||
|
||||
##### Reverse Video
|
||||
Syntax: `-vf reverse`
|
||||
Example: Reverse the frames of a video
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf reverse output_reversed.mp4
|
||||
```
|
||||
|
||||
##### Blur
|
||||
Syntax: `-vf "boxblur=5:1"`
|
||||
Example: Apply a box blur to the video
|
||||
```shell
|
||||
ffmpeg -i input.mp4 -vf "boxblur=5:1" output_blurred.mp4
|
||||
```
|
||||
|
||||
#### Audio Filters
|
||||
##### Volume Adjustment:
|
||||
Syntax: `-af volume=vol`
|
||||
Example: Increase audio volume by a factor of 2
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af volume=2 output_louder.mp3
|
||||
```
|
||||
|
||||
##### Equalizer
|
||||
Syntax: `-af "equalizer=f=1000:width_type=h:width=200:g=-10"`
|
||||
Example: Apply an equalizer effect to boost frequencies around 1000 Hz
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "equalizer=f=1000:width_type=h:width=200:g=10" output_equalized.mp3
|
||||
```
|
||||
|
||||
##### Aecho (Audio Echo)
|
||||
Syntax: `-af "aecho=0.8:0.9:1000:0.3"`
|
||||
Example: Add an echo effect to the audio
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "aecho=0.8:0.9:1000:0.3" output_echo.mp3
|
||||
```
|
||||
|
||||
##### Compand (Audio Compression/Expansion)
|
||||
Syntax: `-af "compand=attacks=0.3:decays=0.8:points=-90/-900|-70/-70|-30/-9|0/-3"`
|
||||
Example: Compress the audio dynamic range
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "compand=attacks=0.3:decays=0.8:points=-90/-900|-70/-70|-30/-9|0/-3" output_companded.mp3
|
||||
```
|
||||
|
||||
##### High-Pass Filter
|
||||
Syntax: `-af "highpass=f=100"`
|
||||
Example: Apply a high-pass filter to the audio to allow frequencies above 100 Hz
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "highpass=f=100" output_highpass.mp3
|
||||
```
|
||||
|
||||
##### Low-Pass Filter
|
||||
Syntax: `-af "lowpass=f=1000"`
|
||||
Example: Apply a low-pass filter to the audio to allow frequencies below 1000 Hz
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "lowpass=f=1000" output_lowpass.mp3
|
||||
```
|
||||
|
||||
##### Resample (Change Audio Sample Rate)
|
||||
Syntax: `-af "aresample=44100"`
|
||||
Example: Change the audio sample rate to 44100 Hz
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "aresample=44100" output_resampled.mp3
|
||||
```
|
||||
|
||||
##### Tremolo (Audio Modulation)
|
||||
Syntax: `-af "tremolo=f=5"`
|
||||
Example: Apply a tremolo effect to modulate the audio with a frequency of 5 Hz
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "tremolo=f=5" output_tremolo.mp3
|
||||
```
|
||||
|
||||
##### Echor
|
||||
Syntax: `-af "aecho=in_gain=0.8:out_gain=0.8:delays=500|1000|1500"`
|
||||
Example: Apply a multi-tap echo effect to the audio
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "aecho=in_gain=0.8:out_gain=0.8:delays=500|1000|1500" output_echo.mp3
|
||||
```
|
||||
|
||||
##### Speed/Pitch Change
|
||||
Syntax: `-af "atempo=1.5"`
|
||||
Example: Increase the speed and pitch of the audio by 1.5 times
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "atempo=1.5" output_fast.mp3
|
||||
```
|
||||
|
||||
##### Reverb
|
||||
Syntax: `-af "aecho=0.8:0.9:1000:0.3"`
|
||||
Example: Add a reverb effect to the audio
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "aecho=0.8:0.9:1000:0.3" output_reverbed.mp3
|
||||
```
|
||||
|
||||
##### Bass Boost
|
||||
Syntax: `-af "equalizer=f=80:width_type=h:width=200:g=10"`
|
||||
Example: Boost the bass frequencies in the audio
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "equalizer=f=80:width_type=h:width=200:g=10" output_bass_boosted.mp3
|
||||
```
|
||||
|
||||
##### Audio Noise Reduction
|
||||
Syntax: `-af "anlmdn=n=20"`
|
||||
Example: Apply audio noise reduction
|
||||
```shell
|
||||
ffmpeg -i input.mp3 -af "anlmdn=n=20" output_noise_reduced.mp3
|
||||
```
|
||||
|
||||
## ffprobe
|
||||
Usage: `ffprobe [options] [input]`
|
||||
|
||||
### Options
|
||||
| Option | Description |
|
||||
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `-hide_banner` | Suppress printing banner. |
|
||||
| `-output_format, -of, -print_format writer_name[=writer_options]` | Set the output printing format.<br> writer_name specifies the name of the writer, and writer_options specifies the options to be passed to the writer.<br>For example for printing the output in [JSON](../files/JSON.md) format, specify:<br>`-output_format json` |
|
||||
| `-select_streams stream_specifier` | Select only the streams specified by stream_specifier. This option affects only the options related to streams (e.g. show_streams, show_packets, etc.).<br>For example to show only audio streams, you can use the command:<br>`ffprobe -show_streams -select_streams a INPUT`<br>To show only video packets belonging to the video stream with index 1:<br>`ffprobe -show_packets -select_streams v:1 INPUT` |
|
||||
| `-show_error` | Show information about the error found when trying to probe the input.<br>The error information is printed within a section with name "ERROR". |
|
||||
| `-show_format` | Show information about the container format of the input multimedia stream.<br>All the container format information is printed within a section with name "FORMAT". |
|
||||
| `-show_streams` | Show information about each media stream contained in the input multimedia stream.<br>Each media stream information is printed within a dedicated section with name "STREAM". |
|
||||
| `-show_chapters` | Show information about chapters stored in the format.<br>Each chapter is printed within a dedicated section with name "CHAPTER". |
|
||||
|
47
technology/media/image/AVIF.md
Normal file
47
technology/media/image/AVIF.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
---
|
||||
obj: codec
|
||||
website: https://aomediacodec.github.io/av1-avif
|
||||
---
|
||||
# AVIF
|
||||
AV1 Image File Format (AVIF) is an open, royalty-free image file format specification for storing images or image sequences compressed with AV1 in the HEIF container format. It competes with HEIC, which uses the same container format built upon ISOBMFF, but HEVC for compression. Version 1.0.0 of the AVIF specification was finalized in February 2019.
|
||||
|
||||
| Name | Value |
|
||||
| ------------------- | ------------ |
|
||||
| Filename extension | .avif |
|
||||
| Internet media type | `image/avif` |
|
||||
|
||||
## Features
|
||||
The AV1 Image File Format supports:
|
||||
- Multiple color spaces, including:
|
||||
- HDR (with PQ or HLG transfer functions and BT.2020 color primaries, as part of BT.2100)
|
||||
- SDR (with sRGB/ BT.709 / BT.601 or with wide color gamut
|
||||
- Color space signaling via CICP (ITU-T H.273 and ISO/IEC 23091-2) or ICC profiles
|
||||
- Lossless compression and lossy compression
|
||||
- 8-, 10-, and 12-bit color depths
|
||||
- Monochrome (alpha/depth) or multi-components
|
||||
- 4:2:0, 4:2:2, 4:4:4 chroma subsampling and RGB
|
||||
- Film grain synthesis
|
||||
- Image sequences/animation
|
||||
|
||||
## Usage
|
||||
|
||||
**Convert from AVIF:**
|
||||
```shell
|
||||
avifdec [INPUT] [OUTPUT]
|
||||
```
|
||||
|
||||
**Get information**
|
||||
```shell
|
||||
avifdec --info [INPUT]
|
||||
```
|
||||
|
||||
**Convert to AVIF**
|
||||
```shell
|
||||
avifenc [OPTIONS] [INPUT] [OUTPUT]
|
||||
```
|
||||
|
||||
_Flags:_
|
||||
```shell
|
||||
-j, --jobs <NUM> Number of threads
|
||||
-l, --lossless Lossless encoding
|
||||
```
|
15
technology/media/image/PNG.md
Normal file
15
technology/media/image/PNG.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
obj: codec
|
||||
---
|
||||
# PNG
|
||||
Portable Network Graphics (PNG) is a raster-graphics file format that supports lossless data compression. PNG was developed as an improved, non-patented replacement for Graphics Interchange Format (GIF) — unofficially, the initials PNG stood for the recursive acronym "PNG's not GIF".
|
||||
|
||||
PNG supports palette-based images (with palettes of 24-bit RGB or 32-bit RGBA colors), grayscale images (with or without an alpha channel for transparency), and full-color non-palette-based RGB or RGBA images. The PNG working group designed the format for transferring images on the Internet, not for professional-quality print graphics; therefore non-RGB color spaces such as CMYK are not supported. A PNG file contains a single image in an extensible structure of chunks, encoding the basic pixels and other information such as textual comments and integrity checks documented in RFC 2083.
|
||||
|
||||
PNG files use the file extension PNG or png and are assigned [MIME](../../files/MIME.md) media type image/png. PNG was published as informational RFC 2083 in March 1997 and as an ISO/IEC 15948 standard in 2004.
|
||||
|
||||
| Name | Value |
|
||||
| ------------ | ------------------------- |
|
||||
| Extension | .png |
|
||||
| [MIME](../../files/MIME.md) | image/png |
|
||||
| Magic Number | `89 50 4e 47 0d 0a 1a 0a` |
|
22
technology/media/video/AV1.md
Normal file
22
technology/media/video/AV1.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
obj: codec
|
||||
---
|
||||
# AV1
|
||||
AV1 is a royalty-free video codec designed to be an alternative to the widely used [H.264](H.264.md) and HEVC [codecs](../Codecs.md). It was developed by the Alliance for Open Media, a consortium of technology companies including Google, Mozilla, and Netflix.
|
||||
Encoding can be done with [ffmpeg](../ffmpeg.md) or av1an.
|
||||
|
||||
## Key Features
|
||||
AV1 includes a range of features designed to provide high-quality video compression while remaining open and accessible to all users:
|
||||
- High compression efficiency: AV1 is designed to provide high-quality video compression while using less bandwidth than other [codecs](../Codecs.md). This makes it ideal for streaming video over the internet.
|
||||
- Scalable video technology: AV1 includes scalable video technology that allows it to adjust the quality of video based on available bandwidth. This ensures that users always receive the best possible video quality for their network connection.
|
||||
- Royalty-free: Unlike other [codecs](../Codecs.md), AV1 is completely royalty-free. This means that anyone can use it without having to pay fees or royalties.
|
||||
- Wide range of applications: AV1 is suitable for a wide range of applications, including live streaming, video-on-demand services, and video conferencing.
|
||||
- Open and accessible: AV1 is an open standard, meaning that anyone can use it and contribute to its development. This makes it accessible to users of all skill levels.
|
||||
|
||||
## Advantages
|
||||
AV1 offers a number of advantages over other video [codecs](../Codecs.md):
|
||||
- Higher quality video: AV1 provides higher quality video than other [codecs](../Codecs.md), even at lower bitrates.
|
||||
- More efficient compression: AV1 provides more efficient compression than other [codecs](../Codecs.md), allowing for faster download and upload times.
|
||||
- Better streaming performance: AV1 is designed for streaming video over the internet, and provides better streaming performance than other [codecs](../Codecs.md).
|
||||
- Wide compatibility: AV1 is compatible with a wide range of devices and platforms, including desktop and mobile devices.
|
||||
|
7
technology/media/video/H.264.md
Normal file
7
technology/media/video/H.264.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
obj: codec
|
||||
wiki: https://en.wikipedia.org/wiki/Advanced_Video_Coding
|
||||
---
|
||||
|
||||
# H.264
|
||||
Advanced Video Coding (AVC), also referred to as H.264 or MPEG-4 Part 10, is a video compression standard based on block-oriented, motion-compensated coding. It supports a maximum resolution of 8K UHD.
|
8
technology/media/video/H.265.md
Normal file
8
technology/media/video/H.265.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
obj: codec
|
||||
wiki: https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding
|
||||
---
|
||||
# H.265
|
||||
High Efficiency Video Coding (HEVC), also known as H.265 and MPEG-H Part 2, is a video compression standard designed as part of the MPEG-H project as a successor to the widely used Advanced Video Coding (AVC, [H.264](H.264.md), or MPEG-4 Part 10). In comparison to AVC, HEVC offers from 25% to 50% better data compression at the same level of video quality, or substantially improved video quality at the same bit rate. It supports resolutions up to 8192×4320, including 8K UHD, and unlike the primarily 8-bit AVC, HEVC's higher fidelity Main 10 profile has been incorporated into nearly all supporting hardware.
|
||||
|
||||
While AVC uses the integer discrete cosine transform (DCT) with 4×4 and 8×8 block sizes, HEVC uses both integer DCT and discrete sine transform (DST) with varied block sizes between 4×4 and 32×32. The High Efficiency Image Format (HEIF) is based on HEVC.
|
7
technology/media/video/VP9.md
Normal file
7
technology/media/video/VP9.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
website: https://www.webmproject.org/vp9/
|
||||
obj: codec
|
||||
---
|
||||
# VP9
|
||||
VP9 is an open and royalty-free video coding format developed by Google.
|
||||
VP9 is the successor to VP8 and competes mainly with MPEG's High Efficiency Video Coding (HEVC/[H.265](H.265.md)). At first, VP9 was mainly used on Google's video platform YouTube. The emergence of the Alliance for Open Media, and its support for the ongoing development of the successor [AV1](AV1.md), of which Google is a part, led to growing interest in the format.
|
Loading…
Add table
Add a link
Reference in a new issue