Estou tentando converter quadros de vídeo brutos que capturei usando uma placa Blackmagic Design Intensity. Os quadros de saída são do formato:
YCbCr 4:2:2 packed 8 Bit UYVY Abekas
Como posso converter isso para um formato mais utilizável? Meus objetivos são extrair quadros como imagens e conjuntos de quadros como vídeos.
Eu tentei usar o FFmpeg para converter os arquivos, mas não consigo encontrar o formato correto. O exemplo que estou usando é um arquivo contendo os dados brutos de um único quadro. O FFmpeg converte o arquivo, mas ele está distorcido, então eu sei que isso significa que meu formato de pixel está incorreto. Eu estou começando a pensar que o FFmpeg não suporta o formato de pixel que eu preciso.
ffmpeg -s 720x486 -i snapshot.yuv snapshot.jpg
A saída sai quase correta, mas é principalmente verde.
Aqui está a saída do FFmpeg. O formato rawvideo é detectado está incorreto. Deve ser Y422 em vez de I420.
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
Tags video ffmpeg conversion libav yuv