赞
踩
在FFmpeg中,可以使用以下命令跳帧或丢帧解码以降低CPU和内存占用:
有些逻辑是解码前丢弃,有些是解码后丢弃,解码后丢弃的基本不影响硬解的解码路数,这个需要注意
ffmpeg -skip_frame b -i input.mp4 output.mp4
ffmpeg -skip_loop_filter all -i input.mp4 output.mp4
ffmpeg -discard b -i input.mp4 output.mp4
使用 FFmpeg 的 -skip_frame 参数可以实现跳偶数帧或奇数帧的解码策略。具体调用命令如下:
跳偶数帧:
ffmpeg -i input.mp4 -vcodec copy -an -skip_frame mod2 -f rawvideo output.yuv
跳奇数帧:
ffmpeg -i input.mp4 -vcodec copy -an -skip_frame mod2+1 -f rawvideo output.yuv
其中,选项 -skip_frame mod2 表示跳过所有偶数帧,即只输出视频帧index为奇数的帧;选项 -skip_frame mod2+1 表示跳过所有奇数帧,即只输出视频帧index为偶数的帧。
使用 FFmpeg 的 -r 参数和 -ss 参数可以实现按时间间隔跳帧或丢帧的解码策略。具体调用命令如下:
按每秒 5 帧的间隔输出帧:
ffmpeg -i input.mp4 -vcodec copy -an -r 5 -f rawvideo output.yuv
按 2 秒的间隔输出帧:
ffmpeg -i input.mp4 -vcodec copy -an -vf fps=0.5 -f rawvideo output.yuv
其中,选项 -r 5 表示按每秒 5 帧的间隔输出帧;选项 -ss 2 表示跳过前 2 秒的视频帧;选项 -vf fps=0.5 表示按 2 秒的间隔输出帧。
需要注意的是,跳帧或丢帧解码可能会对视频质量产生一定的影响,因此需要根据实际情况进行权衡和测试。此外,这些命令也需要根据不同的视频格式和编解码器进行调整,以达到最佳的性能和效果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。