Я хотел бы извлечь необработанные кадры Yuv из клипа mp4 с помощью ffmpeg. ffmpeg -i input.mp4 сообщает, что формат видео - yuv420p10le. Я использую следующую команду для извлечения кадров:
ffmpeg -i input.mp4 -f сегмент -segment_time 0,01 кадра% 5d.yuv
Может кто-нибудь сказать мне, пожалуйста, если выходные данные еще 10 бит? Или мне нужно добавить пиксельный формат перед выводом, чтобы формат фрейма совпадал с форматом ввода?
Вот журнал ffmpeg:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'clip.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.29.100
Duration: 00:00:01.00, start: 0.000000, bitrate: 43566 kb/s
Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568),
yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3800x2100 [SAR 1:1 DAR
16:9], 43406 kb/s, 24 fps, 24 tbr, 1200k tbn, 24 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 44100 Hz, stereo,
fltp, 192 kb/s (default)
Metadata:
handler_name : SoundHandler
Side data:
audio service type: main
Stream mapping:
Stream #0:0 -> #0:0 (hevc (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[segment @ 0x7fb30e815400] Opening 'frames00000.yuv' for writing
Output #0, segment, to 'frames%5d.yuv':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.29.100
Stream #0:0(und): Video: rawvideo (Y3[11][10] / 0xA0B3359),
yuv420p10le, 3800x2100 [SAR 1:1 DAR 16:9], q=2-31, 2985984 kb/s, 24
fps, 24 tbn, 24 tbc (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc58.54.100 rawvideo
[segment @ 0x7fb30e815400] Opening 'frames00001.yuv' for writing
frame= 20 fps= 17 q=-0.0 Lsize=N/A time=00:00:01.04 bitrate=N/A
dup=2 drop=1 speed=0.712x
video:607500kB audio:0kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: unknown