The Debian User Group in Vienna

Text archives Help


Re: [Debienna] output vom einen Befehl in den nächsten Befehl weiterreichen


Chronological Thread 
  • From: Karl Grill <kgrill AT chello.at>
  • To: debienna AT lists.debienna.at
  • Subject: Re: [Debienna] output vom einen Befehl in den nächsten Befehl weiterreichen
  • Date: Mon, 5 Jul 2021 05:50:24 +0200
  • Authentication-results: mail.cosmopool.net; dkim=pass reason="2048-bit key; insecure key" header.d=chello.at header.i=@chello.at header.b=n67m97UJ; dkim-adsp=pass; dkim-atps=neutral

Hallo,

ich würde für so etwas named pipes verwenden, etwa

mknod -p Tempfile.mkv

ffmpeg -i Top_Gun_1986.mkv -map_chapters -1 TempFile.mkv |mkvmerge -o TopGun.mkv --generate-chapters interval:360s TempFile.mkv

LG

Karl

On 7/4/21 10:49 PM, David Schmitt wrote:


On Sun, 4 Jul 2021 at 21:04, Adi Marvillo <adi5 AT gmx.at> wrote:
Hallo alle!
ich merke gerade, dass es doch einiges an Vorwissen braucht um den
output des ersten Befehls an den zweiten Befehl weiterzugeben. Hier die
zwei befehle, die ich zusammenhängen möchte
1) ffmpeg -i Top_Gun_1986.mkv -map_chapters -1 TempFile.mkv
2)| mkvmerge -o TopGun.mkv --generate-chapters interval:360s TempFile.mkv
Der Output aus 1), der ins TempFile geschrieben wird, soll gleich an den
mkvmerge-Befehl in 2) weitergeleitet werden. Evtl weiß jemand von euch
wie man das macht oder kann mir ein paar Tips geben, was ich
recherchieren muss, um zu verstehen was hier passiert oder warum
folgender Befehl nicht geht?
>>> ffmpeg -i Top_Gun_1986.mkv -map_chapters -1 | mkvmerge -o TopGun.mkv
--generate-chapters interval:360s

das weiterreichen von output durch pipes | passiert nur wenn der erste befehl auf stdout schreibt und der zweite befehl von stdin liest. stdout und stdin werden von einigen Befehlen automatisch verwendet (zB grep) andere brauchen das explizit angesagt. Zb diese Antwort zeigt wie man das ffmpeg erklärt: https://superuser.com/a/520952/2272 (verwendet das minus-zeichen (-) als output filename, eine übliche Konvention.)

die manpage von mkvmerge zeigt keine möglichkeiten das direkt auf der Kommandozeile zu machen - vermutlich weil die Autoren erwarten dass mehrere Dateien angegeben werden, was dann mit stdin keinen Sinn macht. In solchen fällen kann man /dev/stdin als dateiname angeben. Dabei muss man nur aufpassen, dass das Programm kein Eingaben abfragt, da könnte es durcheinanderkommen.

Viel Glück!

David

Danke und Lg Adi



Archive powered by MHonArc 2.6.18.

Top of page