There are several options for H.264 encoding in Logosys - both CPU-based and GPU-powered.
In Logosys Lite, all CPU-based H.264 encoding options are available in the Professional edition. All hardware-accelerated H.264 encoders are available with the Expert edition. In Logosys, all encoders are part of the streaming component.
Intel Quick Sync
Available in software and in hardware modes.
Codec ID for software mode: 'q264sw'
Codec ID for hardware mode: 'q264hw'
Your Intel processor supports Quick Sync decoding if it is equipped with Intel HD Graphics 4200 or higher. Note, that for all XEON processors a mainboard with C226 chipset is required.
Quick Sync encoding has no hardware limitations for a number of encoding processes running at the same time. It depends on the processor's performance.
Attributes
Here is a list of main attributes specific for 'q264hw' and 'q264sw' codecs:
Name | Default value | Description |
---|---|---|
rc_type | auto | The rate control type. Possible values:
|
quality | 7 | Quality of captured video. Possible values: from 1 (fast capturing, minimal quality) to 7 (maximal quality, slow capturing) |
profile | auto | Encoding profile Possible values:
|
level | auto | Sets the level flag in the output bitstream Possible values: Auto, 1.0, 1.0b, 1.1, 1.2, 1.3, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2 |
NVIDIA NVENC
Codec ID: 'n264'
Available, if you use NVIDIA graphics card as a default graphics device for your system.
There is a hardware limitation for a number of encoding processes running at the same time. This is made by NVIDIA:
Up to 2 encoding sessions enforced on low-end (like Kepler-based Quadro cards) or GeForce cards only and unlimited for non-low-end cards (like Pascal-based Quadro cards). It means that the limitation is up to hardware performance
To get information about Tesla, GRID or Quadro cards supported formats, please refer to this table:
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder
Here is a reference for NVIDIA NVENC SDK where you can find what features are available for your graphics card:
https://developer.nvidia.com/nvidia-video-codec-sdk
If you have a card that supports H.265 encoding then you can use 'n265' codec to encode the H.265 video.
Attributes
Here is a list of main attributes specific to 'n264' codec:
Name | Default value | Description |
---|---|---|
rc_type | auto | The rate control type. Possible values:
|
preset | default | Encoding preset Possible values:
|
profile | auto | Encoding profile Possible values:
|
level | auto | Sets the level flag in the output bitstream Possible values: Auto, 1.0, 1.0b, 1.1, 1.2, 1.3, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2 |
output.444 | false | Enables 4:4:4 encoding mode. |
Some of the NVIDIA graphics units might not support the encoding of interlaced video. You can check your video card with this ffmpeg command:
ffmpeg -i "your_input_file" -flags +ilme+ildct -vcodec nvenc_h264 out_ffmpeg.h264 -loglevel verbose
Here is an example of the log message:
To overcome the incorrect order issues, consider using "video::interlace=progressive" in your encoding configurations.
AMD AMF
Codec ID: 'h264_amf'
Available, if you use an AMD processor and graphics card at the same time for your system.
Attributes
Here is a list of main attributes specific to 'h264_amf' codec:
Name | Default value | Description |
---|---|---|
usage | transcoding | Sets type of encoder usage. Possible values:
|
profile | main | Set the encoding profile.Possible values:
|
level | auto | Sets the level flag in the output bitstream Possible values: Auto, 1.0, 1.0b, 1.1, 1.2, 1.3, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2 |
quality | speed | Sets quality preference. Possible values:
|
rc | cqp | Sets Rate Control Method. Possible values:
|
enforce_hrd | false | Enables Enforce HRD. |
filler_data | false | Enables Filler Data |
vbaq | false | Enables VBAQ |
frame_skipping | false | Enables rate control-based frameskip |
qp_i | -1 | Quantization Parameter for I-Frame. From -1 to 51. |
qp_p | -1 | Quantization Parameter for P-Frame. From -1 to 51. |
qp_b | -1 | Quantization Parameter for B-Frame. From -1 to 51. |
qp_i | -1 | Quantization Parameter for I-Frame. From -1 to 51. |
max_au_size | 0 | Sets Maximum Access Unit Size for rate control (in bits) |
header_spacing | -1 | Sets Header Insertion Spacing |
bf_delta_qp | 4 | B-Picture Delta QP. From -10 to 10. |
bf_ref | true | Enables Reference to B-Frames |
bf_ref_delta_qp | 4 | Reference B-Picture Delta QP. From -10 to 10. |
intra_refresh_mb | 0 | Intra Refresh MBs Number Per Slot in Macroblocks |
coder | auto | Sets coding type. Possible values:
|
me_half_pel | false | Enables ME Half Pixel |
me_quarter_pel | false | Enables ME Quarter Pixel |
aud | false | Inserts AU Delimiter NAL unit |
x264 encoder (GPL)
One of the best CPU-based encoders in the world. However, the GPL license prohibits to use this encoder in commercial applications without a special license.
We don't ship x264 with any of our products, but you can still try it with Logosys by downloading a GPL (shared) build of FFmpeg and extracting the archive to "\EncoderLib" folder of your Logosys directory or in "\bin\[target_build]" folder for Logosys, replacing existing DLLs.
Then libx264 component should be available as an encoding option for streaming codex list. The ID of the encoder is "libx264".
Attributes
Here is a list of main attributes specific for 'libx264' codec
Name | Default value | Description |
---|---|---|
preset | faster | Change options to trade off compression efficiency against encoding speed. Possible values:
|
tune | Tune options to further optimize them for your input content. Possible values:
| |
profile | Limit the profile of the output stream. Possible values:
| |
level | Sets the level flag in the output bitstream. Possible values: 1 1b 1.1 1.2 1.3 2 2.1 2.2 3 3.1 3.2 4 4.1 4.2 5 5.1 | |
v422 | false | Indicates whether captioning is in 4:2:2 colorspace. Possible values: true, false |
interlace | -1 | Interlacing type. Possible values:
|
Cisco OpenH264
Codec ID: "libopenh264"
CPU-only based encoder by Cisco Systems. More details about the encoder are here - http://www.openh264.org/
Attributes
Here is a list of main attributes specific for 'libopenh264' codec:
Name | Default value | Description |
---|---|---|
slices | 0 | Set the number of slices, used in the parallelized encoding. This is only used when slice_mode is set to ‘fixed’ |
slice_mode | auto | Set slice mode.Possible values:
|
loopfilter | 1 | Enable loop filter, if set to 1. To disable set a value of 0. |
max_nal_size | 0 | Set maximum NAL size in bytes. |
allow_skip_frames | 0 | Allow skipping frames to hit the target bitrate if set to 1. |