ffmpeg视频转码压缩

视频文件如何压缩减少大小呢?

其中,可以通过视频转码来实现,将视频文件从H.264编码转换为H.265(HEVC)

1.python ffmpeg视频转码


import subprocess
import os

from filemgr import FileMgr


class FfmpegManager(object):

SOURCE_FILE_PATH = "python_fps/high/"
DEST_FILE_PATH = "python_fps/high_ffmpeg/"
CODEC_DEST_FILE_PATH = "python_fps/high_codec/"

def __init__(self):
self.fps = 20
self.fps_list = FileMgr.all_video_files(FfmpegManager.SOURCE_FILE_PATH)


def start_codec_compressed(self):

if len(self.fps_list) == 0:
return

for file_path in self.fps_list:
file_name = os.path.basename(file_path)
dest_file_path = FfmpegManager.CODEC_DEST_FILE_PATH + file_name

subprocess.run(["ffmpeg", "-i", file_path, "-c:v", "libx265", "-preset", "medium", "-x265-params", "crf=28", dest_file_path], check=True)

视频转码参数说明

我们使用 subprocess 模块来调用FFmpeg命令将视频文件从H.264编码转换为 H.265(HEVC)编码。

  • -i 参数指定输入文件,

  • -c:v 参数指定输出视频的编解码器为 H.265(HEVC),

  • -preset 参数指定编码速度和质量的平衡点(可选参数包括 ultrafast、superfast、veryfast、faster、fast、medium、slow、slower 和 veryslow),

  • -x265-params 参数是 H.265 编码器的附加参数。在这里,我们设置 -x265-params crf=28,以设置恒定质量模式(CQP)下的视频质量,

  • 28 是质量的值,可供自己选择。输出文件将保存在指定的输出路径中。

请注意,视频文件的大小和质量受多种因素影响,包括分辨率、比特率、FPS 等。在使用 H.265 编码器进行编码转换时,请根据你的需求进行设置。

2.视频转码后文件压缩效果

main.py文件中统计目录下文件大小

folder_path = 'python_fps/high'
fps_high_file_size = FileMgr.get_directory_size(folder_path)
print(f"python_fps/high 目录下所有文件大小:{fps_high_file_size}, 共{fps_high_file_size/(1024.0 *1024.0 * 1024.0)}G")

folder_path = 'python_fps/high_codec'
fps_high_codec_file_size = FileMgr.get_directory_size(folder_path)
print(f"python_fps/high_codec目录下所有文件大小:{fps_high_codec_file_size},共{fps_high_codec_file_size/(1024.0 * 1024.0 * 1024.0)}G")

result = '%.2f' % ((fps_high_file_size - fps_high_codec_file_size) * 100.0 / fps_high_file_size)
print(f"---所有视频文件采用H264转H265压缩方式的压缩率 = {result}%")

H264转H265视频文件压缩效果

python_fps/high 目录下所有文件大小:4367638719, 共4.0676805367693305G
python_fps/high_codec目录下所有文件大小:1686972766,共1.5711158197373152G
---所有视频文件采用H264转H265压缩方式的压缩率 = 61.38%


原文始发于微信公众号(ksnowlv):ffmpeg视频转码压缩

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/254643.html

(0)
Java朝阳的头像Java朝阳

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!