Ich verwende ffmpeg und ffplay, um ein H.264-Raw-Video zwischen zwei Computern zu streamen. So sieht die übertragende Befehlszeile aus:
ffmpeg -i input.h264 -f mpegts udp:10.0.2.101:1234
Und das ist die Empfangsseite:
ffplay -f h264 -f mpegts udp://127.0.0.1:1234
Das Problem besteht darin, dass die Wiedergabe auf der Empfangsseite eine viel schlechtere Qualität aufweist als die, die ich beim Abspielen der Quelldatei auf der Senderseite sehe. Das Netzwerk ist tatsächlich ein simuliertes Netzwerk auf meinem Computer (zwei virtuelle Maschinen), sodass es keinen Paketverlust oder ähnliches gibt.
Was habe ich falsch gemacht?
Antwort1
Sie kodieren den Videostream neu. Beachten Sie, dass ffmpeg einen Videocodec für Sie auswählt, wenn Sie keinen angeben – in Ihrem Fall MPEG-2 mit seinen Standardeinstellungen, was in der Tat ziemlich schlecht aussehen wird.
Wenn Sie den Bitstrom kopieren möchten, fügen Sie die -c:v copy
Option Ihrem Sendebefehl hinzu.