Wie kann man in ffmpeg die SDL-Ausgabe für die Live-Ansicht in Echtzeit halten?

719
Thm Lee

Bei der alleinigen Verwendung in der ffmpeg-Befehlszeile bietet SDL eine hervorragende Live-View-Anzeige mit nahezu keiner Verzögerung des Videostreams außer dem Audiostream. so was.

ffmpeg -f dshow -video_size 1920x1080 -rtbufsize 2G -framerate 59.94 -i "Directshow A/V capture devices" -vcodec rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL OUT" 

Bei Verwendung mit anderen Ausgängen, dh bei mehreren Ausgängen, zeigte der SDL-Ausgang eine beträchtliche Verzögerung von bis zu 5 Sekunden oder mehr. Ich habe zum Beispiel versucht, den Eingangsvideostrom durch SDL und die Kodierungseingabe in Echtzeit anzuzeigen und als den unten stehenden ffmpeg-Befehlssatz zu speichern. Die Anzeige der SDL-Ausgabe wurde jedoch erheblich verzögert.

ffmpeg -f dshow -video_size 1920x1080 -rtbufsize 2G -framerate 59.94 -i "Directshow A/V capture devices" \ -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL OUT" \ -c:v h264_qsv -preset fast -profile:v high -b:v 7500k -trellis:v P -r 30 -g 60 -c:a aac -b:a 128k -strict experimental -y -f mpegts d:\test.ts 

Gibt es keine Möglichkeit, die Anzeige der SDL-Ausgabe in Echtzeit zu halten?

Wie kann ich das aufgenommene Video per SDL in Echtzeit überwachen und gleichzeitig kodieren und speichern? Danke im Voraus.

1

0 Antworten auf die Frage