Konvertieren von RAW Blackmagic Intensity Card-Rahmen

804
Collin Price

Ich versuche, rohe Videoframes, die ich mit einer Blackmagic Design Intensity-Karte aufgenommen habe, zu konvertieren. Die Ausgabe-Frames haben das Format:

YCbCr 4:2:2 packed 8 Bit UYVY Abekas 

Wie kann ich dieses in ein besser nutzbares Format konvertieren? Mein Ziel ist es, Frames als Bilder und Frames als Videos zu extrahieren.

Ich habe versucht, FFmpeg zu verwenden, um die Dateien zu konvertieren, aber ich kann das richtige Format nicht finden. Das von mir verwendete Beispiel ist eine Datei, die die Rohdaten eines einzelnen Frames enthält. FFmpeg konvertiert die Datei, ist aber verzerrt. Ich weiß, dass mein Pixelformat falsch ist. Ich fange an zu glauben, dass FFmpeg das benötigte Pixelformat nicht unterstützt.

ffmpeg -s 720x486 -i snapshot.yuv snapshot.jpg 

Die Ausgabe erscheint fast korrekt, ist aber meistens grün.

Hier ist die Ausgabe von FFmpeg. Das Rohvideoformat hat erkannt, dass es falsch ist. Es sollte Y422 anstelle von I420 sein.

ffmpeg version N-64009-g389d453 Copyright (c) 2000-2014 the FFmpeg developers built on Jun 16 2014 15:43:30 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) configuration:  libavutil 52. 89.100 / 52. 89.100 libavcodec 55. 67.100 / 55. 67.100 libavformat 55. 43.100 / 55. 43.100 libavdevice 55. 13.101 / 55. 13.101 libavfilter 4. 8.100 / 4. 8.100 libswscale 2. 6.100 / 2. 6.100 libswresample 0. 19.100 / 0. 19.100 [rawvideo @ 0x2af1c20] Estimating duration from bitrate, this may be inaccurate Input #0, rawvideo, from 'snapshot.yuv': Duration: 00:00:00.04, start: 0.000000, bitrate: 139968 kb/s Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x486, 104976 kb/s, 25 tbr, 25 tbn, 25 tbc [swscaler @ 0x2ae13e0] deprecated pixel format used, make sure you did set range correctly Output #0, image2, to 'snapshot.jpg': Metadata: encoder : Lavf55.43.100 Stream #0:0: Video: mjpeg, yuvj420p, 720x486, q=2-31, 200 kb/s, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc55.67.100 mjpeg Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (mjpeg)) Press [q] to stop, [?] for help [swscaler @ 0x2ae13e0] Warning: data is not aligned! This can lead to a speedloss [rawvideo @ 0x2af2ec0] Invalid buffer size, packet size 174960 < expected frame_size 524880 Error while decoding stream #0:0: Invalid argument frame= 1 fps=0.0 q=7.0 Lsize=N/A time=00:00:00.04 bitrate=N/A  video:140kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown 
1
Wenn ffmpeg dies nicht unterstützt, können Sie mit einem Beispielbild und der aktuellen Ausgabe von ffmpeg einen Fehlerbericht (http://ffmpeg.org/bugreports.html) übermitteln. Möglicherweise kann ein Entwickler eine Analysefunktion hinzufügen. slhck vor 9 Jahren 0
Sie können ffmpeg zwingen, ein bestimmtes Format zu lesen, indem Sie `ffmpeg -f rawvideo -pix_fmt sagen -s -i input.yuv ... `, wobei das Pixelformat eines der in` ffmpeg -pix_fmts` aufgelisteten ist slhck vor 9 Jahren 0

0 Antworten auf die Frage