Code Monkey home page Code Monkey logo

Comments (40)

mdhiggins avatar mdhiggins commented on May 23, 2024

Not really sure what you're asking

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Sorry for confusing, I'll explain better.

Im currently use your mp4 automaton and a non docker install of sonarr to encode the tv episodes.
I need to have both 1280 & 720 version of every tv episode.
So the root folder in sonarr is /TV/1280 and the path to the 720 version if /TV/720

I have edits your mp4 automator files, so once it finsihes encoding the 1280 version it then begins doing the 720 version.

I would prefer to move sonarr/mp4automator into your docker image and would like to know if it is at all possible to use your docker images to acheive encoding of the 1280 verions and 720 version and saved in correct folders?

Thanks in advance for your help bro;)

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

The script has always supporting changing configurations and you can use an environment variable to specify and alternate configuration before executing the script. That's probably the way to achieve what you're looking for. Just set SMA_CONFIG to whatever alternate configuration you want before executing the script and it will divert to that configuration file.

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

So Im sure in your meaning: Your saying I edit in the docker the
/opt/appdata/sma:/usr/local/sma/config

too:

/opt/appdata/sma:/usr/local/sma/my_edited_mp4automator_script/

And I need fdk aac audio in the ffmpeg. Which I beleive you have in your "build" version.
How can i get sonarrV3 "preview" with ffmepg "build" version? "--enable-libfdk_aac"

Thankyou in advance once again:)

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

No all you need to do is have 2 copies of autoProcess.ini in your config folder and then point to which one you want to use using the environment variable, you do not need 2 copies of the script and don't need to modify the docker container

And you can set the sonarr_tag arg to choose your tag for the build version

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Thanks once again man;)
Im new to dockers so using protainer.

When trying to buiuld the image using command:

mdhiggins/sonarr-sma:build --build-arg:ffmpeg_tag

It saying invalid:(

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Never used protainer so don't know how to help you, you'll have to look up the documentation but the args are supported and can be viewed in the dockerfile

ARG ffmpeg_tag=4.2-ubuntu
ARG sonarr_tag=latest

Maybe
mdhiggins/sonarr-sma:build --build-arg ffmpeg_tag=4.2-ubuntu sonarr_tag=latest

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Decided to remove protainer and try using docker cli:

using:

docker pull mdhiggins/sonarr-sma:preview --build-arg ffmpeg_tag=4.2-ubuntu sonarr_tag=latest
unknown flag: --build-arg
See 'docker pull --help'.

As you know Im trying to get sonarrv3 with ffmpeg using jrottenberg/ffmpeg

So could you please confirm the pull command i should be using?
Please forgive my stupidity, im trying to learn docker cli as fast as possible :)

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

You're combining commands here. You're not pulling (which is for prebuilt containers) you're building your own container using the github repo and the arguments

I actually use docker-compose and not docker-cli so I may not be the best at helping you here

But it probably should be

docker build https://github.com/mdhiggins/sonarr-sma.git#build --build-arg ffmpeg_tag=4.2-ubuntu --build-arg sonarr_tag=latest

https://docs.docker.com/engine/reference/commandline/build/

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Indeed your command docker build https://github.com/mdhiggins/sonarr-sma.git#build --build-arg ffmpeg_tag=4.2-ubuntu --build-arg sonarr_tag=latest does indeed work and i can get sonarr running in docker, thankyou:)
using command :
sudo docker start sonarr

However, this is sonarr v2, I was hoping to have sonarr v3 version of sonarr, "preview"

So i used: docker build https://github.com/mdhiggins/sonarr-sma.git#build --build-arg ffmpeg_tag=4.2-ubuntu --build-arg sonarr_tag=preview But when building there is a few errors:

Reading package lists...
W: Conflicting distribution: http://download.mono-project.com/repo/ubuntu bionic/snapshots/5.20 InRelease (expected bionic/snapshots/5.20 but got bionic)

debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76, <> line 7.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:


and when i run:

sudo docker start sonarr

reply:
Error response from daemon: No such container: sonarr
Error: failed to start containers: sonarr

What am I doing wrong ...thanks in advance from a stupid idiot:P

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Looks like sonarr isn't the name of the container that's created. You can see your image ID if you type docker images

It may be as simple as needing to specify the preview tag for your image
sudo docker start sonarr:preview

You can also just tag it yourself so it has a name to run with by adding a tag
docker build https://github.com/mdhiggins/sonarr-sma.git#build --build-arg ffmpeg_tag=4.2-ubuntu --build-arg sonarr_tag=preview --tag sonarr

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

dockersonarr

Done as you suggested ..added tag sonarr....but still getting same msg:(

Once again thanks for your fantastic support bro;)

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

https://stackoverflow.com/questions/50323199/docker-error-no-such-container-friendlyhello

Check that, that seems to be your same issue

Looks like you're skipping a step. You've created the image, now you need to make the container before you can start it

The run command is probably what you're looking for

docker run sonarr or maybe docker run --name sonarr sonarr

https://docs.docker.com/engine/reference/commandline/run/

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

You could also specify the image id that's reported
docker run --name sonarr d6d12e38e0a

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

docker run sonarr runs it yes thankyou:)

However, it wont go beyond:

[Info] LanguageProfileService: Setting up default language profiles
[Info] RssSyncService: Starting RSS Sync
[Warn] FetchAndParseRssService: No available indexers. check your configuration.


And 8989 shows nothing:(

In your instructions you have:

docker-compose
services:
sonarr:
image: mdhiggins/sonarr-sma
container_name: sonarr
volumes:
- /opt/appdata/sonarr:/config
- /opt/appdata/sma:/usr/local/sma/config
- /mnt/storage/tv:/tv
- /mnt/storage/downloads:/downloads
ports:
- 8989:8989
restart: always
environment:
- PUID=${PUID}
- PGID=${PGID}


Can u confirm how i set those environments?

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

At this point I'm gonna have to refer you to the docker documentation or have you use docker compose cause I'm not super familiar with docker CLI. You'll need to set up those volumes and port forwarding for things to work though similar to what I've done in docker compose.

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Higgins, thankyou once again!! I got it install and running using sonarrv3 with ffmpeg 👍
Did a test file import into sonarr and mp4automator is fired..but the logs say invlaid file. Checked permissions, they all good.
So decide to try manual.py and i see following:

root@6dce145c51a6:/usr/local/sma# /usr/local/sma/manual.py -i "/storage/downloads/series/sample_1280x7201.mkv"
Traceback (most recent call last):
File "/usr/local/sma/manual.py", line 5, in
import guessit
ModuleNotFoundError: No module named 'guessit'

looks like guessit not install in the image? I must do somthing to install them into the image or?

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

mdhiggins/radarr-sma#14

That is pretty much the same issue you're having

Make sure you can execute your ffprobe binary that was compiled, an error there will cause it to say invalid file

With regards to guessit, you need to use the python virtual environment

$SMA_PATH/venv/bin/python3 $SMA_PATH/manual.py

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

ffprobeworks
As you can see the paths are correct and ffprobe and ffmpeg both run fine.

Im not 100% sure what you mean on this bit
below is the current environments:
envoriment

You said
"With regards to guessit, you need to use the python virtual environment
$SMA_PATH/venv/bin/python3 $SMA_PATH/manual.py"

I should change the "/usr/local/sma" too "/venv/bin/python3"
Thanks in advance once again ..we getting there:)

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Python dependencies are installed in a virtual environment. You need to use that exact path I wrote out for you if you're trying to run manual.py

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Also post your exact sonarr config for postSonarr (from the connect page in the sonarr webUI) and please post the error you're getting exactly

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024
[Converter]
ffmpeg = /usr/local/bin/ffmpeg
ffprobe = /usr/local/bin/ffprobe
threads = 0
hwaccels = dxva2, cuvid, qsv, d3d11va, vaapi
hwaccel-decoders = h264_cuvid, mjpeg_cuvid, mpeg1_cuvid, mpeg2_cuvid, mpeg4_cuvid, vc1_cuvid, hevc_qsv, h264_qsv, hevc_vaapi, h264_vaapi
hwdevices = vaapi:/dev/dri/renderD128
hwaccel-output-format = vaapi:vaapi
output-directory = 
output-format = mp4
output-extension = mp4
temp-extension = xxx
minimum-size = 0
ignored-extensions = nfo, ds_store
copy-to = 
move-to = 
delete-original = False
sort-streams = True
process-same-extensions = False
force-convert = False
post-process = False
wait-post-process = False
detailed-progress = False
preopts = 
postopts = 

[Permissions]
chmod = 0644
uid = -1
gid = -1

[Metadata]
relocate-moov = True
full-path-guess = True
tag = True
tag-language = eng
download-artwork = poster
sanitize-disposition = 

[Video]
codec = h264, x264
max-bitrate = 0
crf = -1
crf-profiles = 
preset = 
codec-parameters = 
dynamic-parameters = False
max-width = 0
profile = 
max-level = 0.0
pix-fmt = 
filter = 
force-filter = False

[HDR]
pix-fmt = 
space = bt2020nc
transfer = smpte2084
primaries = bt2020
preset = 
codec-parameters = 
filter = 
force-filter = False

[Audio]
codec = aac
languages = 
default-language = 
first-stream-of-language = False
allow-language-relax = True
channel-bitrate = 128
max-bitrate = 0
max-channels = 0
prefer-more-channels = True
default-more-channels = True
filter = 
force-filter = False
sample-rates = 
copy-original = False
aac-adtstoasc = False
ignore-truehd = mp4, m4v
ignored-dispositions = 
unique-dispositions = False

[Universal Audio]
codec = aac
channel-bitrate = 128
first-stream-only = False
move-after = False
filter = 
force-filter = False

[Subtitle]
codec = mov_text
codec-image-based = 
languages = 
default-language = 
first-stream-of-language = False
encoding = 
burn-subtitles = False
burn-dispositions = 
download-subs = False
download-hearing-impaired-subs = False
download-providers = 
embed-subs = True
embed-image-subs = False
embed-only-internal-subs = False
filename-dispositions = forced
ignore-embedded-subs = False
ignored-dispositions = 
unique-dispositions = False
attachment-codec = 

[Sonarr]
host = 127.0.0.1
port = 8989
apikey = hidekey
ssl = False
webroot = 
force-rename = False

[Radarr]
host = localhost
port = 7878
apikey = 
ssl = False
webroot = 
force-rename = False

[Sickbeard]
host = localhost
port = 8081
ssl = False
apikey = 
webroot = 
username = 
password = 

[Sickrage]
host = localhost
port = 8081
ssl = False
apikey = 
webroot = 
username = 
password = 

[CouchPotato]
host = localhost
port = 5050
username = 
password = 
apikey = 
delay = 65
method = renamer
delete-failed = False
ssl = False
webroot = 

[SABNZBD]
convert = True
sickbeard-category = sickbeard
sickrage-category = sickrage
couchpotato-category = couchpotato
sonarr-category = sonarr
radarr-category = radarr
bypass-category = bypass
output-directory = 
path-mapping = 

[Deluge]
couchpotato-label = couchpotato
sickbeard-label = sickbeard
sickrage-label = sickrage
sonarr-label = sonarr
radarr-label = radarr
bypass-label = bypass
convert = True
host = localhost
port = 58846
username = 
password = 
output-directory = 
remove = False
path-mapping = 

[qBittorrent]
couchpotato-label = couchpotato
sickbeard-label = sickbeard
sickrage-label = sickrage
sonarr-label = sonarr
radarr-label = radarr
bypass-label = bypass
convert = True
action-before = 
action-after = 
host = localhost
port = 8080
ssl = False
username = 
password = 
output-directory = 
path-mapping = 

[uTorrent]
couchpotato-label = couchpotato
sickbeard-label = sickbeard
sickrage-label = sickrage
sonarr-label = sonarr
radarr-label = radarr
bypass-label = bypass
convert = True
webui = False
action-before = 
action-after = 
host = localhost
ssl = False
port = 8080
username = 
password = 
output-directory = 
path-mapping = 

[Plex]
host = localhost
port = 32400
refresh = False
token = 

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

error log:

2020-11-01 15:08:10 - SonarrPostProcess - INFO - Sonarr extra script post processing started.
2020-11-01 15:08:10 - resources.readsettings - INFO - /usr/local/sma/venv/bin/python3
2020-11-01 15:08:10 - resources.readsettings - INFO - Loading config file /usr/local/sma/config/autoProcess.ini.
2020-11-01 15:08:10 - resources.mediaprocessor - INFO - File /tv/Mandalorian, The/Season 1/sample_3840x2160.mkv is not valid
2020-11-01 15:08:10 - SonarrPostProcess - INFO - Processing returned False.
2020-11-01 15:08:10 - SonarrPostProcess - ERROR - Error processing file
Traceback (most recent call last):
  File "/usr/local/sma/postSonarr.py", line 228, in <module>
    sys.exit(1)
SystemExit: 1

connect

connect details as requeuested ^

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

That all looks good

Is that actually a valid file? Kind of looks like a sample file that might be getting rejected

    # Determine if a file can be read by FFPROBE
    def isValidSource(self, inputfile):
        try:
            extension = self.parseFile(inputfile)[2]
            if extension in self.settings.ignored_extensions:
                self.log.debug("Invalid source, extension is blacklisted [ignored-extensions].")
                return None
            if self.settings.minimum_size > 0 and os.path.getsize(inputfile) < (self.settings.minimum_size * 1000000):
                self.log.debug("Invalid source, below minimum size threshold [minimum-size].")
                return None
            info = self.converter.probe(inputfile)
            if not info:
                self.log.debug("Invalid source, no data returned.")
                return None
            if not info.video:
                self.log.debug("Invalid source, no video stream detected")
                return None
            if not info.audio or len(info.audio) < 1:
                self.log.debug("Invalid source, no audio stream detected")
                return None
            return info
        except:
            self.log.exception("isValidSource unexpectedly threw an exception, returning None")
            return None

That's the code for determining if a file is valid
It has to pass the following checks

  1. Must not be an ignored extension
  2. Must be greater than minimum size if that settings is greater than 0
  3. Needs to be readable by ffprobe
  4. Needs a video stream
  5. Needs at least 1 audio stream

1 and 2 shouldn't be an issue based on your settings and the filename

You can modify logging.ini in your config folder and turn on debug level logging (change anywhere that says level = INFO to level = DEBUG) to get more info about why its failing or you can check the file you're trying to process and see if it passes those requirements

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

You can also run the file through ffprobe -show_streams <file> and post that output

And if you haven't gotten it yet this is what your manual.py command should look like

$SMA_PATH/venv/bin/python3 $SMA_PATH/manual.py -i /storage/downloads/series/sample_1280x7201.mkv

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Think we onto somthing:

running:

ffprobe -show_streams /storage/downloads/series/sample_1280x7201.mkv

root@6dce145c51a6:/# ffprobe -show_streams /storage/downloads/series/sample_1280x7201.mkv
ffprobe version 4.2.4 Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-libsrt --enable-libaribb24 --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
/storage/downloads/series/sample_1280x7201.mkv: No such file or directory

Ye the file really is there in that path

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Probably a permissions issue or a volume mounting issue with your docker container

Can you post an ls -l from inside that folder and also post what the GID and UID for your target user is?

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024
root@DP-4226-PRA-32T-198:/storage/downloads/series# ls -l
total 163564
-rwxrwxrwx 1 911 911  17433130 Dec  6  2019 sample_1280x7201.mkv
-rwxrwxrwx 1 911 911  17433130 Dec 13  2019 sample_1280x720.mkv
-rw-r--r-- 1 911 911 132615459 Dec  6  2019 sample_3840x2160.mkv

looking at logs sonarr running in docker as:

Brought to you by linuxserver.io
-------------------------------------
To support the app dev(s) visit:
Sonarr: https://sonarr.tv/donate
To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------
User uid:    911
User gid:    911
-------------------------------------
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 30-config: executing... 

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

And does that UID and GID correspond to the correct user/group outside of the docker container?

Not sure why ffprobe would be unable to read the file but you'll need to figure that out for things to work

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

ok ive uninstalled everything setup user ftpuser (1000) and reinstalled.

so currently :

root@DP-4226-PRA-32T-198:/storage/downloads/series# ls -l
total 163564
-rw-r--r-- 1 ftpuser ftpuser 17433130 Dec 27 2019 sample_1280x7201.mkv
-rw-r--r-- 1 ftpuser ftpuser 17433130 Nov 15 2019 sample_1280x720.mkv
-rw-r--r-- 1 ftpuser ftpuser 132615459 Nov 29 2019 sample_3840x2160.mkv

and sonarr logs say:
GID/UID

User uid: 1000
User gid: 1000

I've enabled debug on loggin and tried again:

2020-11-02 12:18:15 - SonarrPostProcess - INFO - Sonarr extra script post processing started.
2020-11-02 12:18:15 - resources.readsettings - INFO - /usr/local/sma/venv/bin/python3
2020-11-02 12:18:15 - resources.readsettings - DEBUG - Loading default config file.
2020-11-02 12:18:15 - resources.readsettings - INFO - Loading config file /usr/local/sma/config/autoProcess.ini.
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - environ({'sonarr_series_title': 'The Mandalorian', 'XDG_CONFIG_HOME': '/config/xdg', 'LANG': 'en_US.UTF-8', 'HOSTNAME': 'b2a58463d15a', 'sonarr_series_id': '3055', 'OLDPWD': '/run/s6/services/sonarr', 'sonarr_episodefile_sourcefolder': '/downloads', 'sonarr_episodefile_qualityversion': '1', 'sonarr_episodefile_quality': 'HDTV-720p', 'sonarr_episodefile_releasegroup': '', 'sonarr_download_client': '', 'sonarr_episodefile_path': '/tv/Mandalorian, The/Season 1/sample_1280x720.mkv', 'sonarr_episodefile_episodeids': '107406', 'sonarr_episodefile_scenename': '', 'PUID': '1000', 'sonarr_episodefile_episodenumbers': '2', 'sonarr_series_path': '/tv/Mandalorian, The', 'sonarr_eventtype': 'Download', 'sonarr_episodefile_id': '1741235', 'sonarr_episodefile_sourcepath': '/downloads/sample_1280x720.mkv', 'sonarr_episodefile_episodeairdates': '2019-11-15', 'PGID': '1000', 'PWD': '/app/sonarr/bin', 'SMA_RS': 'Sonarr', 'HOME': '/root', 'sonarr_download_id': '', 'sonarr_series_type': 'Standard', 'sonarr_series_tvdbid': '361753', 'sonarr_series_tvmazeid': '38963', 'No_Expand': 'true', 'sonarr_episodefile_episodecount': '1', 'sonarr_episodefile_seasonnumber': '1', 'TERM': 'xterm', 'sonarr_episodefile_episodetitles': 'Chapter 2: The Child', 'No_SQLiteFunctions': 'true', 'No_PreLoadSQLite': 'true', 'SHLVL': '1', 'LANGUAGE': 'en_US.UTF-8', 'CWD': '/', 'sonarr_series_imdbid': 'tt8111088', 'sonarr_episodefile_episodeairdatesutc': '11/15/2019 8:00:00 AM', 'sonarr_episodefile_relativepath': 'Season 1/sample_1280x720.mkv', 'SMA_PATH': '/usr/local/sma', 'SONARR_BRANCH': 'phantom-develop', 'XDG_DATA_HOME': '/config/.config/share', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'SMA_UPDATE': 'false', 'No_SQLiteXmlConfigFile': 'true', 'sonarr_isupgrade': 'False', '_': '/usr/local/sma/venv/bin/python3'})
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - Input file: /tv/Mandalorian, The/Season 1/sample_1280x720.mkv.
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - Original name: .
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - TVDB ID: 361753.
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - Season: 1 episode: 2.
2020-11-02 12:18:15 - SonarrPostProcess - DEBUG - Sonarr series ID: 3055.
2020-11-02 12:18:15 - resources.mediaprocessor - DEBUG - Invalid source, no audio stream detected
2020-11-02 12:18:15 - resources.mediaprocessor - INFO - File /tv/Mandalorian, The/Season 1/sample_1280x720.mkv is not valid
2020-11-02 12:18:15 - SonarrPostProcess - INFO - Processing returned False.
2020-11-02 12:18:15 - SonarrPostProcess - ERROR - Error processing file
Traceback (most recent call last):
File "/usr/local/sma/postSonarr.py", line 226, in
sys.exit(1)
SystemExit: 1

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

in console i can run ffprobe on the file:

root@b2a58463d15a:/# ffprobe /downloads/sample_3840x2160.mkv
ffprobe version N-54690-g682990a849-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.111.101 / 58.111.101
libavformat 58. 62.100 / 58. 62.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 88.100 / 7. 88.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, matroska,webm, from '/downloads/sample_3840x2160.mkv':
Metadata:
COMPATIBLE_BRANDS: mp42mp41isomavc1
MAJOR_BRAND : mp42
MINOR_VERSION : 0
ENCODER : Lavf57.83.100
Duration: 00:00:28.24, start: 0.000000, bitrate: 37572 kb/s
Stream #0:0: Video: h264 (High), yuv420p(progressive), 3840x2160, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
Metadata:
HANDLER_NAME : L-SMASH Video Handler
ENCODER : Lavc57.107.100 libx264
DURATION : 00:00:28.237000000

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

Assuming that's the full output then it's failing for lack of an audio stream

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

using another sample file that diffo has audio...this is from log:

2020-11-02 13:53:59 - resources.readsettings - INFO - Loading config file /usr/local/sma/config/autoProcess.ini.
2020-11-02 13:53:59 - SonarrPostProcess - DEBUG - environ({'sonarr_series_title': 'The Mandalorian', 'XDG_CONFIG_HOME': '/config/xdg', 'LANG': 'en_US.UTF-8', 'HOSTNAME': 'b2a58463d15a', 'sonarr_series_id': '3055', 'OLDPWD': '/run/s6/services/sonarr', 'sonarr_episodefile_sourcefolder': '/downloads', 'sonarr_episodefile_qualityversion': '1', 'sonarr_episodefile_quality': 'SDTV', 'sonarr_episodefile_releasegroup': '', 'sonarr_download_client': '', 'sonarr_episodefile_path': '/tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi', 'sonarr_episodefile_episodeids': '107411', 'sonarr_episodefile_scenename': '', 'PUID': '1000', 'sonarr_episodefile_episodenumbers': '7', 'sonarr_series_path': '/tv/Mandalorian, The', 'sonarr_eventtype': 'Download', 'sonarr_episodefile_id': '1741241', 'sonarr_episodefile_sourcepath': '/downloads/metaxas-keller-Bell.avi', 'sonarr_episodefile_episodeairdates': '2019-12-18', 'PGID': '1000', 'PWD': '/app/sonarr/bin', 'SMA_RS': 'Sonarr', 'HOME': '/root', 'sonarr_download_id': '', 'sonarr_series_type': 'Standard', 'sonarr_series_tvdbid': '361753', 'sonarr_series_tvmazeid': '38963', 'No_Expand': 'true', 'sonarr_episodefile_episodecount': '1', 'sonarr_episodefile_seasonnumber': '1', 'TERM': 'xterm', 'sonarr_episodefile_episodetitles': 'Chapter 7: The Reckoning', 'No_SQLiteFunctions': 'true', 'No_PreLoadSQLite': 'true', 'SHLVL': '1', 'LANGUAGE': 'en_US.UTF-8', 'CWD': '/', 'sonarr_series_imdbid': 'tt8111088', 'sonarr_episodefile_episodeairdatesutc': '12/18/2019 8:00:00 AM', 'sonarr_episodefile_relativepath': 'Season 1/metaxas-keller-Bell.avi', 'SMA_PATH': '/usr/local/sma', 'SONARR_BRANCH': 'phantom-develop', 'XDG_DATA_HOME': '/config/.config/share', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'SMA_UPDATE': 'false', 'No_SQLiteXmlConfigFile': 'true', 'sonarr_isupgrade': 'False', '_': '/usr/local/sma/venv/bin/python3'})

root@b2a58463d15a:/# ffprobe /downloads/metaxas-keller-Bell.avi
ffprobe version N-54690-g682990a849-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.111.101 / 58.111.101
libavformat 58. 62.100 / 58. 62.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 88.100 / 7. 88.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, avi, from '/downloads/metaxas-keller-Bell.avi':
Metadata:
encoder : Lavf57.66.105
Duration: 00:22:32.27, start: 0.000000, bitrate: 215 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 176x99 [SAR 1:1 DAR 16:9], 183 kb/s, 15 fps, 15 tbr, 15 tbn, 15 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 16000 Hz, mono, fltp, 24 kb/s

still not encoding it:(

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

noffmpeg
just seen this in sonarr events....

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

i fixe the ffmpeg and ffprobes paths in the autoprocess.inin file... now the full logs says:

2020-11-02 15:18:43 - SonarrPostProcess - INFO - Sonarr extra script post processing started.
2020-11-02 15:18:43 - resources.readsettings - INFO - /usr/local/sma/venv/bin/python3
2020-11-02 15:18:43 - resources.readsettings - DEBUG - Loading default config file.
2020-11-02 15:18:43 - resources.readsettings - INFO - Loading config file /usr/local/sma/config/autoProcess.ini.
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - environ({'sonarr_series_title': 'The Mandalorian', 'XDG_CONFIG_HOME': '/config/xdg', 'LANG': 'en_US.UTF-8', 'HOSTNAME': 'b2a58463d15a', 'sonarr_series_id': '3055', 'OLDPWD': '/run/s6/services/sonarr', 'sonarr_episodefile_sourcefolder': '/downloads', 'sonarr_episodefile_qualityversion': '1', 'sonarr_episodefile_quality': 'SDTV', 'sonarr_episodefile_releasegroup': '', 'sonarr_download_client': '', 'sonarr_episodefile_path': '/tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi', 'sonarr_episodefile_episodeids': '107407', 'sonarr_episodefile_scenename': '', 'PUID': '1000', 'sonarr_episodefile_episodenumbers': '3', 'sonarr_series_path': '/tv/Mandalorian, The', 'sonarr_eventtype': 'Download', 'sonarr_episodefile_id': '1741243', 'sonarr_episodefile_sourcepath': '/downloads/metaxas-keller-Bell.avi', 'sonarr_episodefile_episodeairdates': '2019-11-22', 'PGID': '1000', 'PWD': '/app/sonarr/bin', 'SMA_RS': 'Sonarr', 'HOME': '/root', 'sonarr_download_id': '', 'sonarr_series_type': 'Standard', 'sonarr_series_tvdbid': '361753', 'sonarr_series_tvmazeid': '38963', 'No_Expand': 'true', 'sonarr_episodefile_episodecount': '1', 'sonarr_episodefile_seasonnumber': '1', 'TERM': 'xterm', 'sonarr_episodefile_episodetitles': 'Chapter 3: The Sin', 'No_SQLiteFunctions': 'true', 'No_PreLoadSQLite': 'true', 'SHLVL': '1', 'LANGUAGE': 'en_US.UTF-8', 'CWD': '/', 'sonarr_series_imdbid': 'tt8111088', 'sonarr_episodefile_episodeairdatesutc': '11/22/2019 8:00:00 AM', 'sonarr_episodefile_relativepath': 'Season 1/metaxas-keller-Bell.avi', 'SMA_PATH': '/usr/local/sma', 'SONARR_BRANCH': 'phantom-develop', 'XDG_DATA_HOME': '/config/.config/share', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'SMA_UPDATE': 'false', 'No_SQLiteXmlConfigFile': 'true', 'sonarr_isupgrade': 'False', '_': '/usr/local/sma/venv/bin/python3'})
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - Input file: /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi.
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - Original name: .
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - TVDB ID: 361753.
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - Season: 1 episode: 3.
2020-11-02 15:18:43 - SonarrPostProcess - DEBUG - Sonarr series ID: 3055.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Processing /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Process started.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Input Data
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - {
"format": "avi",
"format-fullname": "AVI (Audio Video Interleaved)",
"video": {
"index": 0,
"codec": "mpeg4",
"bitrate": 183535,
"pix_fmt": "yuv420p",
"profile": "simple profile",
"fps": 15.0,
"dimensions": "176x99",
"level": 0.1,
"field_order": "unknown"
},
"audio": [
{
"index": 1,
"codec": "mp3",
"bitrate": 24001,
"channels": 1,
"samplerate": 16000,
"language": "und",
"disposition": "-default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired"
}
],
"subtitle": [],
"attachment": []
}
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Reading video stream.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Video codec detected: mpeg4.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Pix Fmt: yuv420p.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Profile: simple profile.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Total bitrate is 215839.0.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Total audio bitrate is 24001.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Estimated video bitrate is 191838.0.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Stream is not HDR, color parameter unknown does not match ['bt2020nc'] [hdr-['bt2020nc']].
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video codec: h264.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video bitrate: 182.24609999999998.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video CRF: -1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video maxrate: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video bufsize: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video level: 0.0.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video profile: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video preset: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video pix format: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video field order: unknown.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video width: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Video debug video.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Video codec parameters None.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Creating h264 video stream from source stream 0.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Reading audio streams.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Reordering streams to be in accordance with approved languages and channels [sort-streams, prefer-more-channels].
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Audio detected for stream 1 - mp3 und 1 channel.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Overriding default channel settings because universal audio is enabled but the source is stereo [universal-audio].
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Audio codec: aac.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Channels: 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Bitrate: 128.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Language: und.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Filter: None.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Disposition: -default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Debug: universal-audio.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Creating aac audio stream from source stream 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - 1 total audio streams with 0 set to default disposition. 0 defaults in your preferred language (), 0 in other languages.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Default audio stream set to und aac 1 channel stream [default-more-channels: True].
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Reading subtitle streams.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Scanned for external subtitles and found 0 results in your approved languages.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Subtitle output is empty or no default subtitle language is set, will not pass over subtitle output to set a default stream.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Reordering streams to be in accordance with approved languages and channels [sort-streams, prefer-more-channels].
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Selected hwaccel options:
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - ['dxva2', 'cuvid', 'qsv', 'd3d11va', 'vaapi']
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Selected hwaccel decoder pairs:
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - ['h264_cuvid', 'mjpeg_cuvid', 'mpeg1_cuvid', 'mpeg2_cuvid', 'mpeg4_cuvid', 'vc1_cuvid', 'hevc_qsv', 'h264_qsv', 'hevc_vaapi', 'h264_vaapi']
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - FFMPEG codecs:
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - {'012v': {'decoders': [], 'encoders': []}, '4xm': {'decoders': [], 'encoders': []}, '8bps': {'decoders': [], 'encoders': []}, 'a64_multi': {'decoders': [], 'encoders': ['a64multi']}, 'a64_multi5': {'decoders': [], 'encoders': ['a64multi5']}, 'aasc': {'decoders': [], 'encoders': []}, 'agm': {'decoders': [], 'encoders': []}, 'aic': {'decoders': [], 'encoders': []}, 'alias_pix': {'decoders': [], 'encoders': []}, 'amv': {'decoders': [], 'encoders': []}, 'anm': {'decoders': [], 'encoders': []}, 'ansi': {'decoders': [], 'encoders': []}, 'apng': {'decoders': [], 'encoders': []}, 'arbc': {'decoders': [], 'encoders': []}, 'argo': {'decoders': [], 'encoders': []}, 'asv1': {'decoders': [], 'encoders': []}, 'asv2': {'decoders': [], 'encoders': []}, 'aura': {'decoders': [], 'encoders': []}, 'aura2': {'decoders': [], 'encoders': []}, 'av1': {'decoders': ['libdav1d', 'libaom-av1', 'av1'], 'encoders': ['libaom-av1']}, 'avrn': {'decoders': [], 'encoders': []}, 'avrp': {'decoders': [], 'encoders': []}, 'avs': {'decoders': [], 'encoders': []}, 'avs2': {'decoders': [], 'encoders': []}, 'avs3': {'decoders': [], 'encoders': []}, 'avui': {'decoders': [], 'encoders': []}, 'ayuv': {'decoders': [], 'encoders': []}, 'bethsoftvid': {'decoders': [], 'encoders': []}, 'bfi': {'decoders': [], 'encoders': []}, 'binkvideo': {'decoders': [], 'encoders': []}, 'bintext': {'decoders': [], 'encoders': []}, 'bitpacked': {'decoders': [], 'encoders': []}, 'bmp': {'decoders': [], 'encoders': []}, 'bmv_video': {'decoders': [], 'encoders': []}, 'brender_pix': {'decoders': [], 'encoders': []}, 'c93': {'decoders': [], 'encoders': []}, 'cavs': {'decoders': [], 'encoders': []}, 'cdgraphics': {'decoders': [], 'encoders': []}, 'cdtoons': {'decoders': [], 'encoders': []}, 'cdxl': {'decoders': [], 'encoders': []}, 'cfhd': {'decoders': [], 'encoders': []}, 'cinepak': {'decoders': [], 'encoders': []}, 'clearvideo': {'decoders': [], 'encoders': []}, 'cljr': {'decoders': [], 'encoders': []}, 'cllc': {'decoders': [], 'encoders': []}, 'cmv': {'decoders': ['eacmv'], 'encoders': []}, 'cpia': {'decoders': [], 'encoders': []}, 'cri': {'decoders': [], 'encoders': []}, 'cscd': {'decoders': ['camstudio'], 'encoders': []}, 'cyuv': {'decoders': [], 'encoders': []}, 'daala': {'decoders': [], 'encoders': []}, 'dds': {'decoders': [], 'encoders': []}, 'dfa': {'decoders': [], 'encoders': []}, 'dirac': {'decoders': [], 'encoders': ['vc2']}, 'dnxhd': {'decoders': [], 'encoders': []}, 'dpx': {'decoders': [], 'encoders': []}, 'dsicinvideo': {'decoders': [], 'encoders': []}, 'dvvideo': {'decoders': [], 'encoders': []}, 'dxa': {'decoders': [], 'encoders': []}, 'dxtory': {'decoders': [], 'encoders': []}, 'dxv': {'decoders': [], 'encoders': []}, 'escape124': {'decoders': [], 'encoders': []}, 'escape130': {'decoders': [], 'encoders': []}, 'exr': {'decoders': [], 'encoders': []}, 'ffv1': {'decoders': [], 'encoders': []}, 'ffvhuff': {'decoders': [], 'encoders': []}, 'fic': {'decoders': [], 'encoders': []}, 'fits': {'decoders': [], 'encoders': []}, 'flashsv': {'decoders': [], 'encoders': []}, 'flashsv2': {'decoders': [], 'encoders': []}, 'flic': {'decoders': [], 'encoders': []}, 'flv1': {'decoders': ['flv'], 'encoders': ['flv']}, 'fmvc': {'decoders': [], 'encoders': []}, 'fraps': {'decoders': [], 'encoders': []}, 'frwu': {'decoders': [], 'encoders': []}, 'g2m': {'decoders': [], 'encoders': []}, 'gdv': {'decoders': [], 'encoders': []}, 'gif': {'decoders': [], 'encoders': []}, 'h261': {'decoders': [], 'encoders': []}, 'h263': {'decoders': ['h263', 'h263_v4l2m2m'], 'encoders': ['h263', 'h263_v4l2m2m']}, 'h263i': {'decoders': [], 'encoders': []}, 'h263p': {'decoders': [], 'encoders': []}, 'h264': {'decoders': ['h264', 'h264_v4l2m2m'], 'encoders': ['libx264', 'libx264rgb', 'h264_v4l2m2m']}, 'hap': {'decoders': [], 'encoders': []}, 'hevc': {'decoders': ['hevc', 'hevc_v4l2m2m'], 'encoders': ['libx265', 'hevc_v4l2m2m']}, 'hnm4video': {'decoders': [], 'encoders': []}, 'hq_hqa': {'decoders': [], 'encoders': []}, 'hqx': {'decoders': [], 'encoders': []}, 'huffyuv': {'decoders': [], 'encoders': []}, 'hymt': {'decoders': [], 'encoders': []}, 'idcin': {'decoders': ['idcinvideo'], 'encoders': []}, 'idf': {'decoders': [], 'encoders': []}, 'iff_ilbm': {'decoders': ['iff'], 'encoders': []}, 'imm4': {'decoders': [], 'encoders': []}, 'imm5': {'decoders': [], 'encoders': []}, 'indeo2': {'decoders': [], 'encoders': []}, 'indeo3': {'decoders': [], 'encoders': []}, 'indeo4': {'decoders': [], 'encoders': []}, 'indeo5': {'decoders': [], 'encoders': []}, 'interplayvideo': {'decoders': [], 'encoders': []}, 'ipu': {'decoders': [], 'encoders': []}, 'jpeg2000': {'decoders': ['jpeg2000', 'libopenjpeg'], 'encoders': ['jpeg2000', 'libopenjpeg']}, 'jpegls': {'decoders': [], 'encoders': []}, 'jv': {'decoders': [], 'encoders': []}, 'kgv1': {'decoders': [], 'encoders': []}, 'kmvc': {'decoders': [], 'encoders': []}, 'lagarith': {'decoders': [], 'encoders': []}, 'ljpeg': {'decoders': [], 'encoders': []}, 'loco': {'decoders': [], 'encoders': []}, 'lscr': {'decoders': [], 'encoders': []}, 'm101': {'decoders': [], 'encoders': []}, 'mad': {'decoders': ['eamad'], 'encoders': []}, 'magicyuv': {'decoders': [], 'encoders': []}, 'mdec': {'decoders': [], 'encoders': []}, 'mimic': {'decoders': [], 'encoders': []}, 'mjpeg': {'decoders': [], 'encoders': []}, 'mjpegb': {'decoders': [], 'encoders': []}, 'mmvideo': {'decoders': [], 'encoders': []}, 'mobiclip': {'decoders': [], 'encoders': []}, 'motionpixels': {'decoders': [], 'encoders': []}, 'mpeg1video': {'decoders': ['mpeg1video', 'mpeg1_v4l2m2m'], 'encoders': []}, 'mpeg2video': {'decoders': ['mpeg2video', 'mpegvideo', 'mpeg2_v4l2m2m'], 'encoders': []}, 'mpeg4': {'decoders': ['mpeg4', 'mpeg4_v4l2m2m'], 'encoders': ['mpeg4', 'libxvid', 'mpeg4_v4l2m2m']}, 'msa1': {'decoders': [], 'encoders': []}, 'mscc': {'decoders': [], 'encoders': []}, 'msmpeg4v1': {'decoders': [], 'encoders': []}, 'msmpeg4v2': {'decoders': [], 'encoders': []}, 'msmpeg4v3': {'decoders': ['msmpeg4'], 'encoders': ['msmpeg4']}, 'msrle': {'decoders': [], 'encoders': []}, 'mss1': {'decoders': [], 'encoders': []}, 'mss2': {'decoders': [], 'encoders': []}, 'msvideo1': {'decoders': [], 'encoders': []}, 'mszh': {'decoders': [], 'encoders': []}, 'mts2': {'decoders': [], 'encoders': []}, 'mv30': {'decoders': [], 'encoders': []}, 'mvc1': {'decoders': [], 'encoders': []}, 'mvc2': {'decoders': [], 'encoders': []}, 'mvdv': {'decoders': [], 'encoders': []}, 'mvha': {'decoders': [], 'encoders': []}, 'mwsc': {'decoders': [], 'encoders': []}, 'mxpeg': {'decoders': [], 'encoders': []}, 'notchlc': {'decoders': [], 'encoders': []}, 'nuv': {'decoders': [], 'encoders': []}, 'paf_video': {'decoders': [], 'encoders': []}, 'pam': {'decoders': [], 'encoders': []}, 'pbm': {'decoders': [], 'encoders': []}, 'pcx': {'decoders': [], 'encoders': []}, 'pfm': {'decoders': [], 'encoders': []}, 'pgm': {'decoders': [], 'encoders': []}, 'pgmyuv': {'decoders': [], 'encoders': []}, 'pgx': {'decoders': [], 'encoders': []}, 'photocd': {'decoders': [], 'encoders': []}, 'pictor': {'decoders': [], 'encoders': []}, 'pixlet': {'decoders': [], 'encoders': []}, 'png': {'decoders': [], 'encoders': []}, 'ppm': {'decoders': [], 'encoders': []}, 'prores': {'decoders': [], 'encoders': ['prores', 'prores_aw', 'prores_ks']}, 'prosumer': {'decoders': [], 'encoders': []}, 'psd': {'decoders': [], 'encoders': []}, 'ptx': {'decoders': [], 'encoders': []}, 'qdraw': {'decoders': [], 'encoders': []}, 'qpeg': {'decoders': [], 'encoders': []}, 'qtrle': {'decoders': [], 'encoders': []}, 'r10k': {'decoders': [], 'encoders': []}, 'r210': {'decoders': [], 'encoders': []}, 'rasc': {'decoders': [], 'encoders': []}, 'rawvideo': {'decoders': [], 'encoders': []}, 'rl2': {'decoders': [], 'encoders': []}, 'roq': {'decoders': ['roqvideo'], 'encoders': ['roqvideo']}, 'rpza': {'decoders': [], 'encoders': []}, 'rscc': {'decoders': [], 'encoders': []}, 'rv10': {'decoders': [], 'encoders': []}, 'rv20': {'decoders': [], 'encoders': []}, 'rv30': {'decoders': [], 'encoders': []}, 'rv40': {'decoders': [], 'encoders': []}, 'sanm': {'decoders': [], 'encoders': []}, 'scpr': {'decoders': [], 'encoders': []}, 'screenpresso': {'decoders': [], 'encoders': []}, 'sgi': {'decoders': [], 'encoders': []}, 'sgirle': {'decoders': [], 'encoders': []}, 'sheervideo': {'decoders': [], 'encoders': []}, 'smackvideo': {'decoders': ['smackvid'], 'encoders': []}, 'smc': {'decoders': [], 'encoders': []}, 'smvjpeg': {'decoders': [], 'encoders': []}, 'snow': {'decoders': [], 'encoders': []}, 'sp5x': {'decoders': [], 'encoders': []}, 'speedhq': {'decoders': [], 'encoders': []}, 'srgc': {'decoders': [], 'encoders': []}, 'sunrast': {'decoders': [], 'encoders': []}, 'svg': {'decoders': [], 'encoders': []}, 'svq1': {'decoders': [], 'encoders': []}, 'svq3': {'decoders': [], 'encoders': []}, 'targa': {'decoders': [], 'encoders': []}, 'targa_y216': {'decoders': [], 'encoders': []}, 'tdsc': {'decoders': [], 'encoders': []}, 'tgq': {'decoders': ['eatgq'], 'encoders': []}, 'tgv': {'decoders': ['eatgv'], 'encoders': []}, 'theora': {'decoders': [], 'encoders': ['libtheora']}, 'thp': {'decoders': [], 'encoders': []}, 'tiertexseqvideo': {'decoders': [], 'encoders': []}, 'tiff': {'decoders': [], 'encoders': []}, 'tmv': {'decoders': [], 'encoders': []}, 'tqi': {'decoders': ['eatqi'], 'encoders': []}, 'truemotion1': {'decoders': [], 'encoders': []}, 'truemotion2': {'decoders': [], 'encoders': []}, 'truemotion2rt': {'decoders': [], 'encoders': []}, 'tscc': {'decoders': ['camtasia'], 'encoders': []}, 'tscc2': {'decoders': [], 'encoders': []}, 'txd': {'decoders': [], 'encoders': []}, 'ulti': {'decoders': ['ultimotion'], 'encoders': []}, 'utvideo': {'decoders': [], 'encoders': []}, 'v210': {'decoders': [], 'encoders': []}, 'v210x': {'decoders': [], 'encoders': []}, 'v308': {'decoders': [], 'encoders': []}, 'v408': {'decoders': [], 'encoders': []}, 'v410': {'decoders': [], 'encoders': []}, 'vb': {'decoders': [], 'encoders': []}, 'vble': {'decoders': [], 'encoders': []}, 'vc1': {'decoders': ['vc1', 'vc1_v4l2m2m'], 'encoders': []}, 'vc1image': {'decoders': [], 'encoders': []}, 'vcr1': {'decoders': [], 'encoders': []}, 'vixl': {'decoders': ['xl'], 'encoders': []}, 'vmdvideo': {'decoders': [], 'encoders': []}, 'vmnc': {'decoders': [], 'encoders': []}, 'vp3': {'decoders': [], 'encoders': []}, 'vp4': {'decoders': [], 'encoders': []}, 'vp5': {'decoders': [], 'encoders': []}, 'vp6': {'decoders': [], 'encoders': []}, 'vp6a': {'decoders': [], 'encoders': []}, 'vp6f': {'decoders': [], 'encoders': []}, 'vp7': {'decoders': [], 'encoders': []}, 'vp8': {'decoders': ['vp8', 'vp8_v4l2m2m', 'libvpx'], 'encoders': ['libvpx', 'vp8_v4l2m2m']}, 'vp9': {'decoders': ['vp9', 'vp9_v4l2m2m', 'libvpx-vp9'], 'encoders': ['libvpx-vp9']}, 'wcmv': {'decoders': [], 'encoders': []}, 'webp': {'decoders': [], 'encoders': ['libwebp_anim', 'libwebp']}, 'wmv1': {'decoders': [], 'encoders': []}, 'wmv2': {'decoders': [], 'encoders': []}, 'wmv3': {'decoders': [], 'encoders': []}, 'wmv3image': {'decoders': [], 'encoders': []}, 'wnv1': {'decoders': [], 'encoders': []}, 'wrapped_avframe': {'decoders': [], 'encoders': []}, 'ws_vqa': {'decoders': ['vqavideo'], 'encoders': []}, 'xan_wc3': {'decoders': [], 'encoders': []}, 'xan_wc4': {'decoders': [], 'encoders': []}, 'xbin': {'decoders': [], 'encoders': []}, 'xbm': {'decoders': [], 'encoders': []}, 'xface': {'decoders': [], 'encoders': []}, 'xpm': {'decoders': [], 'encoders': []}, 'xwd': {'decoders': [], 'encoders': []}, 'y41p': {'decoders': [], 'encoders': []}, 'ylc': {'decoders': [], 'encoders': []}, 'yop': {'decoders': [], 'encoders': []}, 'yuv4': {'decoders': [], 'encoders': []}, 'zerocodec': {'decoders': [], 'encoders': []}, 'zlib': {'decoders': [], 'encoders': []}, 'zmbv': {'decoders': [], 'encoders': []}, '4gv': {'decoders': [], 'encoders': []}, '8svx_exp': {'decoders': [], 'encoders': []}, '8svx_fib': {'decoders': [], 'encoders': []}, 'aac': {'decoders': ['aac', 'aac_fixed'], 'encoders': []}, 'aac_latm': {'decoders': [], 'encoders': []}, 'ac3': {'decoders': ['ac3', 'ac3_fixed'], 'encoders': ['ac3', 'ac3_fixed']}, 'acelp.kelvin': {'decoders': [], 'encoders': []}, 'adpcm_4xm': {'decoders': [], 'encoders': []}, 'adpcm_adx': {'decoders': [], 'encoders': []}, 'adpcm_afc': {'decoders': [], 'encoders': []}, 'adpcm_agm': {'decoders': [], 'encoders': []}, 'adpcm_aica': {'decoders': [], 'encoders': []}, 'adpcm_argo': {'decoders': [], 'encoders': []}, 'adpcm_ct': {'decoders': [], 'encoders': []}, 'adpcm_dtk': {'decoders': [], 'encoders': []}, 'adpcm_ea': {'decoders': [], 'encoders': []}, 'adpcm_ea_maxis_xa': {'decoders': [], 'encoders': []}, 'adpcm_ea_r1': {'decoders': [], 'encoders': []}, 'adpcm_ea_r2': {'decoders': [], 'encoders': []}, 'adpcm_ea_r3': {'decoders': [], 'encoders': []}, 'adpcm_ea_xas': {'decoders': [], 'encoders': []}, 'adpcm_g722': {'decoders': ['g722'], 'encoders': ['g722']}, 'adpcm_g726': {'decoders': ['g726'], 'encoders': ['g726']}, 'adpcm_g726le': {'decoders': ['g726le'], 'encoders': ['g726le']}, 'adpcm_ima_alp': {'decoders': [], 'encoders': []}, 'adpcm_ima_amv': {'decoders': [], 'encoders': []}, 'adpcm_ima_apc': {'decoders': [], 'encoders': []}, 'adpcm_ima_apm': {'decoders': [], 'encoders': []}, 'adpcm_ima_cunning': {'decoders': [], 'encoders': []}, 'adpcm_ima_dat4': {'decoders': [], 'encoders': []}, 'adpcm_ima_dk3': {'decoders': [], 'encoders': []}, 'adpcm_ima_dk4': {'decoders': [], 'encoders': []}, 'adpcm_ima_ea_eacs': {'decoders': [], 'encoders': []}, 'adpcm_ima_ea_sead': {'decoders': [], 'encoders': []}, 'adpcm_ima_iss': {'decoders': [], 'encoders': []}, 'adpcm_ima_moflex': {'decoders': [], 'encoders': []}, 'adpcm_ima_mtf': {'decoders': [], 'encoders': []}, 'adpcm_ima_oki': {'decoders': [], 'encoders': []}, 'adpcm_ima_qt': {'decoders': [], 'encoders': []}, 'adpcm_ima_rad': {'decoders': [], 'encoders': []}, 'adpcm_ima_smjpeg': {'decoders': [], 'encoders': []}, 'adpcm_ima_ssi': {'decoders': [], 'encoders': []}, 'adpcm_ima_wav': {'decoders': [], 'encoders': []}, 'adpcm_ima_ws': {'decoders': [], 'encoders': []}, 'adpcm_ms': {'decoders': [], 'encoders': []}, 'adpcm_mtaf': {'decoders': [], 'encoders': []}, 'adpcm_psx': {'decoders': [], 'encoders': []}, 'adpcm_sbpro_2': {'decoders': [], 'encoders': []}, 'adpcm_sbpro_3': {'decoders': [], 'encoders': []}, 'adpcm_sbpro_4': {'decoders': [], 'encoders': []}, 'adpcm_swf': {'decoders': [], 'encoders': []}, 'adpcm_thp': {'decoders': [], 'encoders': []}, 'adpcm_thp_le': {'decoders': [], 'encoders': []}, 'adpcm_vima': {'decoders': [], 'encoders': []}, 'adpcm_xa': {'decoders': [], 'encoders': []}, 'adpcm_yamaha': {'decoders': [], 'encoders': []}, 'adpcm_zork': {'decoders': [], 'encoders': []}, 'alac': {'decoders': [], 'encoders': []}, 'amr_nb': {'decoders': ['amrnb', 'libopencore_amrnb'], 'encoders': ['libopencore_amrnb']}, 'amr_wb': {'decoders': ['amrwb', 'libopencore_amrwb'], 'encoders': ['libvo_amrwbenc']}, 'ape': {'decoders': [], 'encoders': []}, 'aptx': {'decoders': [], 'encoders': []}, 'aptx_hd': {'decoders': [], 'encoders': []}, 'atrac1': {'decoders': [], 'encoders': []}, 'atrac3': {'decoders': [], 'encoders': []}, 'atrac3al': {'decoders': [], 'encoders': []}, 'atrac3p': {'decoders': ['atrac3plus'], 'encoders': []}, 'atrac3pal': {'decoders': ['atrac3plusal'], 'encoders': []}, 'atrac9': {'decoders': [], 'encoders': []}, 'avc': {'decoders': ['on2avc'], 'encoders': []}, 'binkaudio_dct': {'decoders': [], 'encoders': []}, 'binkaudio_rdft': {'decoders': [], 'encoders': []}, 'bmv_audio': {'decoders': [], 'encoders': []}, 'celt': {'decoders': [], 'encoders': []}, 'codec2': {'decoders': [], 'encoders': []}, 'comfortnoise': {'decoders': [], 'encoders': []}, 'cook': {'decoders': [], 'encoders': []}, 'derf_dpcm': {'decoders': [], 'encoders': []}, 'dolby_e': {'decoders': [], 'encoders': []}, 'dsd_lsbf': {'decoders': [], 'encoders': []}, 'dsd_lsbf_planar': {'decoders': [], 'encoders': []}, 'dsd_msbf': {'decoders': [], 'encoders': []}, 'dsd_msbf_planar': {'decoders': [], 'encoders': []}, 'dsicinaudio': {'decoders': [], 'encoders': []}, 'dss_sp': {'decoders': [], 'encoders': []}, 'dst': {'decoders': [], 'encoders': []}, 'dts': {'decoders': ['dca'], 'encoders': ['dca']}, 'dvaudio': {'decoders': [], 'encoders': []}, 'eac3': {'decoders': [], 'encoders': []}, 'evrc': {'decoders': [], 'encoders': []}, 'fastaudio': {'decoders': [], 'encoders': []}, 'flac': {'decoders': [], 'encoders': []}, 'g723_1': {'decoders': [], 'encoders': []}, 'g729': {'decoders': [], 'encoders': []}, 'gremlin_dpcm': {'decoders': [], 'encoders': []}, 'gsm': {'decoders': [], 'encoders': []}, 'gsm_ms': {'decoders': [], 'encoders': []}, 'hca': {'decoders': [], 'encoders': []}, 'hcom': {'decoders': [], 'encoders': []}, 'iac': {'decoders': [], 'encoders': []}, 'ilbc': {'decoders': [], 'encoders': []}, 'imc': {'decoders': [], 'encoders': []}, 'interplay_dpcm': {'decoders': [], 'encoders': []}, 'interplayacm': {'decoders': [], 'encoders': []}, 'mace3': {'decoders': [], 'encoders': []}, 'mace6': {'decoders': [], 'encoders': []}, 'metasound': {'decoders': [], 'encoders': []}, 'mlp': {'decoders': [], 'encoders': []}, 'mp1': {'decoders': ['mp1', 'mp1float'], 'encoders': []}, 'mp2': {'decoders': ['mp2', 'mp2float'], 'encoders': ['mp2', 'mp2fixed']}, 'mp3': {'decoders': ['mp3float', 'mp3'], 'encoders': ['libmp3lame']}, 'mp3adu': {'decoders': ['mp3adufloat', 'mp3adu'], 'encoders': []}, 'mp3on4': {'decoders': ['mp3on4float', 'mp3on4'], 'encoders': []}, 'mp4als': {'decoders': ['als'], 'encoders': []}, 'mpegh_3d_audio': {'decoders': [], 'encoders': []}, 'musepack7': {'decoders': ['mpc7'], 'encoders': []}, 'musepack8': {'decoders': ['mpc8'], 'encoders': []}, 'nellymoser': {'decoders': [], 'encoders': []}, 'opus': {'decoders': ['opus', 'libopus'], 'encoders': ['opus', 'libopus']}, 'paf_audio': {'decoders': [], 'encoders': []}, 'pcm_alaw': {'decoders': [], 'encoders': []}, 'pcm_bluray': {'decoders': [], 'encoders': []}, 'pcm_dvd': {'decoders': [], 'encoders': []}, 'pcm_f16le': {'decoders': [], 'encoders': []}, 'pcm_f24le': {'decoders': [], 'encoders': []}, 'pcm_f32be': {'decoders': [], 'encoders': []}, 'pcm_f32le': {'decoders': [], 'encoders': []}, 'pcm_f64be': {'decoders': [], 'encoders': []}, 'pcm_f64le': {'decoders': [], 'encoders': []}, 'pcm_lxf': {'decoders': [], 'encoders': []}, 'pcm_mulaw': {'decoders': [], 'encoders': []}, 'pcm_s16be': {'decoders': [], 'encoders': []}, 'pcm_s16be_planar': {'decoders': [], 'encoders': []}, 'pcm_s16le': {'decoders': [], 'encoders': []}, 'pcm_s16le_planar': {'decoders': [], 'encoders': []}, 'pcm_s24be': {'decoders': [], 'encoders': []}, 'pcm_s24daud': {'decoders': [], 'encoders': []}, 'pcm_s24le': {'decoders': [], 'encoders': []}, 'pcm_s24le_planar': {'decoders': [], 'encoders': []}, 'pcm_s32be': {'decoders': [], 'encoders': []}, 'pcm_s32le': {'decoders': [], 'encoders': []}, 'pcm_s32le_planar': {'decoders': [], 'encoders': []}, 'pcm_s64be': {'decoders': [], 'encoders': []}, 'pcm_s64le': {'decoders': [], 'encoders': []}, 'pcm_s8': {'decoders': [], 'encoders': []}, 'pcm_s8_planar': {'decoders': [], 'encoders': []}, 'pcm_u16be': {'decoders': [], 'encoders': []}, 'pcm_u16le': {'decoders': [], 'encoders': []}, 'pcm_u24be': {'decoders': [], 'encoders': []}, 'pcm_u24le': {'decoders': [], 'encoders': []}, 'pcm_u32be': {'decoders': [], 'encoders': []}, 'pcm_u32le': {'decoders': [], 'encoders': []}, 'pcm_u8': {'decoders': [], 'encoders': []}, 'pcm_vidc': {'decoders': [], 'encoders': []}, 'qcelp': {'decoders': [], 'encoders': []}, 'qdm2': {'decoders': [], 'encoders': []}, 'qdmc': {'decoders': [], 'encoders': []}, 'ra_144': {'decoders': ['real_144'], 'encoders': ['real_144']}, 'ra_288': {'decoders': ['real_288'], 'encoders': []}, 'ralf': {'decoders': [], 'encoders': []}, 'roq_dpcm': {'decoders': [], 'encoders': []}, 's302m': {'decoders': [], 'encoders': []}, 'sbc': {'decoders': [], 'encoders': []}, 'sdx2_dpcm': {'decoders': [], 'encoders': []}, 'shorten': {'decoders': [], 'encoders': []}, 'sipr': {'decoders': [], 'encoders': []}, 'siren': {'decoders': [], 'encoders': []}, 'smackaudio': {'decoders': ['smackaud'], 'encoders': []}, 'smv': {'decoders': [], 'encoders': []}, 'sol_dpcm': {'decoders': [], 'encoders': []}, 'sonic': {'decoders': [], 'encoders': []}, 'sonicls': {'decoders': [], 'encoders': []}, 'speex': {'decoders': ['libspeex'], 'encoders': ['libspeex']}, 'tak': {'decoders': [], 'encoders': []}, 'truehd': {'decoders': [], 'encoders': []}, 'truespeech': {'decoders': [], 'encoders': []}, 'tta': {'decoders': [], 'encoders': []}, 'twinvq': {'decoders': [], 'encoders': []}, 'vmdaudio': {'decoders': [], 'encoders': []}, 'vorbis': {'decoders': ['vorbis', 'libvorbis'], 'encoders': ['vorbis', 'libvorbis']}, 'wavesynth': {'decoders': [], 'encoders': []}, 'wavpack': {'decoders': [], 'encoders': []}, 'westwood_snd1': {'decoders': ['ws_snd1'], 'encoders': []}, 'wmalossless': {'decoders': [], 'encoders': []}, 'wmapro': {'decoders': [], 'encoders': []}, 'wmav1': {'decoders': [], 'encoders': []}, 'wmav2': {'decoders': [], 'encoders': []}, 'wmavoice': {'decoders': [], 'encoders': []}, 'xan_dpcm': {'decoders': [], 'encoders': []}, 'xma1': {'decoders': [], 'encoders': []}, 'xma2': {'decoders': [], 'encoders': []}, 'bin_data': {'decoders': [], 'encoders': []}, 'dvd_nav_packet': {'decoders': [], 'encoders': []}, 'epg': {'decoders': [], 'encoders': []}, 'klv': {'decoders': [], 'encoders': []}, 'otf': {'decoders': [], 'encoders': []}, 'scte_35': {'decoders': [], 'encoders': []}, 'timed_id3': {'decoders': [], 'encoders': []}, 'ttf': {'decoders': [], 'encoders': []}, 'arib_caption': {'decoders': [], 'encoders': []}, 'ass': {'decoders': ['ssa', 'ass'], 'encoders': ['ssa', 'ass']}, 'dvb_subtitle': {'decoders': ['dvbsub'], 'encoders': ['dvbsub']}, 'dvb_teletext': {'decoders': ['libzvbi_teletextdec'], 'encoders': []}, 'dvd_subtitle': {'decoders': ['dvdsub'], 'encoders': ['dvdsub']}, 'eia_608': {'decoders': ['cc_dec'], 'encoders': []}, 'hdmv_pgs_subtitle': {'decoders': ['pgssub'], 'encoders': []}, 'hdmv_text_subtitle': {'decoders': [], 'encoders': []}, 'jacosub': {'decoders': [], 'encoders': []}, 'microdvd': {'decoders': [], 'encoders': []}, 'mov_text': {'decoders': [], 'encoders': []}, 'mpl2': {'decoders': [], 'encoders': []}, 'pjs': {'decoders': [], 'encoders': []}, 'realtext': {'decoders': [], 'encoders': []}, 'sami': {'decoders': [], 'encoders': []}, 'srt': {'decoders': [], 'encoders': []}, 'ssa': {'decoders': [], 'encoders': []}, 'stl': {'decoders': [], 'encoders': []}, 'subrip': {'decoders': ['srt', 'subrip'], 'encoders': ['srt', 'subrip']}, 'subviewer': {'decoders': [], 'encoders': []}, 'subviewer1': {'decoders': [], 'encoders': []}, 'text': {'decoders': [], 'encoders': []}, 'ttml': {'decoders': [], 'encoders': []}, 'vplayer': {'decoders': [], 'encoders': []}, 'webvtt': {'decoders': [], 'encoders': []}, 'xsub': {'decoders': [], 'encoders': []}}
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - FFMPEG decoders:
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - ['vdpau']
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Output Data
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - {
"source": [
"/tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi"
],
"format": "mp4",
"video": {
"codec": "h264",
"map": 0,
"bitrate": 182.24609999999998,
"crf": -1,
"maxrate": null,
"bufsize": null,
"level": 0.0,
"profile": null,
"preset": null,
"pix_fmt": null,
"field_order": "unknown",
"width": null,
"filter": null,
"params": null,
"title": "SD",
"debug": "video"
},
"audio": [
{
"map": 1,
"codec": "aac",
"channels": 1,
"bitrate": 128,
"filter": null,
"samplerate": null,
"language": "und",
"disposition": "+default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired",
"bsf": null,
"title": "Mono",
"debug": "universal-audio"
}
],
"subtitle": [],
"attachment": []
}
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Preopts
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - []
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Postopts
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - [
"-threads",
"0",
"-metadata:g",
"encoding_tool=SMA"
]
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - Starting conversion.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Input directory: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - File name: metaxas-keller-Bell.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Input extension: avi.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output directory: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output extension: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output file: /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Input directory: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - File name: metaxas-keller-Bell.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Input extension: avi.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output directory: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output extension: /tv/Mandalorian, The/Season 1.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Output file: /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Final output file: /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4.
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - FFmpeg command:
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - ======================
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - /usr/local/bin/ffmpeg -i /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi -vcodec libx264 -map 0:0 -vb 182k -metadata:s:v BPS=182000 -metadata:s:v BPS-eng=182000 -metadata:s:v title=SD -metadata:s:v handler_name=SD -c:a:0 aac -map 0:1 -ac:a:0 1 -b:a:0 128k -metadata:s:a:0 BPS=128000 -metadata:s:a:0 BPS-eng=128000 -metadata:s:a:0 title=Mono -metadata:s:a:0 handler_name=Mono -metadata:s:a:0 language=und -disposition:a:0 +default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions -strict experimental -f mp4 -threads 0 -metadata:g encoding_tool=SMA -y /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4
2020-11-02 15:18:43 - resources.mediaprocessor - INFO - ======================
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG -
2020-11-02 15:18:43 - resources.mediaprocessor - ERROR - Error converting file, FFMPEG error.
Traceback (most recent call last):
File "/usr/local/sma/resources/mediaprocessor.py", line 1488, in convert
for timecode, debug in conv:
File "/usr/local/sma/converter/init.py", line 309, in convert
timeout=timeout, preopts=preopts, postopts=postopts):
File "/usr/local/sma/converter/ffmpeg.py", line 707, in convert
total_output, pid=p.pid)
converter.ffmpeg.FFMpegConvertError:
2020-11-02 15:18:43 - resources.mediaprocessor - ERROR - /usr/local/bin/ffmpeg -i /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi -vcodec libx264 -map 0:0 -vb 182k -metadata:s:v BPS=182000 -metadata:s:v BPS-eng=182000 -metadata:s:v title=SD -metadata:s:v handler_name=SD -c:a:0 aac -map 0:1 -ac:a:0 1 -b:a:0 128k -metadata:s:a:0 BPS=128000 -metadata:s:a:0 BPS-eng=128000 -metadata:s:a:0 title=Mono -metadata:s:a:0 handler_name=Mono -metadata:s:a:0 language=und -disposition:a:0 +default-dub-original-comment-lyrics-karaoke-forced-hearing_impaired-visual_impaired-captions -strict experimental -f mp4 -threads 0 -metadata:g encoding_tool=SMA -y /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4
2020-11-02 15:18:43 - resources.mediaprocessor - ERROR - ffmpeg version N-54690-g682990a849-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.111.101 / 58.111.101
libavformat 58. 62.100 / 58. 62.100
libavdevice 58. 11.102 / 58. 11.102
libavfilter 7. 88.100 / 7. 88.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input #0, avi, from '/tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi':
Metadata:
encoder : Lavf57.66.105
Duration: 00:22:32.27, start: 0.000000, bitrate: 215 kb/s
Stream #0:0: Video: mpeg4 (Simple Profile) (FMP4 / 0x34504D46), yuv420p, 176x99 [SAR 1:1 DAR 16:9], 183 kb/s, 15 fps, 15 tbr, 15 tbn, 15 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 16000 Hz, mono, fltp, 24 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (mp3 (mp3float) -> aac (native))
Press [q] to stop, [?] for help
[aac @ 0x5dff380] Too many bits 8192.000000 > 6144 per frame requested, clamping to max
[libx264 @ 0x5e2ea80] height not divisible by 2 (176x99)
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
[aac @ 0x5dff380] Qavg: 65536.000
[aac @ 0x5dff380] 2 frames left in the queue on closing
Conversion failed!

2020-11-02 15:18:43 - resources.mediaprocessor - ERROR - /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.mp4 deleted.
2020-11-02 15:18:43 - resources.mediaprocessor - DEBUG - Error converting, no outputfile generated for inputfile /tv/Mandalorian, The/Season 1/metaxas-keller-Bell.avi.
2020-11-02 15:18:43 - SonarrPostProcess - INFO - Processing returned False.
2020-11-02 15:18:43 - SonarrPostProcess - ERROR - Error processing file
Traceback (most recent call last):
File "/usr/local/sma/postSonarr.py", line 226, in
sys.exit(1)
SystemExit: 1

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Grabbed a different sample file and it worked 👍 Thankyou so much!!
Now, as i said in the beginning of this thread, I use your fantasitc script to encode two versions of the same source file.

Folders
/storage/library/tv/1280 Series/Mandalorian, The/Season 1/
/storage/library/tv/720 Series/Mandalorian, The/Season 1/

A coding friend edited your postSonarr1280.py file so when it completes it runs postSonarr720.py. Each use their own autoprocess.ini files.

So using your docker sma image, how can i make it run the edited postsonarr1280.py file instead of currently /usr/local/sma/postSonarr.sh

Thankyou in advance

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

So there is no reason to have any additional python files, and in fact modifying the python files will only make it hard to update in the future

All you need to do is have 2 autoProcess.ini files and just tell the script which one you want to use before executing using the SMA_CONFIG environment variable which I talked about above

2 ways to do this

You can have a single entry in sonarr pointing to postSonarr.sh and you can modify it to call the script 2 times

#!/usr/bin/env bash

export SMA_CONFIG="/path/to/autoProcess1080.ini"
$SMA_PATH/venv/bin/python3 $SMA_PATH/postSonarr.py
export SMA_CONFIG="/path/to/autoProcess720p.ini"
$SMA_PATH/venv/bin/python3 $SMA_PATH/postSonarr.py

Or you could split that up into 2 scripts and have 2 connect entries in sonarr. Same difference. Obviously you want to make sure the version that runs first doesn't delete the original file before the 2nd one runs

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

It make sense actually if i could achieve it without editing your files.

However from memory why it was necessary was due to the duplicating the paths to video file:

/storage/library/tv/1280 Series/Mandalorian, The/Season 1/ep1.mp4
/storage/library/tv/720 Series/Mandalorian, The/Season 1/ep1.mp4

How to tell the autoprocess720.ini file where to save that version and what tv series is it is so it creates and save in correct folder?

You mention editing the /usr/local/sma/postSonarr.sh this file is in your docker image, how can i edit it to add:
`#!/usr/bin/env bash

export SMA_CONFIG="/path/to/autoProcess1080.ini"
$SMA_PATH/venv/bin/python3 $SMA_PATH/postSonarr.py
export SMA_CONFIG="/path/to/autoProcess720p.ini"
$SMA_PATH/venv/bin/python3 $SMA_PATH/postSonarr.py`


Or you could split that up into 2 scripts and have 2 connect entries in sonarr. Same difference. Obviously you want to make sure the version that runs first doesn't delete the original file before the 2nd one runs

Are you saying I could run two version of your sonarr/rma dockers, one to do the searching import and encode into the 1280 version. (leaving source file) using autoprocess1280.ini Then the 2nd version of your script would use the original source file to import and encode it using autoprocess720.ini?

I think the optimal way would be to grab source file .mkv, import, encoding using autoprocess1280.ini ..delete original source. .mkv and use autoprocess720.ini on the new mp4, just to resize down to 720. No idea if possible ..but I'll listen to your advice bro and thankyou.

from sonarr-sma.

mdhiggins avatar mdhiggins commented on May 23, 2024

This is a tough one as you're getting out of the realm of intended functionality here. Sonarr officially recommends running two instances of the software if you want 2 versions of everything

Not sure if your directory structure would be doable without it interfering with Sonarr

With regards to the shell script, just make a bash script with what I pasted for that approach. The approach I listed does NOT require 2 instances of Sonarr but I can't predict how Sonarr would react to having 2 media files in the directory, it might not like it and might try to delete on rescan. You'll have to test this yourself if you want to try it.

As a rule of thumb I would always convert based on the original source material, not a conversion of a conversion

Also not sure if you're using Plex for this setup but Plex has the option to cache lower resolution versions of content that might be easier than trying to force Sonarr to do something it doesn't support

I think we're reaching the end of what I can help with though, you're beyond what is intended for sonarr and this script. The SMA_CONFIG might be able to do something along what you want so you'll have to see if that suites your needs. Its not a magic solution but allows you to run alternate configurations without needing a separate installation of the script. You can always fork the containers or project and make it your own, that's the beauty of open source software.

If I was you I would just have it convert one to the highest quality and use Plex's optimized version approach

https://support.plex.tv/articles/213095317-creating-optimized-versions/

https://forums.sonarr.tv/t/is-there-any-way-to-download-and-keep-two-resolutions-per-episode/24483

from sonarr-sma.

Zeusy123 avatar Zeusy123 commented on May 23, 2024

Higgins, you have went well beyond the normal helpful support anyone else would give for free. Considering the fantastic scripts you have give to us. I seriously thankyou for that. What is your paypal email please so that I may make a donation?

I've looked into plex etc.. but, just noticed you have post processing script in mp4automator. Anyway I can use that to execute autoprocess.ini and somehow make it save output file in "720 Series" path. So it would use autoprocess1280.ini s normal and when thats complete it would run postprocessing script and thats would run the autoprcoess720.ini and when saving the output file change "/1280 Series/" in path too "/720 Series/"

Not sure if possible, but thankyou for your kind help.

Folders
/storage/library/tv/1280 Series/Mandalorian, The/Season 1/
/storage/library/tv/720 Series/Mandalorian, The/Season 1/

from sonarr-sma.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.