staging.inyokaproject.org

Erkennnug ob Video bild hat

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

Kannst du den Pfad für Radioaufnahmen nicht anders konfigurieren, oder sonst wie die Dateien erkennen/markieren. Was du im Betreff schreibst, erscheint mir sehr aufwändig. Geht bestimmt per Script irgendwie, aber aufwändig.

das befürchte ich auch!!!

Sind die Dateinamen völlig unspezifisch?

ja sind sie.

Jetzt ein Lösungsansatz der nicht elegant aber funktional ist:

Tvheadend bietet die Möglichkeit den Sendernamen an das Script zu übergeben und dann alle Sendernamen an eine if then abfrage übergeben.

that's it.

wenn jemand ne bessere Lösung hat dann nur her damit.

hier nochmal der gesamte Code für den der ihn braucht:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash

sudo chmod  -R 777 /media/AUD-VID >> /media/AUD-VID/log/cskip.log 2>&1 

n=1 >> /media/AUD-VID/log/cskip.log 2>&1
while [ -f  /media/AUD-VID/log/cskip$n.log ] >> /media/AUD-VID/log/cskip.log 2>&1
do >> /media/AUD-VID/log/cskip.log 2>&1
let "n=n+1" >> /media/AUD-VID/log/cskip.log 2>&1
if [ $n = 11 ] >> /media/AUD-VID/log/cskip.log 2>&1
then >> /media/AUD-VID/log/cskip.log 2>&1
n=1 >> /media/AUD-VID/log/cskip.log 2>&1
rm -f /media/AUD-VID/log/*.log >> /media/AUD-VID/log/cskip.log 2>&1
fi >> /media/AUD-VID/log/cskip.log 2>&1
done >> /media/AUD-VID/log/cskip.log 2>&1

echo $n-$n-$n-$n-$n $n-$n-$n-$n-$n $n-$n-$n-$n-$n $n-$n-$n-$n-$n $n-$n-$n-$n-$n $n >> /media/AUD-VID/log/cskip.log 2>&1
echo >> /media/AUD-VID/log/cskip.log 2>&1
echo >> /media/AUD-VID/log/cskip.log 2>&1
echo >> /media/AUD-VID/log/cskip.log 2>&1
echo >> /media/AUD-VID/log/cskip.log 2>&1

origFile=$1 > /media/AUD-VID/log/cskip$n.log 2>&1 
echo "$origFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
inFile=$1 >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$inFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
outFile="${inFile%%??}" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
newFile=$outFile"cut.mp4" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$newFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
mp3File=$outFile"conv.mp3" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$mp3File" >> /media/AUD-VID/log/cskip$n.log 2>&1
encodeFile=$outFile"mp4" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$encoodeFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
logFile=$outFile"log" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$encodeFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
logFile=/media/AUD-VID/log/cskip$n.log >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$logFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
lockFile=/media/AUD-VID/dvrProcessing.lock >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$lockFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
iniFile=/media/AUD-VID/cskip.ini >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$iniFile" >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Wait post processing is already running >> /media/AUD-VID/log/cskip$n.log 2>&1
while ( -f "$lockFile" ) >> /media/AUD-VID/log/cskip$n.log 2>&1
do >> /media/AUD-VID/log/cskip$n.log 2>&1
    echo ""$lockFile" exists, sleeping processing of "$origFile"" >> /media/AUD-VID/log/cskip$n.log 2>&1
    sleep 10 >> /media/AUD-VID/log/cskip$n.log 2>&1
done >> /media/AUD-VID/log/cskip$n.log 2>&1

if [ $2 == "hr1" ] || [ $2 == "SWR Aktuell" ] || [ $2 == "NDR 1 Nieders. HAN" ] || [ $2 == "Bremen Eins" ] || [ $2 == "NDR Blue" ] || [ $2 == "RADIO N1" ] || [ $2 == "OE1" ] || [ $2 == "SR 2 Kultur Radio" ] || [ $2 == "WDR 4" ] || [ $2 == "FM4" ] || [ $2 == "MDR KLASSIK" ] || [ $2 == "B5 aktuell" ] || [ $2 == "SWR3" ] || [ $2 == "Carivari" ] || [ $2 == "Klassik Radio" ] || [ $2 == "hr3" ] || [ $2 == "ENERGY N" ] || [ $2 == "2DAY" ] || [ $2 == "M94,5" ] || [ $2 == "BAYERN plus" ] || [ $2 == "BR Heimat" ] || [ $2 == "Antenne Brandenburg" ] || [ $2 == "Radio Paloma" ] || [ $2 == "BAYERN 3" ] || [ $2 == "WDR 2 Reihnland" ] || [ $2 == "MDR KULTUR" ] || [ $2 == "SWR4 RP" ] || [ $2 == "N-JOY" ] || [ $2 == "NDR 90,3" ] || [ $2 == "ROCK ANTENNE" ] || [ $2 == "rbbKultur" ] || [ $2 == "B5 plus" ] || [ $2 == "SWR4 BW" ] || [ $2 == "Bayern 1" ] || [ $2 == "YOU FM" ] || [ $2 == "Radio Fantasy" ] || [ $2 == "MDR JUMP" ] || [ $2 == "Radio Charivari Wuerzburg" ] || [ $2 == "inforadio" ] || [ $2 == "MDR ThÜRINGEN EF" ] || [ $2 == "ENERGY M" ] || [ $2 == "OE2 S" ] || [ $2 == "WDR 5" ] || [ $2 == "SR1 Europawelle" ] || [ $2 == "hr2" ] || [ $2 == "MDR SACHSEN DD" ] || [ $2 == "NDR 2 NDS" ] || [ $2 == "NDR1 Welle Nord KI" ] || [ $2 == "SR 3 Saarlandwelle" ] || [ $2 == "hr4" ] || [ $2 == "MDR S-ANHALT MD" ] || [ $2 == "SWR2" ] || [ $2 == "Gong96,3" ] || [ $2 == "ANTENNE BAYERN" ] || [ $2 == "WDR 3" ] || [ $2 == "Bremen Vier" ] || [ $2 == "OE3" ] || [ $2 == "SWR1 RP" ] || [ $2 == "NDR Info NDS" ] || [ $2 == "JAM FM" ] || [ $2 == "SWR1 BW" ] || [ $2 == "GONG" ] || [ $2 == "MDR SPUTNIK" ] || [ $2 == "NDR Plus" ] || [ $2 == "ARABELLA" ] || [ $2 == "NDR Kultur" ] || [ $2 == "MDR AKTUELL" ] || [ $2 == "BR-KLASSIC" ] || [ $2 == "Bayern 2" ] || [ $2 == "Bremen Zwei" ] || [ $2 == "NDR Info Spez." ] || [ $2 == "rbb 88.8" ] || [ $2 == "Radio Gong Wuerzburg" ] || [ $2 == "NDR 1 Radio MV SN" ] || [ $2 == "Radio Horeb" ] || [ $2 == "0" ] || [ $2 == "0" ] || [ $2 == "0" ] || [ $2 == "0" ] || [ $2 == "0" ] || [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] || [ $2 == "0" ]|| [ $2 == "0" ] >> /media/AUD-VID/log/cskip$n.log 2>&1

then >> /media/AUD-VID/log/cskip$n.log 2>&1

rm -f "$mp3File" >> /media/AUD-VID/log/cskip$n.log 2>&1

ffmpeg -i "$origFile" -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 "$mp3File" >> /media/AUD-VID/log/cskip$n.log 2>&1
mp3gain -d30 -p "$mp3File"

rm -f "$origFile" >> /media/AUD-VID/log/cskip$n.log 2>&1

exit 0 >> /media/AUD-VID/log/cskip$n.log 2>&1

else >> /media/AUD-VID/log/cskip$n.log 2>&1

echo .mp4 löschen wenn vorhanden >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$encodeFile" >> /media/AUD-VID/log/cskip$n.log 2>&1

echo 111 >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Encode file to H.264 with mp4 container using ffmpeg and mux in CC srt >> /media/AUD-VID/log/cskip$n.log 2>&1
/usr/bin/ffmpeg -i "$origFile" -c:v h264 -b:v 2000k -c:a copy "$encodeFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
#ffmpeg -i $origFile -vcodec copy -acodec copy -f matroska $encodeFile

echo 222 >> /media/AUD-VID/log/cskip$n.log 2>&1

x=1 >> /media/AUD-VID/log/cskip$n.log 2>&1
while [ -f  /media/AUD-VID/ini/cskip$x.ini ] >> /media/AUD-VID/log/cskip$n.log 2>&1
do >> /media/AUD-VID/log/cskip$n.log 2>&1
let "x=x+1" >> /media/AUD-VID/log/cskip$n.log 2>&1
done >> /media/AUD-VID/log/cskip$n.log 2>&1

echo 333 >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Mark and cut commercials >> /media/AUD-VID/log/cskip$n.log 2>&1
comcut --comskip-ini=/media/AUD-VID/ini/cskip$x.ini --comskip=/usr/local/bin/comskip "$encodeFile" "$newFile" >> /media/AUD-VID/log/cskip$n.log 2>&1

rm -f /media/AUD-VID/ini/cskip$x.ini  >> /media/AUD-VID/log/cskip$n.log 2>&1
echo /media/AUD-VID/ini/cskip$x.ini Delete  >> /media/AUD-VID/log/cskip$n.log 2>&1

echo If yes or no Comercials >> /media/AUD-VID/log/cskip$n.log 2>&1

if [ -f "$newFile" ] >> /media/AUD-VID/log/cskip$n.log 2>&1
then >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Comercials where found >> /media/AUD-VID/log/cskip$n.log 2>&1

else >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Comercials where not found >> /media/AUD-VID/log/cskip$n.log 2>&1
mv  "$encodeFile" "$newFile" >> /media/AUD-VID/log/cskip$n.log 2>&1
fi >> /media/AUD-VID/log/cskip$n.log 2>&1

echo If CUTED file Exists >> /media/AUD-VID/log/cskip$n.log 2>&1
if [ -f "$newFile" ] >> /media/AUD-VID/log/cskip$n.log 2>&1
then >> /media/AUD-VID/log/cskip$n.log 2>&1

echo Remerge Files >> /media/AUD-VID/log/cskip$n.log 2>&1

rm -f "$outFile"mp4"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"mp4"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"ts"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"ts"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"eld"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"eld"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"txt"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"txt"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"log"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"log"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"csv"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"csv"" >> /media/AUD-VID/log/cskip$n.log 2>&1
rm -f "$outFile"logo.txt"" >> /media/AUD-VID/log/cskip$n.log 2>&1
echo "$outFile"logo.txt"" >> /media/AUD-VID/log/cskip$n.log 2>&1

fi >> /media/AUD-VID/log/cskip$n.log 2>&1
fi
exit 0 >> /media/AUD-VID/log/cskip$n.log 2>&1
cskiplogNR.sh (7.9 KiB)
Download cskiplogNR.sh

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6450

Ich empfehle dir mal diesen Thread: Alle Ausgaben in Logdatei umleiten 😉

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

wiso das????

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

Noch ne frage,

wie platziere ich mein Script am besten das es von anderen gefunden wird???

Gruß

Johannes

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6450

rumpl-x schrieb:

suche eine Möglichkeit zu erkenne ob ein Video ein Bild hat oder nicht und das mit einem TRUE oder FALSE zur Weiterverarbeitung in der Bash.

Mit ffmpeg prüfen, welche Bitrate die Videospur hat, und bei Unterschreitung eines gewissen Werts TRUE oder FALSE setzen.

Wie kommt man da ran?!

1
ffmpeg -i film.mp4 2>&1 | grep Stream | grep Video | sed 's/,/\n/g' | grep kb/s | tr -d ' ' | tr -d 'kb/s'

Das geht aber bestimmt eleganter 😉

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6450

rumpl-x schrieb:

wie platziere ich mein Script am besten das es von anderen gefunden wird???

Youtube?! 😀 Diese Frage ist Kontext-abhängig 😉

Standardtechnisch packst du das in /usr/local/bin/ rein.

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

Mit ffmpeg prüfen, welche Bitrate die Videospur hat, und bei Unterschreitung eines gewissen Werts TRUE oder FALSE setzen. Wie kommt man da ran?!

das ist die frage???

ffmpeg -i film.mp4 2>&1 | grep Stream | grep Video | sed 's/,/\n/g' | grep kb/s | tr -d ' ' | tr -d 'kb/s'

ich verstehe die Ausgabe nicht ganz wo ist da true und false oder 1 und 0 und was bedeuten die ganzen Anweisungen.

sorry.

und ist den die Bittrate vom angezeigten Inhalt abhängig???

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

Youtube?! 😀 Diese Frage ist Kontext-abhängig 😉

ich meinte natürlich in Foren oder so also im Internet.

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

1
ffmpeg -i film.mp4 2>&1 | grep Stream | grep Video | sed 's/,/\n/g' | grep kb/s | tr -d ' ' | tr -d 'kb/s'

könntest du mir das eklären???

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

bbbbiiiittteeee!!!!

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Was genau davon verstehst du nach dem Studium der Dokumentation der beteiligten Programme noch nicht?

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

sorry, aber ich weis nicht mal wo ich da ansetzen soll, ich will keine Doktorarbeit schreiben.

hab das Programm mal testweise laufen lassen und ich bekomme nicht mal ne Ausgabe.

ich weis das ffmpeg -i ein File konvertieren bzw analysieren kann.

mit grep kann man ausgaben filter.

tr löscht die angegebenen Strings.

aber bei sed weis ich nicht mehr weiter.

gruß

johannes

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

1
sed 's/,/\n/g'

das ist doch nur kryptisch!!!

pepre Team-Icon

Supporter
Avatar von pepre

Anmeldungsdatum:
31. Oktober 2005

Beiträge: 6450

rumpl-x schrieb:

sed 's/,/\n/g'

Ersetze jedes Komma durch ein neue Zeile.

1
2
3
4
# natürlich film.mp4 ersetzen
RATE=$(ffmpeg -i film.mp4 2>&1 | grep Stream | grep Video | sed 's/,/\n/g' | grep kb/s | tr -d ' ' | tr -d 'kb/s')
if [ $RATE -gt 250 ] ; then RESULT=TRUE
else RESULT=FALSE

So zB.

rumpl-x

(Themenstarter)

Anmeldungsdatum:
14. Mai 2018

Beiträge: 270

das programm schmeisst keine ausgabe raus!!!

gruß

johannes