Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Datei zeilenweise lesen - Problem Programmaufruf ffmpeg

  1. #1
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39

    Datei zeilenweise lesen - Problem Programmaufruf ffmpeg

    Hallo,

    ich möchte alle *.mp4 Dateien in einem Verzeichnis mit ffmpeg bearbeiten.
    Die Variante find ... -exec ffmpeg ... \; funktioniert, bietet mir allerdings zu wenig Möglichkeiten innerhalb -exec ... \;

    Das Herausfinden der mp4 Dateien ist kein Problem. Sie werden in der Datei: /tmp/MP4-Dateiliste.txt geschrieben.
    Code:
     find /tmp/Videotest -maxdepth 1 -name "*mp4" > "/tmp/Videotest/MP4-Dateiliste.txt" 2>/dev/null

    Das Einlesen einer Datei funktioniert nach dem Schema:

    Code:
      
    while read  ZEILE
      do
         echo  ffmpeg -i "$ZEILE"  -c:v libx264 -crf 25  -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4
    done < /tmp/Videotest/MP4-Dateiliste.txt
    Die beabsichtigten Programmaufrufe werden mittels echo exakt angezeigt:

    Code:
    ffmpeg -i /tmp/Videotest/005.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/005.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/004.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/004.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/002.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/002.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/003.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/003.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/006.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/006.mp4.bearbeitet.mp4
    Entferne ich das echo vor ffmpeg, dann werden die Zeilen anders eingelesen.

    Code:
      
    while read  ZEILE
      do
         ffmpeg -i "$ZEILE"  -c:v libx264 -crf 25  -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4
    done < /tmp/Videotest/MP4-Dateiliste.txt
    Ausgabe:

    Code:
    ffmpeg -i /tmp/Videotest/005.mp4 -crf 25 -preset slow -c:a aac /tmp/Videotest/005.mp4.bearbeitet.mp4
    ffmpeg -i /Videotest/004.mp4 -crf 25 -preset slow -c:a aac /Videotest/004.mp4.bearbeitet.mp4
    
    ffmpeg -i /tmp/Videotest/002.mp4 -crf 25 -preset slow -c:a aac /tmp/Videotest/002.mp4.bearbeitet.mp4
    ffmpeg -i /Videotest/006.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /Videotest/006.mp4.bearbeitet.mp4
    2 von 6 Dateien werden wie gewünscht konvertiert.
    2 Dateinamen werden am Anfang gekürzt - ffmpeg kann die Datei nicht finden
    2 Dateien werden gar nicht aufgerufen.

    Möglicherweise gibt ffmpeg einen Wert zurück, den read einliesst.

    Was kann ich tun, damit ffmpeg richtig aufgerufen wird - ohne read zu beeinflussen?

    Vielen Dank
    Ferdi
    Geändert von ferdi1 (05.10.21 um 15:36 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    2.551
    1. Poste bitte mal Deine

    Code:
    /tmp/Videotest/MP4-Dateiliste.txt
    mit

    Code:
    od -c /tmp/Videotest/MP4-Dateiliste.txt

    2. Haben alle Filme das identische Format? "mediainfo" ist Dein Freund. Vllt. stolpert ffmpeg ja deswegen.

    3. Dein Output mit echo zeigt eine kunterbunte Reihenfolge : 2-1-4-2-3-6.
    Ich wage zu bezweifeln, dass find sowas liefert.
    Geändert von Aqualung (07.10.21 um 16:07 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39
    Hallo,

    danke für die Antwort. Hier die Ausgabe:
    Code:
    od -c /tmp/Videotest/MP4-Dateiliste.txt 
    0000000   /   t   m   p   /   V   i   d   e   o   t   e   s   t   /   0
    0000020   0   3   .   m   p   4  \n   /   t   m   p   /   V   i   d   e
    0000040   o   t   e   s   t   /   0   0   6   .   m   p   4  \n   /   t
    0000060   m   p   /   V   i   d   e   o   t   e   s   t   /   0   0   4
    0000100   .   m   p   4  \n   /   t   m   p   /   V   i   d   e   o   t
    0000120   e   s   t   /   0   0   1   .   m   p   4  \n   /   t   m   p
    0000140   /   V   i   d   e   o   t   e   s   t   /   0   0   5   .   m
    0000160   p   4  \n   /   t   m   p   /   V   i   d   e   o   t   e   s
    0000200   t   /   0   0   2   .   m   p   4  \n
    0000212
    das müsste passen. Nach jeder Zeile kommt ein \n

    find sortiert bei mir nicht automatisch.
    Code:
    find /tmp/Videotest/
    /tmp/Videotest/
    /tmp/Videotest/003.mp4
    /tmp/Videotest/003.mp4.bearbeitet.mp4
    /tmp/Videotest/006.mp4
    /tmp/Videotest/004.mp4
    /tmp/Videotest/001.mp4.bearbeitet.mp4
    /tmp/Videotest/001.mp4
    /tmp/Videotest/005.mp4
    /tmp/Videotest/002.mp4
    /tmp/Videotest/MP4-Dateiliste.txt
    Im Verzeichnis sind die 6 Quelldateien, die 2 konvertierten und die Dateiliste.


    Kann es sein, dass ffmeg 2 Werte ausgibt, die read irgendwie dazu bringt die 2. und 3. Eingabe falsch einzulesen?
    Mit Ausgabeumleitung ffmpfg in eine Datei habe ich es bereits probiert. Leider ohne Erfolg.

    Mit ffmpeg passt die erste Zeile, die 2. Zeile fehlt ganz und in der 3. Zeile fehlt etwas vom Anfang:
    Code:
    ffmpeg -i /tmp/Videotest/003.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/003.mp4.bearbeitet.mp4
    
    ffmpeg -i tmp/Videotest/004.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac tmp/Videotest/004.mp4.bearbeitet.mp4
    
    ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
    
    ffmpeg -i /Videotest/002.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /Videotest/002.mp4.bearbeitet.mp4
    Zur Verdeutlichung könnte ich nach find ein sort einbauen oder das echo in eine Datei leiten, dich ich dann ausführe. Was meint ihr?

    An den mp4 Dateien kann es nicht liegen. Es sind alles die gleichen nur mit einenḿ anderen Dateinamen.

    Wenn ich die Version mit dem Echo nehme und die Befehle im Terminal eingebe, dann werden alle Videos konvertiert.
    Code:
    ffmpeg -i /tmp/Videotest/005.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/005.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/004.mp4 -c:v libx264 -crf 25 -preset slow -c:a aac /tmp/Videotest/004.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/002.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/002.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/003.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/003.mp4.bearbeitet.mp4
    ffmpeg -i /tmp/Videotest/006.mp4 -c:v libx264  -crf 25 -preset slow -c:a aac /tmp/Videotest/006.mp4.bearbeitet.mp4
    Ergebnis i.o:
    Code:
    find /tmp/Videotest/
    /tmp/Videotest/
    /tmp/Videotest/002.mp4.bearbeitet.mp4
    /tmp/Videotest/003.mp4
    /tmp/Videotest/003.mp4.bearbeitet.mp4
    /tmp/Videotest/005.mp4.bearbeitet.mp4
    /tmp/Videotest/006.mp4
    /tmp/Videotest/004.mp4
    /tmp/Videotest/001.mp4.bearbeitet.mp4
    /tmp/Videotest/001.mp4
    /tmp/Videotest/005.mp4
    /tmp/Videotest/006.mp4.bearbeitet.mp4
    /tmp/Videotest/002.mp4
    /tmp/Videotest/004.mp4.bearbeitet.mp4
    /tmp/Videotest/MP4-Dateiliste.txt

  4. #4
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Du kannst mal bei der Variante ohne das Echo den Debug Modus aktiviert - https://www.cyberciti.biz/tips/debug...ll-script.html
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  5. #5
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39
    Programm Video_wandeln.sh - jetzt mit sort nach find:
    Code:
    #!/bin/bash
    
      find /tmp/Videotest -maxdepth 1 -name "*mp4" | sort > "/tmp/Videotest/MP4-Dateiliste.txt" 2>/dev/null
    
      # Datei Zeilenweise einlesen Start
      while read  ZEILE
      do
    
        echo --01 --- Datei zur Bearbeitung: "$ZEILE"
    
        ffmpeg -i "$ZEILE"  -c:v libx264 -vf scale=-1:1080 -crf 25  -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4 2>>Fehlerausgabe.txt
    
        echo --99 --- Dateibearbeitung Ende: "$ZEILE"
        echo 
    
      # Datei Zeilenweise einlesen Ende
      done < /tmp/Videotest/MP4-Dateiliste.txt
    Erzeugt eine sortierte Dateiliste:
    Code:
    /tmp/Videotest/001.mp4
    /tmp/Videotest/002.mp4
    /tmp/Videotest/003.mp4
    /tmp/Videotest/004.mp4
    /tmp/Videotest/005.mp4
    /tmp/Videotest/006.mp4
    Programmaufruf und Ausgabe im Debug Modus:
    Code:
    ... $ bash -x ./Video_wandeln.sh 
    + find /tmp/Videotest -maxdepth 1 -name '*mp4'
    + sort
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: /tmp/Videotest/001.mp4
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/001.mp4
    + ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
    + echo --99 --- Dateibearbeitung Ende: /tmp/Videotest/001.mp4
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/001.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: p/Videotest/003.mp4
    --01 --- Datei zur Bearbeitung: p/Videotest/003.mp4
    + ffmpeg -i p/Videotest/003.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac p/Videotest/003.mp4.bearbeitet.mp4
    + echo --99 --- Dateibearbeitung Ende: p/Videotest/003.mp4
    --99 --- Dateibearbeitung Ende: p/Videotest/003.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: /tmp/Videotest/004.mp4
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/004.mp4
    + ffmpeg -i /tmp/Videotest/004.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/004.mp4.bearbeitet.mp4
    + echo --99 --- Dateibearbeitung Ende: /tmp/Videotest/004.mp4
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/004.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: p/Videotest/006.mp4
    --01 --- Datei zur Bearbeitung: p/Videotest/006.mp4
    + ffmpeg -i p/Videotest/006.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac p/Videotest/006.mp4.bearbeitet.mp4
    + echo --99 --- Dateibearbeitung Ende: p/Videotest/006.mp4
    --99 --- Dateibearbeitung Ende: p/Videotest/006.mp4
    + echo
    
    + read ZEILE
    Korrekt gewandelt wurden die Videos:
    - /tmp/Videotest/001.mp4
    - /tmp/Videotest/004.mp4

    Das gleiche Programm ohne die Umleitung ffmpeg .... 2>>Fehlerdatei.txt wird umfangreicher. Das Ergebnis bleibt gleich.
    Code:
    ... $ bash -x ./Video_wandeln.sh 
    + find /tmp/Videotest -maxdepth 1 -name '*mp4'
    + sort
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: /tmp/Videotest/001.mp4
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/001.mp4
    + ffmpeg -i /tmp/Videotest/001.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/001.mp4.bearbeitet.mp4
    ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 10 (Debian 10.2.1-6)
      configuration: --prefix=/usr --extra-version=0+deb11u2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
      libavutil      56. 51.100 / 56. 51.100
      libavcodec     58. 91.100 / 58. 91.100
      libavformat    58. 45.100 / 58. 45.100
      libavdevice    58. 10.100 / 58. 10.100
      libavfilter     7. 85.100 /  7. 85.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  7.100 /  5.  7.100
      libswresample   3.  7.100 /  3.  7.100
      libpostproc    55.  7.100 / 55.  7.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x5585fad0f340] st: 0 edit list: 1 Missing key frame while searching for timestamp: 1000
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x5585fad0f340] st: 0 edit list 1 Cannot find an index entry before timestamp: 1000.
    Guessed Channel Layout for Input Stream #0.1 : stereo
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/Videotest/001.mp4':
      Metadata:
        major_brand     : XAVC
        minor_version   : 16785407
        compatible_brands: XAVCmp42iso2
        creation_time   : 2021-10-04T17:14:56.000000Z
      Duration: 00:00:01.44, start: 0.000000, bitrate: 116530 kb/s
        Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/iec61966-2-4), 3840x2160 [SAR 1:1 DAR 16:9], 100520 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Video Media Handler
          encoder         : AVC Coding
        Stream #0:1(und): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, stereo, s16, 1536 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Sound Media Handler
        Stream #0:2(und): Data: none (rtmd / 0x646D7472), 204 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Timed Metadata Media Handler
          timecode        : 11:59:22:16
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (pcm_s16be (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 0x5585fad3bb00] using SAR=1/1
    [libx264 @ 0x5585fad3bb00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
    [libx264 @ 0x5585fad3bb00] profile High, level 5.0, 4:2:0, 8-bit
    [libx264 @ 0x5585fad3bb00] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '/tmp/Videotest/001.mp4.bearbeitet.mp4':2.77 bitrate=  -0.0kbits/s speed=N/A    
      Metadata:
        major_brand     : XAVC
        minor_version   : 16785407
        compatible_brands: XAVCmp42iso2
        encoder         : Lavf58.45.100
        Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Video Media Handler
          encoder         : Lavc58.91.100 libx264
        Side data:
          cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
        Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Sound Media Handler
          encoder         : Lavc58.91.100 aac
    
    error parsing debug value
    debug=0
    frame=   36 fps=7.6 q=-1.0 Lsize=     327kB time=00:00:01.45 bitrate=1844.6kbits/s speed=0.306x    
    video:301kB audio:23kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.760634%
    [libx264 @ 0x5585fad3bb00] frame I:2     Avg QP:23.96  size: 42562
    [libx264 @ 0x5585fad3bb00] frame P:10    Avg QP:26.17  size: 11254
    [libx264 @ 0x5585fad3bb00] frame B:24    Avg QP:26.81  size:  4590
    [libx264 @ 0x5585fad3bb00] consecutive B-frames: 11.1%  0.0%  0.0% 88.9%
    [libx264 @ 0x5585fad3bb00] mb I  I16..4: 41.8% 52.2%  6.0%
    [libx264 @ 0x5585fad3bb00] mb P  I16..4:  1.3%  0.5%  0.0%  P16..4: 29.6%  4.0% 10.5%  0.0%  0.0%    skip:54.2%
    [libx264 @ 0x5585fad3bb00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 50.3%  0.6%  0.0%  direct: 0.2%  skip:48.9%  L0:42.9% L1:56.7% BI: 0.4%
    [libx264 @ 0x5585fad3bb00] 8x8 transform intra:50.3% inter:88.0%
    [libx264 @ 0x5585fad3bb00] direct mvs  spatial:83.3% temporal:16.7%
    [libx264 @ 0x5585fad3bb00] coded y,uvDC,uvAC intra: 48.2% 50.5% 8.8% inter: 3.4% 6.0% 0.0%
    [libx264 @ 0x5585fad3bb00] i16 v,h,dc,p: 14% 21%  7% 58%
    [libx264 @ 0x5585fad3bb00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  2%  2%  2% 18% 23% 14% 18% 10% 10%
    [libx264 @ 0x5585fad3bb00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  2%  2%  1% 22% 22% 13% 18%  8% 12%
    [libx264 @ 0x5585fad3bb00] i8c dc,h,v,p: 16% 58% 17%  9%
    [libx264 @ 0x5585fad3bb00] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x5585fad3bb00] ref P L0: 65.2%  9.0% 17.3%  4.4%  3.7%  0.4%
    [libx264 @ 0x5585fad3bb00] ref B L0: 84.5% 11.9%  2.8%  0.8%
    [libx264 @ 0x5585fad3bb00] ref B L1: 94.3%  5.7%
    [libx264 @ 0x5585fad3bb00] kb/s:1710.12
    [aac @ 0x5585fad4a740] Qavg: 145.277
    + echo --99 --- Dateibearbeitung Ende: /tmp/Videotest/001.mp4
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/001.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: /Videotest/003.mp4
    --01 --- Datei zur Bearbeitung: /Videotest/003.mp4
    + ffmpeg -i /Videotest/003.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /Videotest/003.mp4.bearbeitet.mp4
    ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 10 (Debian 10.2.1-6)
      configuration: --prefix=/usr --extra-version=0+deb11u2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
      libavutil      56. 51.100 / 56. 51.100
      libavcodec     58. 91.100 / 58. 91.100
      libavformat    58. 45.100 / 58. 45.100
      libavdevice    58. 10.100 / 58. 10.100
      libavfilter     7. 85.100 /  7. 85.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  7.100 /  5.  7.100
      libswresample   3.  7.100 /  3.  7.100
      libpostproc    55.  7.100 / 55.  7.100
    /Videotest/003.mp4: No such file or directory
    + echo --99 --- Dateibearbeitung Ende: /Videotest/003.mp4
    --99 --- Dateibearbeitung Ende: /Videotest/003.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: /tmp/Videotest/004.mp4
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/004.mp4
    + ffmpeg -i /tmp/Videotest/004.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac /tmp/Videotest/004.mp4.bearbeitet.mp4
    ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 10 (Debian 10.2.1-6)
      configuration: --prefix=/usr --extra-version=0+deb11u2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
      libavutil      56. 51.100 / 56. 51.100
      libavcodec     58. 91.100 / 58. 91.100
      libavformat    58. 45.100 / 58. 45.100
      libavdevice    58. 10.100 / 58. 10.100
      libavfilter     7. 85.100 /  7. 85.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  7.100 /  5.  7.100
      libswresample   3.  7.100 /  3.  7.100
      libpostproc    55.  7.100 / 55.  7.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55e37f401340] st: 0 edit list: 1 Missing key frame while searching for timestamp: 1000
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55e37f401340] st: 0 edit list 1 Cannot find an index entry before timestamp: 1000.
    Guessed Channel Layout for Input Stream #0.1 : stereo
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/Videotest/004.mp4':
      Metadata:
        major_brand     : XAVC
        minor_version   : 16785407
        compatible_brands: XAVCmp42iso2
        creation_time   : 2021-10-04T17:14:56.000000Z
      Duration: 00:00:01.44, start: 0.000000, bitrate: 116530 kb/s
        Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/iec61966-2-4), 3840x2160 [SAR 1:1 DAR 16:9], 100520 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Video Media Handler
          encoder         : AVC Coding
        Stream #0:1(und): Audio: pcm_s16be (twos / 0x736F7774), 48000 Hz, stereo, s16, 1536 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Sound Media Handler
        Stream #0:2(und): Data: none (rtmd / 0x646D7472), 204 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Timed Metadata Media Handler
          timecode        : 11:59:22:16
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (pcm_s16be (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 0x55e37f42db00] using SAR=1/1
    [libx264 @ 0x55e37f42db00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
    [libx264 @ 0x55e37f42db00] profile High, level 5.0, 4:2:0, 8-bit
    [libx264 @ 0x55e37f42db00] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=crf mbtree=1 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to '/tmp/Videotest/004.mp4.bearbeitet.mp4':2.77 bitrate=  -0.0kbits/s speed=N/A    
      Metadata:
        major_brand     : XAVC
        minor_version   : 16785407
        compatible_brands: XAVCmp42iso2
        encoder         : Lavf58.45.100
        Stream #0:0(und): Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Video Media Handler
          encoder         : Lavc58.91.100 libx264
        Side data:
          cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
        Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
        Metadata:
          creation_time   : 2021-10-04T17:14:56.000000Z
          handler_name    : Sound Media Handler
          encoder         : Lavc58.91.100 aac
    
    error parsing debug value
    debug=0
    frame=   36 fps=7.6 q=-1.0 Lsize=     327kB time=00:00:01.45 bitrate=1844.6kbits/s speed=0.307x    
    video:301kB audio:23kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.760634%
    [libx264 @ 0x55e37f42db00] frame I:2     Avg QP:23.96  size: 42562
    [libx264 @ 0x55e37f42db00] frame P:10    Avg QP:26.17  size: 11254
    [libx264 @ 0x55e37f42db00] frame B:24    Avg QP:26.81  size:  4590
    [libx264 @ 0x55e37f42db00] consecutive B-frames: 11.1%  0.0%  0.0% 88.9%
    [libx264 @ 0x55e37f42db00] mb I  I16..4: 41.8% 52.2%  6.0%
    [libx264 @ 0x55e37f42db00] mb P  I16..4:  1.3%  0.5%  0.0%  P16..4: 29.6%  4.0% 10.5%  0.0%  0.0%    skip:54.2%
    [libx264 @ 0x55e37f42db00] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 50.3%  0.6%  0.0%  direct: 0.2%  skip:48.9%  L0:42.9% L1:56.7% BI: 0.4%
    [libx264 @ 0x55e37f42db00] 8x8 transform intra:50.3% inter:88.0%
    [libx264 @ 0x55e37f42db00] direct mvs  spatial:83.3% temporal:16.7%
    [libx264 @ 0x55e37f42db00] coded y,uvDC,uvAC intra: 48.2% 50.5% 8.8% inter: 3.4% 6.0% 0.0%
    [libx264 @ 0x55e37f42db00] i16 v,h,dc,p: 14% 21%  7% 58%
    [libx264 @ 0x55e37f42db00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  2%  2%  2% 18% 23% 14% 18% 10% 10%
    [libx264 @ 0x55e37f42db00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  2%  2%  1% 22% 22% 13% 18%  8% 12%
    [libx264 @ 0x55e37f42db00] i8c dc,h,v,p: 16% 58% 17%  9%
    [libx264 @ 0x55e37f42db00] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x55e37f42db00] ref P L0: 65.2%  9.0% 17.3%  4.4%  3.7%  0.4%
    [libx264 @ 0x55e37f42db00] ref B L0: 84.5% 11.9%  2.8%  0.8%
    [libx264 @ 0x55e37f42db00] ref B L1: 94.3%  5.7%
    [libx264 @ 0x55e37f42db00] kb/s:1710.12
    [aac @ 0x55e37f43c740] Qavg: 145.277
    + echo --99 --- Dateibearbeitung Ende: /tmp/Videotest/004.mp4
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/004.mp4
    + echo
    
    + read ZEILE
    + echo --01 --- Datei zur Bearbeitung: p/Videotest/006.mp4
    --01 --- Datei zur Bearbeitung: p/Videotest/006.mp4
    + ffmpeg -i p/Videotest/006.mp4 -c:v libx264 -vf scale=-1:1080 -crf 25 -preset slow -c:a aac p/Videotest/006.mp4.bearbeitet.mp4
    ffmpeg version 4.3.2-0+deb11u2 Copyright (c) 2000-2021 the FFmpeg developers
      built with gcc 10 (Debian 10.2.1-6)
      configuration: --prefix=/usr --extra-version=0+deb11u2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
      libavutil      56. 51.100 / 56. 51.100
      libavcodec     58. 91.100 / 58. 91.100
      libavformat    58. 45.100 / 58. 45.100
      libavdevice    58. 10.100 / 58. 10.100
      libavfilter     7. 85.100 /  7. 85.100
      libavresample   4.  0.  0 /  4.  0.  0
      libswscale      5.  7.100 /  5.  7.100
      libswresample   3.  7.100 /  3.  7.100
      libpostproc    55.  7.100 / 55.  7.100
    p/Videotest/006.mp4: No such file or directory
    + echo --99 --- Dateibearbeitung Ende: p/Videotest/006.mp4
    --99 --- Dateibearbeitung Ende: p/Videotest/006.mp4
    + echo
    
    + read ZEILE

  6. #6
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Eigenartig, was kann da los sein?
    Ich schätze, entweder ist deine Hardware kaputt, oder das ist ein sehr spezielles Problem - Attacke, eine andere Anwendung die was falsch macht, was nebenläufiges was in die gleiche Datei schreibt oder so.
    Ich würde die Festplatte prüfen, RAM wäre auch denkbar, aber ich glaube dann würde dein System viel mehr Probleme zeigen.
    So die Klassiker dazu:
    https://linux.die.net/man/8/tune2fs
    https://linux.die.net/man/8/badblocks
    https://linux.die.net/man/8/memtester

    Du kannst auch mal schauen, was denn nach dem find in der Datei steht, vielleicht stimmt ja schon da was nicht. Da dein Programm aber nicht falsch ist, eher was für die Neugier, dann aber auch noch prüfen, ob sich die Datei mit der Dateiliste verändert, etwa so:
    Code:
    #!/bin/bash
    
      find /tmp/Videotest -maxdepth 1 -name "*mp4" | sort > "/tmp/Videotest/MP4-Dateiliste.txt" 2>/dev/null
      cat /tmp/Videotest/MP4-Dateiliste.txt
      md5sum /tmp/Videotest/MP4-Dateiliste.txt
      # Datei Zeilenweise einlesen Start
      while read  ZEILE
      do
    
        echo --01 --- Datei zur Bearbeitung: "$ZEILE"
        md5sum /tmp/Videotest/MP4-Dateiliste.txt
        ffmpeg -i "$ZEILE"  -c:v libx264 -vf scale=-1:1080 -crf 25  -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4 2>>Fehlerausgabe.txt
        md5sum /tmp/Videotest/MP4-Dateiliste.txt
        echo --99 --- Dateibearbeitung Ende: "$ZEILE"
        echo 
    
      # Datei Zeilenweise einlesen Ende
      done < /tmp/Videotest/MP4-Dateiliste.txt
    Geändert von nopes (14.10.21 um 23:36 Uhr)
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  7. #7
    Registrierter Benutzer Avatar von michel_vaclav
    Registriert seit
    Jan 2003
    Ort
    daheim
    Beiträge
    1.055
    Was passiert denn, wenn Du ihm spasseshalber mal die Dateiliste manuell vorsetzt und darin eine andere Reihenfolge der Dateien angibst? Sind es immer die gleichen Dateien oder ist es immer die gleiche Position innerhalb der Dateiliste, die ffmpeg nicht richtig vorgesetzt wird?
    Visit me at fehrmich.spdns.de

  8. #8
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39
    Es ist immer die gleiche Position innerhalb der Dateiliste.

  9. #9
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39
    Die Dateiliste bleibt gleich:
    Code:
    ./Video_wandeln.sh 
    /tmp/Videotest/001.mp4
    /tmp/Videotest/002.mp4
    /tmp/Videotest/003.mp4
    /tmp/Videotest/004.mp4
    /tmp/Videotest/005.mp4
    /tmp/Videotest/006.mp4
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/001.mp4
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/001.mp4
    
    --01 --- Datei zur Bearbeitung: p/Videotest/003.mp4
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    --99 --- Dateibearbeitung Ende: p/Videotest/003.mp4
    
    --01 --- Datei zur Bearbeitung: /tmp/Videotest/004.mp4
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    --99 --- Dateibearbeitung Ende: /tmp/Videotest/004.mp4
    
    --01 --- Datei zur Bearbeitung: p/Videotest/006.mp4
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    56c0808c0d4af632c14fa364f65e4848  /tmp/Videotest/MP4-Dateiliste.txt
    --99 --- Dateibearbeitung Ende: p/Videotest/006.mp4

  10. #10
    Registrierter Benutzer
    Registriert seit
    Oct 2008
    Beiträge
    39
    Bevor ich verzweifle, hier eine Version, die mittels echo ein Shell-Skript erstellt und dies dann im Anschluss abarbeitet.

    Code:
    #!/bin/bash
    
      find /tmp/Videotest -maxdepth 1 -name "*mp4" | sort > "/tmp/Videotest/MP4-Dateiliste.txt" 2>/dev/null
    
      # Datei Zeilenweise einlesen Start
      while read  ZEILE
      do
    
        echo --01 --- Datei zur Bearbeitung: "$ZEILE"
        
        echo ffmpeg -i "$ZEILE"  -c:v libx264 -vf scale=-1:1080 -crf 25  -preset slow -c:a aac ${ZEILE}.bearbeitet.mp4 >> /tmp/Videotest/Viedokonvertierung.sh
    
        echo --99 --- Dateibearbeitung Ende: "$ZEILE"
        echo 
    
      # Datei Zeilenweise einlesen Ende
      done < /tmp/Videotest/MP4-Dateiliste.txt
    
      cat /tmp/Videotest/Viedokonvertierung.sh
    
      chmod a+x /tmp/Videotest/Viedokonvertierung.sh
    
      /tmp/Videotest/Viedokonvertierung.sh
    Funktioniert problemlos

Ähnliche Themen

  1. Datei zeilenweise sortieren bash
    Von Hitman4021 im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 21.10.11, 16:27
  2. ffmpeg : .Tonspur von wmv Datei löschen
    Von delix im Forum Fernsehen
    Antworten: 7
    Letzter Beitrag: 01.05.11, 15:26
  3. shell script. datei zeilenweise auslesen usw.
    Von boesi666 im Forum Linux Allgemein
    Antworten: 13
    Letzter Beitrag: 28.05.09, 22:41
  4. vsd datei lesen ?
    Von Bolek im Forum Anwendungen Allgemein, Software
    Antworten: 13
    Letzter Beitrag: 27.11.07, 22:36
  5. C++ - Datei lesen & schreiben
    Von shy im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 14.04.06, 14:54

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •