我正在尝试使用ffmpeg压缩视频并使用以下命令 . ffmpeg -i data / video.mp4 -vcodec h264 -acodec mp2 data / output.mp4
但是,结果视频的大小超过原始视频的大小 . 有人可以指出为什么会发生这种情况,以及是否还有其他命令我应该使用 .
为了减小文件大小,您应该选择较低的比特率 .
您正在使用的ffmpeg参数使用h264和mp2的默认ffmpeg压缩参数 .默认参数配置为相对高质量和大文件大小 .您可以控制平均比特率,恒定比特率,最大比特率和其他参数 .请参阅ffmpeg文档:https://trac.ffmpeg.org/wiki/Encode/H.264#AdditionalInformationTips
您获得更大文件大小的原因是输入文件已经被压缩 .如果原始视频是未压缩的原始视频,则压缩文件大小将远小于原始大小 .您正在执行名为“transcoding”的流程 .转码过程(通常)将输入解码为未压缩格式,并使用不同(或相同)codec重新压缩它 .
检查输入视频的比特率信息:见How to get h264 video info?
ffprobe -show_streams -i "data/video.mp4"
尝试降低比特率:
ffmpeg -i data/video.mp4 -vcodec h264 -b:v 1000k -acodec mp2 data/output.mp4
您也可以尝试使用h265视频编解码器进行编码,这样可以在较低的比特率下保持更高的质量 .
考虑以下:
较低的比特率(通常)会降低质量 .
视频转码的结果质量低于直接压缩原始视频的质量 .
1 回答
为了减小文件大小,您应该选择较低的比特率 .
您正在使用的ffmpeg参数使用h264和mp2的默认ffmpeg压缩参数 .
默认参数配置为相对高质量和大文件大小 .
您可以控制平均比特率,恒定比特率,最大比特率和其他参数 .
请参阅ffmpeg文档:https://trac.ffmpeg.org/wiki/Encode/H.264#AdditionalInformationTips
您获得更大文件大小的原因是输入文件已经被压缩 .
如果原始视频是未压缩的原始视频,则压缩文件大小将远小于原始大小 .
您正在执行名为“transcoding”的流程 .
转码过程(通常)将输入解码为未压缩格式,并使用不同(或相同)codec重新压缩它 .
检查输入视频的比特率信息:
见How to get h264 video info?
尝试降低比特率:
您也可以尝试使用h265视频编解码器进行编码,这样可以在较低的比特率下保持更高的质量 .
考虑以下:
较低的比特率(通常)会降低质量 .
视频转码的结果质量低于直接压缩原始视频的质量 .