问题描述
我有一些 .mp4 视频,ffmpeg 向我展示了这个信息:
Duration: 00:00:07.02,start: 0.000000,bitrate: 18001 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),yuvj420p(pc,bt709/bt709/iec61966-2-1,progressive),886x1920,14299 kb/s,22.54 fps,60 tbr,600 tbn,1200 tbc (default)
Metadata:
rotate : 270
creation_time : 2021-04-30T13:56:51.000000Z
handler_name : Core Media Video
encoder : 'avc1'
Side data:
displaymatrix: rotation of 90.00 degrees
据我所知应该是 7.02 秒 * 22.54 fps ~ 158 帧
当我尝试在 opencv 中读取它时:
def print_info_cap_reading(video_filepath):
cap = cv2.VideoCapture(video_filepath)
fps = cap.get(cv2.CAP_PROP_FPS)
n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
print('fps:',round(fps,2))
print('n_frames',n_frames)
counter = 0
while True:
ret,frame = cap.read()
if ret == False:
break
counter += 1
print('counter:',counter)
它显示给我
# fps: 22.54
# n_frames 199
# counter: 175
当我尝试通过 ffmpeg 将其转换为单独的帧时,它会生成 422 帧:
ffmpeg -i source1.mp4 tmp/img%03d.jpg
所以我想知道:
更新:
-ignore_editlist 1
没有帮助,ffmpeg 仍然产生 422 帧:
ffmpeg -i source1.mp4 tmp1/img%03d.jpg
ffmpeg -i source1.mp4 -ignore_editlist 1 tmp2/img%03d.jpg
这是一些 ffmpeg 输出:
Output #0,image2,to 'tmp1/img%03d.jpg':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
com.apple.quicktime.author: ReplayKitRecording
encoder : Lavf58.45.100
Stream #0:0(und): Video: mjpeg,yuvj420p(pc),1920x886,q=2-31,200 kb/s,60 fps,60 tbn,60 tbc (default)
Metadata:
encoder : Lavc58.91.100 mjpeg
creation_time : 2021-04-30T13:56:51.000000Z
handler_name : Core Media Video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
displaymatrix: rotation of -0.00 degrees
frame= 422 fps=224 q=24.8 Lsize=N/A time=00:00:07.03 bitrate=N/A dup=247 drop=0 speed=3.74x
video:13709kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unkNown
更新:
mkdir tmp3 && ffmpeg -ignore_editlist 1 -i source1.mp4 tmp3/img%03d.jpg
产生更多帧 - 529。
Output #0,to 'tmp3/img%03d.jpg':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
com.apple.quicktime.author: ReplayKitRecording
encoder : Lavf58.45.100
Stream #0:0(und): Video: mjpeg,60 tbc (default)
Metadata:
encoder : Lavc58.91.100 mjpeg
creation_time : 2021-04-30T13:56:51.000000Z
handler_name : Core Media Video
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
displaymatrix: rotation of -0.00 degrees
frame= 529 fps=221 q=24.8 Lsize=N/A time=00:00:08.81 bitrate=N/A dup=330 drop=0 speed=3.68x
video:16178kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unkNown
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)