-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
FAQ FFmpeg
FFmpeg provides a set of command line tools to process audio and video media files.
Commands are located in /usr/local/ffmpeg/bin
and libraries are required by
other packages. In DSM 7.0, they are located in /volume1/@appstore/ffmpeg/bin
.
Download Fmpeg: https://www.ffmpeg.org/ffmpeg-master-latest-win64-gpl.zip
FFMPEG ultimate guide: https://img.ly/blog/ultimate-guide-to-ffmpeg/
Ref: https://dev.to/drsensor/list-of-helpful-ffmpeg-command-for-checking-capabilities-1110
How to list all filter options:
$ ffmpeg -hide_banner -filters
Filters:
T.. = Timeline support
.S. = Slice threading
..C = Command support
A = Audio input/output
V = Video input/output
N = Dynamic number and/or type of input/output
| = Source or sink filter
T.. adelay A->A Delay one or more audio channels.
... aecho A->A Add echoing to the audio.
...
How to list hardware acceleration:
$ ffmpeg -hide_banner -hwaccels
Hardware acceleration methods:
vaapi
qsv
drm
On Intel type processor, validate hardware acceleration:
- Access to the video device file is granted on a per application basis. This allows an application such as
tvheadend
to be granted access use hardware acceleration when callingffmpeg
. - As a default user you must interact with
ffmpeg
acting as a user who's access was already granted (see example below) or add your user account to thevideodriver
group.
$ sudo su -s /bin/bash sc-ffmpeg -c '/var/packages/ffmpeg/target/bin/vainfo'
Trying display: drm
libva info: VA-API version 1.16.0
libva info: Trying to open /var/packages/ffmpeg/target/lib/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_16
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.16 (libva 2.16.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.5.4 (25c8ffa0)
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
If access restricted or non-existant such as on virtual DSM:
$ vainfo
Trying display: drm
error: failed to initialize display
How to list encoders|decoders|codecs
$ ffmpeg -hide_banner -encoders
$ ffmpeg -hide_banner -decoders
$ ffmpeg -hide_banner -codecs
How to list details of a specific encoder|decoder|codec
$ ffmpeg -hide_banner -h encoder=<encoder>
$ ffmpeg -hide_banner -h decoder=<decoder>
Example for HEVC:
$ ffmpeg -hide_banner -h decoder=hevc
Decoder hevc [HEVC (High Efficiency Video Coding)]:
General capabilities: dr1 delay threads
Threading capabilities: frame and slice
Supported hardware devices: vaapi
HEVC decoder AVOptions:
-apply_defdispwin <boolean> .D.V....... Apply default display window from VUI (default false)
-strict-displaywin <boolean> .D.V....... stricly apply default display window size (default false)
For a specific feature like 10bits support in HEVC:
$ /usr/local/ffmpeg/bin/x265 -V -D10
Please search for your requirements online, you should find command to run to get your specific answer.
Warning: untested and can course damage if you don't know what these commands do.
https://gist.github.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e
sudo mv /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.old
sudo ln -sf /var/packages/ffmpeg/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg
sudo cp -p /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.old
sudo sed -i 's/eac3/ZXXZ/' /var/packages/VideoStation/target/lib/libsynovte.so
sudo sed -i 's/dts/ZXZ/' /var/packages/VideoStation/target/lib/libsynovte.so
sudo sed -i 's/truehd/ZXZZXZ/' /var/packages/VideoStation/target/lib/libsynovte.so
Reverse the above changes:
sudo mv -f /var/packages/VideoStation/target/bin/ffmpeg.old /var/packages/VideoStation/target/bin/ffmpeg
sudo mv -f /var/packages/VideoStation/target/lib/libsynovte.so.old /var/packages/VideoStation/target/lib/libsynovte.so
(Thanks @GermanChap)
Recent VideoStation version no longer loads SynoCommunity ffmpeg libraries. I should not recommend that but there is a process to downgrade it: https://github.com/SynoCommunity/spksrc/issues/2952#issuecomment-337214013
- Home
-
Packages
- Adminer
- Aria2
- Beets
- BicBucStriim
- Borgmatic
- cloudflared
- Comskip
- Debian Chroot
- Deluge
- Duplicity
- dnscrypt-proxy
- FFmpeg
- FFsync
- Flexget
- Gstreamer
- Google Authenticator
- Home Assistant Core
- Jellyfin
- Kiwix
- [matrix] Synapse homeserver
- MinIO
- Mono
- Mosh
- Mosquitto
- Node-Exporter
- Radarr/Sonarr/Lidarr/Jackett
- SaltStack
- SickBeard Custom
- SynoCLI-Disk
- SynoCLI-Devel
- SynoCLI-File
- SynoCLI-Kernel
- SynoCLI-Misc.
- SynoCLI-Monitor
- SynoCLI-NET
- Synogear
- Concepts
- Development
- Resources