Nichtübereinstimmung der Bildrate beim Konvertieren in RAW-Video

Ich versuche, ein H.264-Video mit dem folgenden Befehl in Rawvideo zu konvertieren:

ffmpeg -r 50 -i test.ts -c:v rawvideo -r 50 -pix_fmt yuv420p -filter_complex "[0:v] setpts=PTS-STARTPTS" -y test.yuv

Und hier wird erwartet, dass die Rohvideodatei 50 fps hat:

Output #0, rawvideo, to 'test.yuv':
  Metadata:
    encoder         : Lavf57.71.100
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 552960 kb/s, 50 fps, 50 tbn, 50 tbc
    Metadata:
      encoder         : Lavc57.89.100 rawvideo
frame=15599 fps=111 q=-0.0 Lsize=21058650kB time=00:05:11.98 bitrate=552960.0kbits/s speed=2.22x
video:21058650kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

Aber wenn ich die Datei mit ffmpeg überprüfe, wird sie mit 25 fps angezeigt und die Dauer ist doppelt so lang wie die ursprüngliche Dauer des Videos:

ffmpeg -s:v 1280x720 -i test.yuv

[rawvideo @ 0x55ad594ad840] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from 'test.yuv':
  Duration: 00:10:23.96, start: 0.000000, bitrate: 276480 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, 276480 kb/s, 25 tbr, 25 tbn, 25 tbc
At least one output file must be specified

Warum wird, wenn ich die Rohvideodatei mit ffmpeg überprüfe, die Bildrate mit 25 fps angegeben und die Dauer doppelt so lang wie die ursprüngliche Dauer?

Antworten (1)

Raw-Video ist genau das – ein Raw-Dump der Nutzdaten von Videoinhalten – es gibt keine Paketierung oder Metadaten.

Ausgabe an Y4M für ein Format mit Metadaten

ffmpeg -r 50 -i test.ts -pix_fmt yuv420p -vf "setpts=PTS-STARTPTS" -y test.y4m