Извлечение кадров Yuv из MP4 видео с помощью ffmpeg - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы извлечь необработанные кадры 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

1 Ответ

0 голосов
/ 17 марта 2020

Да, выход составляет 10 б.п. c, как указано в этой строке:

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)

...