Ausgabe von FFmpeg prüfen

FatManStanding

Lieutenant
Registriert
Aug. 2021
Beiträge
679
tach,

vor ein paar monaten ist mir beim zurückspielen eines backups aufgefallen, dass ein paar mediadateien defekt sind. die wiedergabedauer wurde im player meist korrekt dargestellt, irgendwann gegen ende der wiedergabe kam es zu "squetschen". ich konnte alle dateien auslesen mit diesem ffmpeg-aufruf:

Code:
ffmpeg -v error -i input -f null -vn -err_detect explode - 2>> text.txt

hier wird eine sehr lange ausgabe in die textdatei geschrtieben, wenn ein fehler auftritt. tritt kein fehler auf, ist die datei leer. ich nutze in thunar (xfce) kontext-menüs und würde den aufruf da gern einbauen. es soll nur im falle eines fehlers eine text-datei erstellt werden. ich kann aber bei ffmpeg nicht wie bei anderen programmen einfach eine variable erstellen und prüfen:

Code:
var=$(ffmpeg -was -auch -immer)

und dann $var prüfen. $var ist immer leer. nur die ausgabe mit in eine textdatei fehtl bei ffmpeg (scheint eine eigenart des programmes zu sein). mir fällt zunächst nur ein eine textdatei nach /tmp zu schrieben und diese zu prüfen. geht das auch anders? muss man bei ffmpeg anders vorgehen? irgendwas scheint hier generell anders zu laufen.
 
Ich kenne thunar nicht, aber bau dir doch ein Shell-Script und rufe dieses in thunar auf?
 
FatManStanding schrieb:
$var ist immer leer

Wenn du output auf stderr erwartest, musst du das in deinem shell script auch berücksichtigen. Das hat eigentlich nichts mit ffmpeg zu tun.

Siehe: https://www.gnu.org/software/bash/manual/bash.html#Command-Substitution

Bash performs the expansion by executing command in a subshell environment and replacing the command substitution with the standard output of the command, with any trailing newlines deleted.

Du musst also stderr auf stdout umleiten:
Bash:
var=$(ffmpeg -was -auch -immer 2>&1)
 
Zuletzt bearbeitet: (Erklärung)
  • Gefällt mir
Reaktionen: netzgestaltung und jb_alvarado
Zurück
Oben