Ok, ich glaube, ich habe eine Lösung gefunden. Bitte korrigieren Sie mich, wenn ich falsch liege.
Lösung
vlc screen:// :screen-fps=24 ... :sout="#transcode{...fps=24}...
Die Lösung besteht darin, in der Transcode-Option die gleichen fps wie in der: screen-fps-Option anzugeben.
Vollständiger Befehl (als Referenz):
vlc screen:// :screen-fps=24 :screen-follow-mouse :screen-mouse-image=cursor.png :input-slave=alsa://hw:1,0 :sout="#transcode,fps=24}:duplicate}"
Einzelheiten
Standardmäßig hat VLC:
- ein Eingang
500 000 µs
, - eine Ausgabe von
40 000 µs
.
Sie können es in der Konsole nach dem Befehl vlc sehen: Link zu image (imgur).
- Die
:screen-fps=24
Option bietet diestream_out_transcode stream out: input interval 41666 (base 1)
Option für VLC. - Die
fps=24
intranscode
Option bietet diestream_out_transcode stream out: output interval 41666 (base 1)
Möglichkeit, VLC.
Wenn ich Recht habe, zu erhalten 41666
von 24
fps (oder Hz), benötigen wir folgende Operation zu tun: 10^6 / 24 = 41666.66666... ~= 41666 µs
In meinem ursprünglichen Beitrag habe ich fps=24
die transcode
Option nicht definiert . Der Standardwert für das Ausgabeintervall war also 40 000
µs.
Wenn ich bedenke, dass mein Video 3600
lang ist, mache ich folgende Operation: 3600 * (1-40000/41666) = 143.9447
Sekunden.
Es ist> 2mn und entspricht dem beobachteten Delta.
Ergebnis mit korrekten Optionen: Link zum Bild (imgur).
Anmerkung
Obwohl es einen Parameter audio-sync
in der transcode
Option gibt, funktionierte es nicht wie erwartet. Nur das Hinzufügen von fps
Parametern hat den Trick bewirkt.
Verweise
Referenzen finden Sie hier: