我想使用 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] 删除。
我来说两句