Amiben segítség kellene, egy "script "megfogalmazása.
Adott egy mappa ami tele van *.avi file-okkal (kb 800 db) de a fránya okos (samsung) tv-m csak *.mkv-t hajlandó lejátszani... Hogy a *********** -nnyát!! (csak, hogy szépen Magyarul fogalmazzak)...

A kövi parancs:

ffmpeg -fflags +genpts -i input.avi -c:v copy -c:a copy output.mkv

Tökéletesen átkonvertál minden *.avi-t --> *.mkv-ba és a tv le is játsza... És gyorsan is teszi!!!

A kérés az lenne, hogy megfogalmaznátok nekem egy olyan "cli" parancsot, hogy csak a bemeneti és a kimeneti mappát kellene megadni??? Egyáltalán lehetséges?

Szerk.: Egyesével nagyon lassú csinálni, és nagyon fárasztó...

  • a mester és klt válaszolt erre.
  • Bigyó bácsi Persze, mert Androidon olyan marha egyszerű egy kopipasztát elcseszni. 🙁

    for f in *.avi; do ffmpeg -fflags +genpts -i $f -c:v copy -c:a copy $f.mkv;done

    Próbáld meg ezt!
    Amit most csinálsz, az valami gyakran előforduló feladat, a jövőben sok ilyet kell csinálni, vagy csak most egyszer?
    Ettől függően van értelme szerintem szrkiptet faragni...

    Bigyó bácsi
    Nem tudom, jó lesz-e, csak telefonról írok:

    for f in *.avi; do ffmpeg  +genpts -i $f -c:v copy -c:a copyi $f.mkv;done

    Elvileg az összes avi-ból mkv lesz, pl. cica.avi cica.avi.mkv lesz
    Ha nem jó, bocsi, gépközelből holnap tudok biztosabbat

      klt Kérlek:

      Valahogy az egész parancsot fogalmazd meg!

      $ ffmpeg -fflags +genpts -i /ide/mit/írjak/input.avi -c:v copy -c:a copy /és/ide/mit/írjak/output.mkv 

      Szerk:. türelmes vagyok.

      • klt válaszolt erre.

        Bigyó bácsi Ott van. $f...
        Szerk.
        Ez egy egysoros.
        Menj az avis könyvtárba
        cd /itt/a/sokavi
        aztan add ki

          klt Bocsi, nem frissített ez az izé, amíg írtam

          Szerk:. Tesztelem, amint gép előtt leszek.

          klt

          Csináltam egy pár file-ból (5db) álló könyvtárat tesztelés céljából, de nem kerek a dolog. mindegyiken végig megy a parancs, de hibával kilép, szemléltetésképpen egyet bemásolok.

          ffmpeg version 4.4.2-0ubuntu0.22.04.1+esm4 Copyright (c) 2000-2021 the FFmpeg developers
            built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
            configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1+esm4 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
            libavutil      56. 70.100 / 56. 70.100
            libavcodec     58.134.100 / 58.134.100
            libavformat    58. 76.100 / 58. 76.100
            libavdevice    58. 13.100 / 58. 13.100
            libavfilter     7.110.100 /  7.110.100
            libswscale      5.  9.100 /  5.  9.100
            libswresample   3.  9.100 /  3.  9.100
            libpostproc    55.  9.100 / 55.  9.100
          Input #0, avi, from 'ancient.aliens.s01e01-lbas.avi':
            Metadata:
              software        : VirtualDubMod 1.5.4.1 (build 2117/release)
            Duration: 01:24:15.55, start: 0.000000, bitrate: 1166 kb/s
            Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 624x352 [SAR 1:1 DAR 39:22], 1015 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
            Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, fltp, 136 kb/s
          [NULL @ 0x5cddfd361a40] Unable to find a suitable output format for '+genpts'
          +genpts: Invalid argument

          • klt válaszolt erre.

            Bigyó bácsi Persze, mert Androidon olyan marha egyszerű egy kopipasztát elcseszni. 🙁

            for f in *.avi; do ffmpeg -fflags +genpts -i $f -c:v copy -c:a copy $f.mkv;done

            Próbáld meg ezt!
            Amit most csinálsz, az valami gyakran előforduló feladat, a jövőben sok ilyet kell csinálni, vagy csak most egyszer?
            Ettől függően van értelme szerintem szrkiptet faragni...

              klt Határozottan működik!

              klt Amit most csinálsz, az valami gyakran előforduló feladat

              Kb 6 TB Mennyiségű régen letöltött filmek és sorozatok külső tárolókon szóval több ezer *.avi... Ez az apró sor nagyon megkönnyíti a dolgomat ezer köszönet!

              • klt válaszolt erre.
              • klt kedveli ezt.
                • [törölve]

                Bocs, de én ezt az egészet nem értem. Miért a parancssori megoldás, ha van grafikus program is rá? Azon nem kell félni, hogy nem jó amit utasítást írsz, vagy nem jó a szintaktika, vagy nem jó a paraméter. Akkor minek kinlódtok?

                  [törölve]
                  A válasz egyszerű: A grafikus megoldás is a "cli" parancsokon alapszik... Mindössze "szépen néz ki" cserébe plusz erőforrás kell neki. Tekintve, hogy mennyi adatot kell konvertálnom, ha csak 5%-al tart tovább az is 8-10 napot jelentene.

                    Bigyó bácsi

                    Van kedved ezt kipróbálni?
                    Elvileg megadod neki a könyvtár nevét, és végigszánt rajta, meg az alkönyvtárakban is.

                    #!/bin/bash
                    
                    dirvizslato ()
                    {
                    local dirname="$1"
                      if [ -d "$dirname" ]; then
                         cd "$dirname"
                         echo "$dirname könyvtár jön"
                         for f in *;
                         do
                           if [ -f "$f" ]; then
                              ffmpeg -fflags +genpts -i $f -c:v copy -c:a copy $f.mkv
                           fi
                           if [ -d "$f" ]; then
                              echo "Nem fájl. hanem könyvtár: $f"
                              dirvizslato "$f"
                           fi
                         done
                         cd ..
                      fi
                    }
                    
                    
                    if [ ! -z "$1" ]; then
                       if [ -d "$1" ]; then
                         dirvizslato "$1"
                       else
                       echo "de könyvtárnév kell!"
                       fi
                    else
                    echo "kell egy könyvtárnév"
                    fi

                    Például, elmented dirivzsla.sh néven, és elidítod:
                    dirvizsla.sh rengetegavivanitt
                    És akkor a rengetegavivanitt nevű könyvtárban lévő cuccokat elkezdi ffmpegelni, az alkönyvtárakba meg be- belépeget, és ott is.
                    Segít ez még rajtad, vagy már elindult a folyamat?

                      [törölve] Melyik lenne az a GUI program, ami az említett feladatot könnyebben megoldja?

                      Ha szó van több ezer fájlról, sok tucatnyi alkönyvtárban szétszórva, azokat GUI-n drag'n'droppal cibálni is kihívás, még ha van is olyan progi, ahova lehet...
                      Ilyen esetekben megéri pár órát rászánni a szkriptelésre, aztán otthagyni, had csinálja csak...
                      Tudod, "A gép forog, az alkotó pihen."
                      😉

                        • [törölve]

                        klt Igen. Ez egy speciális eset.

                        klt 100 000% hogy kipróbálom, de az első kb 700db már megy, csak utána.

                        • klt válaszolt erre.
                        • klt kedveli ezt.

                          klt Köszönöm! 23 év gyűjtögetés, és nem mind *.avi, igazából kb 20% amit át kell konvertálnom (9 db 2 TB-os külső tárolóm) van majdnem tele.

                          Ennyivel később: 15 nap