Puncte:0

Argumentele de la scriptul bash la ffprobe nu au fost interpretate corect

drapel pk

Am următoarea funcție într-un script bash. Când îl execut, primesc întotdeauna un șir returnat de la comanda ffprobe care conține o eroare sub forma:

Argumentul „-” a fost furnizat ca nume de fișier de intrare, dar „/media/Testing/Sorted/badfile.mp4” a fost deja specificat.

Am încercat să mut argumentele în ffprobe în interiorul ghilimelelor pentru numele fișierului (nu rezolvă problema). Am încercat să mut argumentele într-o matrice și să trec „${array[@]}” (nu rezolvă problema). Evident, îmi scapa ceva orbitor de evident aici.Unde gresesc?

# ProcessVideo
#
# Preia un nume de fișier de intrare (probabil pentru un fișier video, dar funcția nu
# încearcă de fapt să verifice asta) și îl predă lui ffprobe pentru a face ceva de bază 
# procesarea fluxului video. Am stabilit un steag, astfel încât orice eroare întâlnită să fie
# determină închiderea ffmpeg cu un cod de eroare setat. Dacă ffmpeg setează un cod de eroare, noi
# înregistrează numele fișierului într-un fișier.
#
# ProcessVideo <calea către videoclip>

ProcessVideo()
{
    local vfn=$1
    ec local=0
    oput local
    echo „Se verifică videoclipul $vfn”
    oput=$(ffprobe -avertizare la nivel de log „$vfn” - 2>&1)
    ec=$?
# dacă (( ec > 0 ))
#   atunci
# echo "Eroare de ieșire $ec $vfn"
# LogErr „Eroare de ieșire $ec $vfn”
# fi
# if [[ "$oput" == *"moov atom"* ]]
    dacă [[ -n "$oput" ]]
    atunci
        echo „Șir de eroare $vfn”
        LogErr „Șir de eroare $vfn”
        LogErr „$oput”
    fi
}

Rețineți că LogErr din scriptul de mai sus este o altă funcție - tot ceea ce face este să ia șirul transmis și să îl scrie într-un fișier jurnal specificat. Dacă cineva crede că este relevant pentru problemă, o voi posta, dar nu cred că este.

drapel hr
Sunteți sigur că problema este legată de argumentele *trese* funcției - nu de `-` hardcoded pe care îl aveți în `$(ffprobe -loglevel warning "$vfn" - 2>&1)`?
Cyrus avatar
drapel cn
Ar trebui ffprobe să citească din „$vfn” sau din stdin?
Tracy avatar
drapel pk
Vă mulțumesc amândoi pentru că ați semnalat eroarea - mă concentram pe „-” greșit. Aceasta este ceea ce primesc pentru adaptarea unui script la un scop diferit, fără a rescrie complet secțiunile relevante.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.