2016-04-12 5 views
0

Ich abonniere einen Eingabestream von tvheadend mit ffmpeg und schreibe diesen Stream kontinuierlich auf die Festplatte. Ich möchte diesen Ausgabestrom begrenzen, so dass zu jeder Zeit maximal 10 Megabyte Daten gespeichert werden.So begrenzen Sie die Ausgabedateigröße des ffmpeg-Eingabestreams auf 10 Megabyte

Ich habe bereits in Schwamm von moreutils und den Linux-Puffer-Befehl untersucht, um eine Art von Rohr zu bauen. Allerdings konnte ich noch keine funktionierende Lösung finden. Wer kann mich in die richtige Richtung weisen?

Antwort

2

Sie brauchen nur -fs Schlüssel. Sie legt das Ausgabedateigrößenlimit in Byte fest.

Sie können ffmpeg -i input -fs 10M -c copy output eingeben, wobei input Ihre Eingangsadresse ist, output - Dateiname, den Ihre Datei haben soll. M gibt an, dass die Größe in Megabyte angegeben werden soll (auch k für Kilobytes ist zulässig).


Für das Überschreiben Sie eine kleine sript wie diese

#!/bin/bash 

t=1 
while : 
do 
ffmpeg -i input -fs 10M -c copy output$t 
t=`expr $t + 1` 
done 

Ich denke, können diese eleganter ist als nur ffmpeg, alles zu tun versucht, verwenden.

+0

danke. Die Option -fs stoppt ffmpeg. Ich möchte das Segment kontinuierlich überschreiben. Ich denke, ich habe eine gute Lösung gefunden, die ziemlich nah an dem ist, was ich brauche. -f ssegment -segment_time 60 -segment_wrap 2 tmp/out% 03d.ts – Jabb

+0

Bitte sehen Sie die Bearbeitung, die ich gemacht habe: Es gibt ein kleines Skript, das Ihnen helfen kann. – Ngoral

+0

Danke. Ich stimme jedoch nicht zu. Es ist eleganter, eine native ffmpeg-Funktion zu verwenden, statt etw zu implementieren. extern. Aber da Ihre Lösung genauer ist, werde ich es als eine Antwort akzeptieren. – Jabb

Verwandte Themen