git-developer / marvyn

MARVYN - Mastering Audio, Ripping & Video tasks automaticallY & Nicely
GNU General Public License v3.0
15 stars 3 forks source link

Not ripping dvd #12

Closed jack-dvd-ripper closed 2 years ago

jack-dvd-ripper commented 2 years ago

Hello Christian and other contributors,

This is more of a question than an issue, but I am just learning to use github because I wanted to build an automatic ripper for audio, movies, and tv series discs. I webstackexchange suggested to submit an issue if the author's contact information isn't available. So here I am. I am running Ubuntu on an old laptop with internal dvd drive. Here are the specs: Ubuntu 20.04.3 HP Pavillion g series 8GB ram 500GB HD Intel i5-2430M, 2.4Ghz x 4 AMD Caicos/Intel HD Graphics 3000 lsscsi -g results: cd/dvd hp DVD RW AD-7740H 1.80 /dev/sr0 /dev/sg1

I followed the readme.md file very closely, but when I insert the DVD (Shrek 2 DVD, not Blu-ray) it would appear the auto-ripping doesn't start. I don't even think the default /output and /work directories were created. Do I need to start up an image in docker first? Sorry for such a rudimentary question, but I was under the impression that inserting the disc would cause the disc-detection file to launch the docker image.

Thanks for making this and I hope I can get it working. Cheers, Jack

git-developer commented 2 years ago

I was under the impression that inserting the disc would cause the disc-detection file to launch the docker image

This is correct. Check the following things, one after the other, from top to bottom.

  1. Maybe there is a problem with your udev setup.
    1. Does cat /etc/udev/rules.d/disc-detection.rules output the content of disc-detection.rules?
    2. Check if a container is created when you insert a disc. The command docker ps -a | grep marvyn-rip-disc outputs a list of all relevant containers.
    3. If no container is created, the udev rule may not be in effect. Try sudo sh -c 'udevadm control --reload-rules && udevadm trigger'
    4. If still no container is created, try rebooting your machine.
    5. If still no container is created, check your journal for related messages when inserting a disc: sudo journalctl -f
  2. Are you able to trigger rip-disc manually with the command ID_CDROM_MEDIA_DVD=1 sudo /opt/docker/marvyn/bin/rip-disc /dev/sr0? This command is called under the hood and should create a container.
  3. Maybe there's a problem concerning permissions. Does the default configuration in /opt/docker/marvyn/etc/rip-disc.yml match your environment (device names, group)?
jack-dvd-ripper commented 2 years ago

Thanks for the quick reply!

I went through your list to check and here is what I have as results:

  1. I think there is as problem with udev because i. Yes, the output is: ACTION=="change", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", ENV{ID_CDROM}=="?*", RUN+="/opt/docker/marvyn/bin/rip-disc '/dev/%k'" which is exactly the same as the disc-detection.rules ii. docker ps -a | grep marvyn-rip-disc returned: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied So I ran sudo docker ps -a | grep marvyn-rip-disc which returned no result in the terminal regardless of what disk I inserted iii. If I run this while a disk is in the drive, it will spin up as if I had just inserted it, but still no output from sudo docker ps -a | grep marvyn-rip-disc iv. Same results :( v. This gave the results:

    -- Logs begin at Sat 2022-02-12 17:46:46 CST. --
    Mar 05 16:50:43 Ripper NetworkManager[665]: <info>  [1646520643.6443] device (wlx984827e16ced): supplicant interface state: scanning -> associating
    Mar 05 16:50:43 Ripper wpa_supplicant[707]: wlx984827e16ced: Associated with 04:d9:f5:b1:9a:60
    Mar 05 16:50:43 Ripper wpa_supplicant[707]: wlx984827e16ced: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
    Mar 05 16:50:43 Ripper NetworkManager[665]: <info>  [1646520643.7967] device (wlx984827e16ced): supplicant interface state: associating -> 4-way handshake
    Mar 05 16:50:45 Ripper wpa_supplicant[707]: wlx984827e16ced: WPA: Key negotiation completed with 04:d9:f5:b1:9a:60 [PTK=CCMP GTK=CCMP]
    Mar 05 16:50:45 Ripper wpa_supplicant[707]: wlx984827e16ced: CTRL-EVENT-CONNECTED - Connection to 04:d9:f5:b1:9a:60 completed [id=0 id_str=]
    Mar 05 16:50:45 Ripper wpa_supplicant[707]: bgscan simple: Failed to enable signal strength monitoring
    Mar 05 16:50:45 Ripper NetworkManager[665]: <info>  [1646520645.1532] device (wlx984827e16ced): supplicant interface state: 4-way handshake -> completed
    Mar 05 16:50:58 Ripper sudo[7151]:     jack : TTY=pts/1 ; PWD=/home/jack ; USER=root ; COMMAND=/usr/bin/journalctl -f
    Mar 05 16:50:58 Ripper sudo[7151]: pam_unix(sudo:session): session opened for user root by (uid=0)
    Mar 05 16:51:00 Ripper dockerd[984]: time="2022-03-05T16:51:00.164784450-06:00" level=error msg="Not continuing with pull after error: errors:\ndenied: requested access to the resource is denied\nunauthorized: authentication required\n"
    Mar 05 16:51:00 Ripper dockerd[984]: time="2022-03-05T16:51:00.164942989-06:00" level=info msg="Ignoring extra error returned from registry: unauthorized: authentication required"
    Mar 05 16:51:00 Ripper systemd-udevd[7134]: sr0: Process '/opt/docker/marvyn/bin/rip-disc '/dev/sr0'' failed with exit code 1.
    Mar 05 16:51:00 Ripper kernel: VFS: busy inodes on changed media sr0
    Mar 05 16:51:08 Ripper dockerd[984]: time="2022-03-05T16:51:08.215913325-06:00" level=error msg="Not continuing with pull after error: errors:\ndenied: requested access to the resource is denied\nunauthorized: authentication required\n"
    Mar 05 16:51:08 Ripper dockerd[984]: time="2022-03-05T16:51:08.216047736-06:00" level=info msg="Ignoring extra error returned from registry: unauthorized: authentication required"
    Mar 05 16:51:08 Ripper systemd-udevd[7134]: sr0: Process '/opt/docker/marvyn/bin/rip-disc '/dev/sr0'' failed with exit code 1.
    Mar 05 16:51:08 Ripper systemd[1]: Unmounting /media/jack/CHARLIE_WILSONS_WAR...
    Mar 05 16:51:08 Ripper systemd[880]: media-jack-CHARLIE_WILSONS_WAR.mount: Succeeded.
    Mar 05 16:51:08 Ripper udisksd[706]: Cleaning up mount point /media/jack/CHARLIE_WILSONS_WAR (device 11:0 is not mounted)
    Mar 05 16:51:08 Ripper dbus-daemon[930]: [session uid=1000 pid=930] Activating via systemd: service name='org.freedesktop.Tracker1' unit='tracker-store.service' requested by ':1.1' (uid=1000 pid=892 comm="/usr/libexec/tracker-miner-fs " label="unconfined")
    Mar 05 16:51:08 Ripper systemd[880]: Starting Tracker metadata database store and lookup manager...
    Mar 05 16:51:08 Ripper dbus-daemon[930]: [session uid=1000 pid=930] Successfully activated service 'org.freedesktop.Tracker1'
    Mar 05 16:51:08 Ripper systemd[880]: Started Tracker metadata database store and lookup manager.
    Mar 05 16:51:08 Ripper systemd[1]: media-jack-CHARLIE_WILSONS_WAR.mount: Succeeded.
    Mar 05 16:51:08 Ripper systemd[1]: Unmounted /media/jack/CHARLIE_WILSONS_WAR.
    Mar 05 16:51:08 Ripper systemd[1]: Stopping Clean the /media/jack/CHARLIE_WILSONS_WAR mount point...
    Mar 05 16:51:08 Ripper systemd[1]: clean-mount-point@media-jack-CHARLIE_WILSONS_WAR.service: Succeeded.
    Mar 05 16:51:08 Ripper systemd[1]: Stopped Clean the /media/jack/CHARLIE_WILSONS_WAR mount point.
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#7 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#7 Sense Key : Illegal Request [current] 
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#7 Add. Sense: Read of scrambled sector without authentication
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#7 CDB: Read(10) 28 00 00 3b 81 80 00 00 40 00
    Mar 05 16:51:15 Ripper kernel: blk_update_request: I/O error, dev sr0, sector 15599104 op 0x0:(READ) flags 0x80700 phys_seg 31 prio class 0
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#4 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#4 Sense Key : Illegal Request [current] 
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#4 Add. Sense: Read of scrambled sector without authentication
    Mar 05 16:51:15 Ripper kernel: sr 2:0:0:0: [sr0] tag#4 CDB: Read(10) 28 00 00 3b 81 9f 00 00 01 00
    Mar 05 16:51:15 Ripper kernel: blk_update_request: I/O error, dev sr0, sector 15599228 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
    Mar 05 16:51:15 Ripper kernel: Buffer I/O error on dev sr0, logical block 3899807, async page read
    Mar 05 16:51:23 Ripper dockerd[984]: time="2022-03-05T16:51:23.195796601-06:00" level=error msg="Not continuing with pull after error: errors:\ndenied: requested access to the resource is denied\nunauthorized: authentication required\n"
    Mar 05 16:51:23 Ripper dockerd[984]: time="2022-03-05T16:51:23.195905397-06:00" level=info msg="Ignoring extra error returned from registry: unauthorized: authentication required"
    Mar 05 16:51:23 Ripper systemd-udevd[7190]: sr0: Process '/opt/docker/marvyn/bin/rip-disc '/dev/sr0'' failed with exit code 1.
    Mar 05 16:51:24 Ripper kernel: UDF-fs: INFO Mounting volume 'CHARLIE_WILSONS_WAR', timestamp 2008/02/11 21:18 (1000)
    Mar 05 16:51:24 Ripper systemd[1]: Finished Clean the /media/jack/CHARLIE_WILSONS_WAR mount point.
    Mar 05 16:51:24 Ripper udisksd[706]: Mounted /dev/sr0 at /media/jack/CHARLIE_WILSONS_WAR on behalf of uid 1000
    Mar 05 16:51:54 Ripper tracker-store[7179]: OK
    Mar 05 16:51:54 Ripper systemd[880]: tracker-store.service: Succeeded.
    Mar 05 16:52:11 Ripper wpa_supplicant[707]: wlx984827e16ced: CTRL-EVENT-DISCONNECTED bssid=04:d9:f5:b1:9a:60 reason=0
    Mar 05 16:52:11 Ripper wpa_supplicant[707]: wlx984827e16ced: CTRL-EVENT-ASSOC-REJECT status_code=1

    I think you are on to something here. It seems that the docker doesn't have authorization to take control of the disk drive?

  2. No, here is my output:
    Pulling marvyn-rip-disc (ckware/marvyn:)...
    ERROR: pull access denied for ckware/marvyn, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  3. Maybe you are right, but I'm not exactly sure how to know for sure. Here is the output of lsscsi -g
    [0:0:0:0]    disk    ATA      ST9500325AS      HPM1  /dev/sda   /dev/sg0 
    [2:0:0:0]    cd/dvd  hp       DVD RW AD-7740H  1.80  /dev/sr0   /dev/sg1 

    I thought these matched the defaults in my /opt/docker/marvyn/etc/rip-disc.yml file:

    ---
    version: "2.2"
    services:
    marvyn-rip-disc:
        extends:
        file: base.yml
        service: marvyn-base
        hostname: marvyn
        env_file:
        - mail.env
        environment:
        - ID_CDROM_MEDIA_CD
        - ID_CDROM_MEDIA_CD_R
        - ID_CDROM_MEDIA_DVD
        - ID_CDROM_MEDIA_BD
        - ID_FS_LABEL
        - MARVYN_CD_TITLE_DEPTH=3
        - MARVYN_EJECT_DISC=yes
        devices:
        - /dev/cdrom:/dev/cdrom
        - /dev/dvd:/dev/dvd
        - /dev/sg1:/dev/sg1
        - /dev/sr0:/dev/sr0
        group_add:
        - cdrom
        cap_add:
        - SYS_RAWIO

    But maybe I need to check something else?

Some other things I noticed. I cannot copy an files from the DVD on to the desktop. I try, but nothing happens. VLC also cannot play the files directly from the DVD. It responds with: Your input can't be opened: VLC is unable to open the MRL 'file:///media/jack/NON-STOP/VIDEO_TS/VTS_07_0.VOB'. Check the log for details. Which I have attached VLCLogs.txt

git-developer commented 2 years ago
ERROR: pull access denied for ckware/marvyn, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Docker tries to pull the image from an external registry, which means that it does not exist locally. Check if the image exists on your machine:

   $ sudo docker images | grep marvyn
   ckware/marvyn                  latest                               6122e7e20ac3   2 months ago    818MB

If it doesn't, you probably did not run all of the installation steps, especially /opt/docker/marvyn/image/build.

The only useful information that I find in the VLC log are read errors.

Side note: If you'd like to run docker commands without sudo, your user has to be member of the docker group. See Manage Docker as a non-root user for instructions and be sure to understand the security implications.

jack-dvd-ripper commented 2 years ago

You were right, the image was not built. I am not sure how I messed that up. It was there, but must have been corrupted. Perhaps the laptop lost power while building the image. The computer I've made into my ripping machine is a bit slow, so it takes nearly 2 hours to build the image. Now that it is built, it does start a docker as soon as I put a disk in the drive. docker ps -a | grep marvyn-rip-disc gives me

7f5a602a0970   ckware/marvyn   "/bin/sh -c 'exec ni…"   11 seconds ago   Up 8 seconds                          marvyn-rip-disc-20220306-093503
78620e733343   ckware/marvyn   "/bin/sh -c 'exec ni…"   54 seconds ago   Exited (1) 51 seconds ago             marvyn-rip-disc-20220306-093420
f66868b14dc1   ckware/marvyn   "/bin/sh -c 'exec ni…"   58 seconds ago   Created 

However, I am only ripping movies at the moment, so how to I get the transcoding to start as soon as the DVD is ripped? For example, after insterting the disc, the drive will spin up and run for about 15 minutes, then spin down and I will have this nice output:

jack@Ripper:/opt/docker/marvyn/output/DVD/CHARLIE_WILSONS_WAR/VIDEO_TS$ ls
VIDEO_TS.BUP  VTS_01_0.IFO  VTS_01_3.VOB  VTS_01_7.VOB  VTS_02_1.VOB  VTS_03_1.VOB  VTS_04_1.VOB  VTS_05_1.VOB  VTS_06_1.VOB
VIDEO_TS.IFO  VTS_01_0.VOB  VTS_01_4.VOB  VTS_02_0.BUP  VTS_03_0.BUP  VTS_04_0.BUP  VTS_05_0.BUP  VTS_06_0.BUP
VIDEO_TS.VOB  VTS_01_1.VOB  VTS_01_5.VOB  VTS_02_0.IFO  VTS_03_0.IFO  VTS_04_0.IFO  VTS_05_0.IFO  VTS_06_0.IFO
VTS_01_0.BUP  VTS_01_2.VOB  VTS_01_6.VOB  VTS_02_0.VOB  VTS_03_0.VOB  VTS_04_0.VOB  VTS_05_0.VOB  VTS_06_0.VOB

How would I then make the transcoding start immediately after without the need for any input from me?

Cheers, Jack

git-developer commented 2 years ago

Glad to hear that your problem is solved. Please close this issue, we can continute the conversation anyway.

How would I then make the transcoding start immediately after without the need for any input from me?

MARVYN's autorip feature covers lossless ripping and decrypting only. Transcoding is supposed to run separately, either for a single video (Video Disc Conversion) or for a bunch of videos (Video Series Conversion). See Examples for the syntax.

Your options to combine autorip with transcoding, ordered by complexity & comfort:

  1. Rip one or more videos in a first step, then manually run video-series-conversion on the output root directory.
  2. Write a minimal shell script and change your disc-detection.rules to run this script instead of rip-disc. The shell script simply contains commands for ripping and transcoding. Easiest would be to start rip-disc and then video-series-conversion on the root output directory for DVDs (I think video-disc-conversion is not an option because you'd have to know the disc directory before ripping).
  3. Write an extension that combines ripping and transcoding. This solution allows a custom configuration file.
jack-dvd-ripper commented 2 years ago

Thank you very much!

jack-dvd-ripper commented 2 years ago

Continuing the discussion, though. When I run jack@Ripper:~$ bin/transcode-disc-directory /opt/docker/marvyn/output/DVD/CHARLIE_WILSONS_WAR/ I don't seem to get any output. My transcode-disc-directory.yml is the default, I think:

version: "2.2"
services:
  marvyn-transcode-disc-directory:
    extends:
      file: vaapi-transcode.yml
      service: marvyn-vaapi-transcode
    environment:
      - MARVYN_CLEANUP
    volumes:
      - ../work:/work

But no temporary files are loaded in the work directory nor are there any additional file in the output directory. I think I will use the first solution you proposed since it is the easiest.

Thanks again!

git-developer commented 2 years ago

I don't seem to get any output

When you you run a command, the container id is printed to screen. Using this id, you can view the container log (documented under Management tasks):

$ /opt/docker/marvyn/bin/transcode-disc-directory /media/movies/my-movie/
95b1000eb9ee508230c451a56ae7150bf783bd1cf9f2ebdfcc4824ded54086f4
$ docker logs 95b1000eb9ee508230c451a56ae7150bf783bd1cf9f2ebdfcc4824ded54086f4
app_Key = *************************
MakeMKV v1.16.7 linux(x64-release) started
The program can't find any usable optical drives.
Opening files on harddrive at file:///input/my-movie/VIDEO_TS
Opening files on harddrive at file:///input/my-movie/VIDEO_TS
Calculated BUP offset for VTS #1 does not match one in IFO header.
Calculated BUP offset for VTS #2 does not match one in IFO header.
Title #1 has length of 81 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Cells 9-end were skipped due to cell commands (structure protection?)
Title #2 was added (8 cell(s), 0:48:08)
Operation successfully completed
Saving 1 titles into directory file:///work/my-movie
...

When something goes wrong, you should see a message about it in the log.

When the id is not printed, have a look into your journal. Maybe you have a permission issue.

You can also view the log of terminated containers:

$ docker ps -a | grep marvyn-transcode-disc-directory
95b1000eb9ee   ckware/marvyn                      "/bin/sh -c 'exec ni…"    17 minutes ago   Exited (143) 17 minutes ago                                                                                                                                   marvyn-transcode-disc-directory-20220312-090135
$ docker logs 95b1000eb9ee
jack-dvd-ripper commented 2 years ago

Again, thank you for your patients and quick replies. I believe I have a permissions issue, and I think I resolved it, though maybe I did not use the best method.

jack@Ripper:~$ docker logs marvyn-transcode-disc-directory-20220309-152752 
mkdir: cannot create directory '/output/CHARLIE_WILSONS_WAR': Permission denied

I used sudo chmod -R 777 docker/ to change the permissions. Maybe you know a better way than to changed the entire directory to 777? My linux knowledge is very limited, so this is the only method I know.

After changing permissions I ran the transcode again:

jack@Ripper:/opt/docker/marvyn$ bin/transcode-disc-directory /opt/docker/marvyn/output/DVD/CHARLIE_WILSONS_WAR/
marvyn-transcode-disc-directory-20220312-083817

I let it run until it was finished:

jack@Ripper:/opt/docker/marvyn$ docker ps -a | grep marvyn-transcode-disc-directory
bc0c3beb309f   ckware/marvyn   "/bin/sh -c 'exec ni…"   6 minutes ago   Exited (1) About a minute ago             marvyn-transcode-disc-directory-20220312-083817

I then checked the logs:

jack@Ripper:/opt/docker/marvyn$ docker logs marvyn-transcode-disc-directory-20220312-083817 
MakeMKV v1.16.7 linux(x64-release) started
Automatic checking for updates is enabled, you may disable it in preferences if you don't want MakeMKV to contact web server.
The program can't find any usable optical drives.
Opening files on harddrive at file:///input/CHARLIE_WILSONS_WAR/VIDEO_TS
Opening files on harddrive at file:///input/CHARLIE_WILSONS_WAR/VIDEO_TS
Calculated BUP offset for VTS #1 does not match one in IFO header.
Calculated BUP offset for VTS #2 does not match one in IFO header.
Calculated BUP offset for VTS #3 does not match one in IFO header.
Calculated BUP offset for VTS #4 does not match one in IFO header.
Calculated BUP offset for VTS #5 does not match one in IFO header.
Calculated BUP offset for VTS #6 does not match one in IFO header.
Cells 22-end were skipped due to cell commands (structure protection?)
Title #1 was added (21 cell(s), 1:41:41)
Title #1/0/1 has length of 1 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Cells 2-end were skipped due to cell commands (structure protection?)
Title #2 was added (1 cell(s), 0:03:17)
Title #2/0/1 has length of 1 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Cells 2-end were skipped due to cell commands (structure protection?)
Title #3 was added (1 cell(s), 0:17:09)
Title #3/0/1 has length of 1 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Cells 2-end were skipped due to cell commands (structure protection?)
Title #4 was added (1 cell(s), 0:12:21)
Title #4/0/1 has length of 1 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Title #5 has length of 24 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Title #6 has length of 14 seconds which is less than minimum title length of 120 seconds and was therefore skipped
Operation successfully completed
Saving 4 titles into directory file:///work/CHARLIE_WILSONS_WAR
4 titles saved
Copy complete. 4 titles saved.
Selected language: eng
[AVHWDeviceContext @ 0x5587867e8d00] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=foo:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument...

Again, I corrected this by changing the permissions on /dev/dri/renderD128 and ran it again and this time it work quite well. My next questions are:

  1. Where can I set the minimum length to be transcoded? I'd like to set it to be more than 120 seconds.
  2. The quality of the transcoded files are a bit low. What parameter do I change to increase their quality?

Thanks again! Jack

git-developer commented 2 years ago

1. Permissions on /opt/docker/marvyn/output

I used sudo chmod -R 777 docker/ to change the permissions.

This should not be required when you follow the first command of the installation instructions, which gives write permission on /opt/docker to group users. 777 means that anyone may do anything. I recommend to give 775 and add your user to the group of the output directory.

2. Permissions on /dev/dri/renderD128

Again, I corrected this by changing the permissions on /dev/dri/renderD128

I do not recommend changing the permissions on a file under /dev. I guess the change is lost after a reboot. Instead, give the required permissions to your user. This can be done in 2 steps:

  1. Find out the required permissions:
    $ ls -n /dev/dri/renderD128
    crw-rw---- 1 0 118 226, 128 Mär 10 07:35 /dev/dri/renderD128

    That means: users of group 118 have write permission on the device.

  2. Add the user to this group by adding the numeric group id to the group_add section in etc/vaapi-transcode.yml:
    services:
      marvyn-vaapi-transcode:
        [...]
        group_add:
        - video
        - 118

    The group id should be in numeric format because the group name may not be known within within the Docker container.

3. MakeMKV configuration

Where can I set the minimum length to be transcoded? I'd like to set it to be more than 120 seconds.

The minimum length is a MakeMKV configuration parameter. These parameters may be configured in the MakeMKV settings file /opt/docker/marvyn/data/.MakeMKV/settings.conf. To set the minimum length to 180 seconds, add the following line to the file:

dvd_MinimumTitleLength = "180"

I found the parameter name in the thread Documentation for settings.conf?. Please use the MakeMKV support forum for questions on MakeMKV.

4. Transcoding parameters

The quality of the transcoded files are a bit low. What parameter do I change to increase their quality?

A list of supported parameters can be found in the video transcoding documentation. Add the parameter to either transcode-disc-directory.yml or vaapi-transcode.yml. See vaapi-transcode.yml as an example for the syntax. If you need anything that is not available as parameter, you can customize the ffmpeg call in the service script vaapi-transcode.