Ich versuche mit grep eine Text-Datei nach z.B.: "errors" zu suchen und benötige aber auch noch die Ausgabe der Zeilennummer +/- 10. Gefunden habe ich dazu den Befehl :
grep -A 10 -B 10 -i -n 'error\|duplicate\|failure' ./*.txt
Prinzipiell hat grep den Befehl richtig interpretiert, nur dass die Zeilennummer völlig falsch von grep interpretiert wird. Ausgabe von grep :
31- Metadata: 32- encoder : Lavf58.76.100 33- Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, top coded first (swapped)), 720x576 [SAR 16:15 DAR 4:3], q=2-31, 25 fps, 12800 tbn 34- Metadata: 35- encoder : Lavc58.134.100 libx264 36- Side data: 37- cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A 38- Stream #0:1(deu): Audio: mp2 (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s [mpeg2video @ 0x555b5a7a8d40] mb incr damagedme=00:06:22.45 bitrate= 219.3kbits/s speed=11.5x 40-[mpeg2video @ 0x555b5a7a8d40] Warning MVs not available 41:[mpeg2video @ 0x555b5a7a8d40] concealing 135 DC, 135 AC, 135 MV errors in P frame 42-./29 Palms.ts: corrupt decoded frame in stream 0 [mpeg2video @ 0x555b5a7a8d40] ac-tex damaged at 5 153:54.66 bitrate= 223.7kbits/s dup=4 drop=0 speed=10.9x 44-[mpeg2video @ 0x555b5a7a8d40] Warning MVs not available 45:[mpeg2video @ 0x555b5a7a8d40] concealing 45 DC, 45 AC, 45 MV errors in I frame 46-./29 Palms.ts: corrupt decoded frame in stream 0 [mpeg2video @ 0x555b5a7a8d40] 00 motion_type at 18 24:28.02 bitrate= 223.6kbits/s dup=4 drop=0 speed=11.1x 48-[mpeg2video @ 0x555b5a7a8d40] Warning MVs not available 49:[mpeg2video @ 0x555b5a7a8d40] concealing 270 DC, 270 AC, 270 MV errors in P frame 50-./29 Palms.ts: corrupt decoded frame in stream 0 frame=124841 fps=281 q=-1.0 Lsize= 139457kB time=01:23:13.60 bitrate= 228.8kbits/s dup=8 drop=0 speed=11.2x 52-video:20002kB audio:117014kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.781805% 53-[libx264 @ 0x555b5a7a7e00] frame I:500 Avg QP:46.86 size: 2228 54-[libx264 @ 0x555b5a7a7e00] frame P:124341 Avg QP:49.67 size: 156 55-[libx264 @ 0x555b5a7a7e00] mb I I16..4: 100.0% 0.0% 0.0% 56-[libx264 @ 0x555b5a7a7e00] mb P I16..4: 2.2% 0.0% 0.0% P16..4: 1.5% 0.0% 0.0% 0.0% 0.0% skip:96.3% 57-[libx264 @ 0x555b5a7a7e00] coded y,uvDC,uvAC intra: 1.4% 19.3% 0.8% inter: 0.1% 0.3% 0.0% 58-[libx264 @ 0x555b5a7a7e00] i16 v,h,dc,p: 54% 28% 11% 7% 59-[libx264 @ 0x555b5a7a7e00] i8c dc,h,v,p: 87% 6% 7% 0%
Erkannte Zeilennummer : 41,45 und 49 (s. string "errors")
Ich hätte erwartet, dass folgendes ausgegeben wird, Bsp nur für einen Fehler :
frame=64873 fps=273 q=49.0 size= 70912kB time=00:43:15.05 bitrate= 223.9kbits/s dup=2 drop=0 speed=10.9x frame=65020 fps=273 q=50.0 size= 70912kB time=00:43:20.94 bitrate= 223.3kbits/s dup=4 drop=0 speed=10.9x frame=65177 fps=273 q=50.0 size= 71168kB time=00:43:27.23 bitrate= 223.6kbits/s dup=4 drop=0 speed=10.9x frame=65340 fps=273 q=49.0 size= 71168kB time=00:43:33.76 bitrate= 223.1kbits/s dup=4 drop=0 speed=10.9x frame=65474 fps=273 q=51.0 size= 71424kB time=00:43:39.11 bitrate= 223.4kbits/s dup=4 drop=0 speed=10.9x frame=65605 fps=273 q=50.0 size= 71680kB time=00:43:44.34 bitrate= 223.8kbits/s dup=4 drop=0 speed=10.9x frame=65732 fps=273 q=49.0 size= 71680kB time=00:43:49.43 bitrate= 223.3kbits/s dup=4 drop=0 speed=10.9x frame=65863 fps=273 q=49.0 size= 71936kB time=00:43:54.66 bitrate= 223.7kbits/s dup=4 drop=0 speed=10.9x [mpeg2video @ 0x555b5a7a8d40] ac-tex damaged at 5 15 [mpeg2video @ 0x555b5a7a8d40] Warning MVs not available [mpeg2video @ 0x555b5a7a8d40] concealing 45 DC, 45 AC, 45 MV errors in I frame ./29 Palms.ts: corrupt decoded frame in stream 0 frame=66006 fps=273 q=51.0 size= 71936kB time=00:44:00.37 bitrate= 223.2kbits/s dup=4 drop=0 speed=10.9x frame=66152 fps=273 q=52.0 size= 72192kB time=00:44:06.23 bitrate= 223.5kbits/s dup=4 drop=0 speed=10.9x frame=66295 fps=273 q=51.0 size= 72192kB time=00:44:11.94 bitrate= 223.0kbits/s dup=4 drop=0 speed=10.9x frame=66427 fps=273 q=50.0 size= 72448kB time=00:44:17.24 bitrate= 223.3kbits/s dup=4 drop=0 speed=10.9x frame=66561 fps=273 q=50.0 size= 72704kB time=00:44:22.57 bitrate= 223.7kbits/s dup=4 drop=0 speed=10.9x frame=66711 fps=273 q=50.0 size= 72704kB time=00:44:28.57 bitrate= 223.2kbits/s dup=4 drop=0 speed=10.9x frame=66857 fps=273 q=51.0 size= 72960kB time=00:44:34.43 bitrate= 223.5kbits/s dup=4 drop=0 speed=10.9x frame=67010 fps=273 q=50.0 size= 73216kB time=00:44:40.55 bitrate= 223.8kbits/s dup=4 drop=0 speed=10.9x frame=67146 fps=273 q=51.0 size= 73216kB time=00:44:45.97 bitrate= 223.3kbits/s dup=4 drop=0 speed=10.9x
Die Zeilennummer nach Angabe eines Texteditors für dieses Bsp.: 516-536
Die komplette Text-Datei habe ich als gz angehängt.
Offensichtlich erkennt grep das Folgende nicht als Zeile :
frame=67146 fps=273 q=51.0 size= 73216kB time=00:44:45.97 bitrate= 223.3kbits/s dup=4 drop=0 speed=10.9x
Weiß jemand was man tun kann, damit grep die Zeilennummer richtig interpretiert und dementsprechend die Ausgabe korrigiert ? Oder ich in meinem script die Text-Datei so ausgebe, dass grep keine Probleme damit hat :
Zeile im script für die Text-Ausgabe :
1 | ffmpeg -y -i "$video" -vcodec libx264 -crf 51 -preset ultrafast -tune fastdecode -acodec copy "${filename}51.mp4" 2>"${filename}.txt" </dev/null |