Select ffmpeg";选择";过滤器不适用于MPEG-4和-vcodec副本”;
我有一个MPEG-4视频,Select ffmpeg";选择";过滤器不适用于MPEG-4和-vcodec副本”;,select,ffmpeg,Select,Ffmpeg,我有一个MPEG-4视频,mediainfo描述如下: Format : MPEG-4 Format profile : Base Media Codec ID : isom Overall bit rate : 6 772 Kbps Writing applicat
mediainfo
描述如下:
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
Overall bit rate : 6 772 Kbps
Writing application : Lavf54.6.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Bit rate : 25.0 Mbps
Frame rate mode : Constant
Frame rate : 29.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.554
Stream size : 500 MiB (98%)
Writing library : x264 core 125
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / nalyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / 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=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=25000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
(我删除了一些无用的信息)
我想做的是从视频中删除第一个,比如说,200帧
但是,如果我尝试使用ffmpeg
(版本0.11.1,从源代码编译)
这不起作用,帧是完全一样的。如果我删除-vcodec copy
部分,发生的情况是前190帧都是相同的(等于第190帧);因此,它们没有被移除,而是被第190个替换
如果我尝试使用选择过滤器从视频中提取单个图像,请使用
ffmpeg -i video.mp4 -vf "select=gte(n\,200)" %d.jpg
它工作正常
有人知道为什么会这样吗
谢谢大家! 您不能同时使用-vcodec copy
和视频过滤器。如果要执行筛选,必须重新编码
如果要流式复制前200帧:
ffmpeg -i input -frames:v 200 -codec copy output.mkv
哦,对不起,我不知道!我需要删除前200帧。我试过使用ffmpeg-I video.mp4-vf“select=gte(n\,200)”-vcodec mpeg4-strict-2 out.mp4
,但仍然不起作用,我遇到了与-vcodec copy
@SimonePalazzo相同的问题,为什么不直接使用-ss
?本例将跳过前6秒:ffmpeg-i input-ss 6-c copy output.mkv
。它不是帧数,但可能足够接近您的目的。我可以,但我必须对多个视频执行此操作,具有不同的帧速率和要跳过的帧数,因此我必须获得帧速率并将帧数转换为秒数。我只是希望跳过这一切:)无论如何,你知道为什么上面的命令(在评论中)也不起作用吗?@SimonePalazzo你需要添加过滤器:“select=gte(n\,200),setpts=n/(30000/1001*TB)”
。但同样,这将重新编码视频,而使用-ss
则不会。
ffmpeg -i input -frames:v 200 -codec copy output.mkv