使用 ffmpeg 从 mp4 视频中提取 Yuv 帧

用户3720389

我想使用 ffmpeg 从 mp4 剪辑中提取原始 Yuv 帧。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
吉安

是的,输出为 10 bpc ,如这一行所述:

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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章