FFMPEG、H264 编码:如果帧大小超过级别限制,是否会导致视频编码失败?

问题描述

我想用 h264 编码重新编码一个 mp4 文件。 运行以下命令:

ffmpeg -i input.mp4 -f mp4 -vcodec h264 -profile:v baseline -level 3.0 -pix_fmt yuv420p -color_range 2 -vf scale=1080:1920 -acodec aac -async 1 output.mp4

进程失败,提示 Video encoding Failed. ffmpeg 给出的错误信息:

[h264 @ 0x7a467000] Reinit context to 640x1152,pix_fmt: yuv420p\n
Input #0,mov,mp4,m4a,3gp,3g2,mj2,from 'input.mp4':\n 
 Metadata:\n 
 major_brand     : mp42\n 
   minor_version   : 0\n 
   compatible_brands: mp42mp41iso4\n   
   creation_time   : 2020-07-26T20:32:55.000000Z\n 
   Duration: 00:00:36.20,start: 0.000000,bitrate: 938 kb/s\n 
   Stream #0:0(und): Video: h264,1 reference frame (avc1 / 0x31637661),yuv420p(left),640x1138 (640x1152),935 kb/s,30 fps,30 tbr,15360 tbn,60 tbc (default)\n 
   Metadata:\n     
   creation_time   : 2020-07-26T20:32:55.000000Z\n    
   handler_name    : Vireo Eyes v2.5.3\n   
   encoder         : AVC Coding\n
   Matched encoder 'libx264' for codec 'h264'.\n
   Stream mapping:\n  
   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))\nPress [q] to stop,[?] for help\n
   [Parsed_scale_0 @ 0x80be6220] w:1080 h:1920 flags:'bicubic' interl:0\n
   [graph 0 input from stream 0:0 @ 0x80be6280] w:640 h:1138 pixfmt:yuv420p tb:1/15360 fr:30/1 sar:0/1\n
   [graph 0 input from stream 0:0 @ 0x80be6280] sws_param option is deprecated and ignored\n[Parsed_scale_0 @ 0x80be6220] w:640 h:1138 fmt:yuv420p sar:0/1 -> w:1080 h:1920 fmt:yuv420p sar:0/1 flags:0x4\n
   [libx264 @ 0x7a1d4000] frame MB size (68x120) > level limit (1620)\n
   [libx264 @ 0x7a1d4000] DPB size (1 frames,8160 mbs) > level limit (0 frames,8100 mbs)\n
   [libx264 @ 0x7a1d4000] MB rate (244800) > level limit (40500)\n[libx264 @ 0x7a1d4000] using cpu capabilities: ARMv6 NEON\n
   [libx264 @ 0x7a1d4000] profile Constrained Baseline,level 3.0,4:2:0,8-bit\n[libx264 @ 0x7a1d4000] 264 - core 160 - H.264/MPEG-4 AVC codec - copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00\n
   Output #0,to 'output.mp4':\n 
   Metadata:\n 
   major_brand     : mp42\n   
   minor_version   : 0\n 
   compatible_brands: mp42mp41iso4\n   
   encoder         : Lavf58.48.100\n   
   Stream #0:0(und): Video: h264 (libx264),yuv420p(pc,left),1080x1920,q=-1--1,30 tbc (default)\n
   Metadata:\n   
   creation_time   : 2020-07-26T20:32:55.000000Z\n    
   handler_name    : Vireo Eyes v2.5.3\n  
   encoder         : Lavc58.96.100 libx264\n    
   Side data:\n 
   cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A\n
   frame=    3 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=    7 fps=6.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   11 fps=6.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   15 fps=6.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   19 fps=6.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   23 fps=6.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   26 fps=6.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   30 fps=6.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   frame=   33 fps=6.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    \n
   Video encoding Failed\n[AVIOContext @ 0x7a42cd80] Statistics: 0 seeks,1 writeouts\n
   [AVIOContext @ 0x7a42ccc0] Statistics: 229376 bytes read,0 seeks\nConversion Failed!\n\n\n\n\n

我试图找出失败的原因。我从 frame MB size (68x120) > level limit (1620) 行的错误消息猜测,帧大小超过 h264 级别限制可能是问题所在。

是这个问题吗?如果是,那么解决方案是什么?如果不是,出了什么问题?

有人可以帮忙吗?谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)