使用ffmpeg压缩视频

这篇具有很好参考价值的文章主要介绍了使用ffmpeg压缩视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、到ffmpeg官网下载文件包:

Download FFmpeg

下载后找到 bin 下的3个exe文件,复制到自己本机的某个目录下, 如:

ffmpeg 压缩视频文件 代码,其它 - 其它技巧,ffmpeg,音视频

二、使用命令行压缩:

ffmpeg -i input.mp4 -c:v libx265 -crf 28 -y output.mp4

这条命令使用 FFmpeg 工具对输入视频文件 input.mp4 进行压缩,并将压缩后的视频保存为 output.mp4 文件。以下是对命令中各个参数的详细解释:

  • ffmpeg: FFmpeg 是一个开源的音视频处理工具,可以用于处理、转换和编辑音视频文件。
  • -i input.mp4: 指定要处理的输入视频文件为 input.mp4-i 是 FFmpeg 中用于指定输入文件的参数。
  • -c:v libx265: 指定视频编码器为 libx265,这表示使用 H.265/HEVC 编码器进行视频压缩。-c:v 是用于指定视频编码器的参数。
  • -crf 28: 指定视频的质量级别,数值越小表示质量越高,压缩率越低。在这里,-crf 28 表示使用 CRF(Constant Rate Factor)为 28 进行压缩,这是一个常用的视频质量控制参数。
  • -y: 在输出文件存在时自动覆盖。如果不加 -y 参数,在输出文件已存在时,FFmpeg 会提示是否覆盖输出文件。
  • output.mp4: 指定压缩后的视频文件名为 output.mp4

综合起来,这条命令的作用是将输入视频文件 input.mp4 使用 libx265 编码器进行压缩,质量级别为 28,并将压缩后的视频保存为 output.mp4 文件。执行该命令后,将生成一个经过压缩处理的输出视频文件。

请注意,压缩视频可能会导致视频质量的损失,但可以减小视频文件的大小。您可以根据需要调整 -crf 参数来平衡视频质量和文件大小。

三、使用FFmpeg对文件夹下的所有mp4文件进行批量压缩处理的powershell脚本:

如下ps脚本实现了对2个文件夹中的未压缩过的视频或者大于12MB的视频进行压缩。

视频每压缩一次,会小一点点,我这里的来源只是到2分钟内的视频,所以可以多次压缩。太大的视频就不要这样了,根据实际情况来吧。文章来源地址https://www.toymoban.com/news/detail-841150.html

function CompressVideosInFolder($folder) {
    $ffprobePath = "D:\Program\ffmpeg\ffprobe.exe"
    $ffmpegPath = "D:\Program\ffmpeg\ffmpeg.exe"

    Get-ChildItem -Path $folder -Filter *.mp4 | ForEach-Object {
        $filename = $_.Name
        $tempOutputPath = Join-Path $folder "temp_$filename"
        $codec = (& $ffprobePath -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 $_.FullName).Trim()
        $fileSize = $_.Length / 1MB  # 文件大小转换为MB

        Write-Host "Codec of file $filename is: $codec"
        Write-Host "File size of $filename is: $fileSize MB"

        if ($codec -ne "codec_name=hevc" -or $fileSize -gt 12) {
            Write-Host "File $filename needs compression..."
            Write-Host "Compressing file $filename..."
            & $ffmpegPath -i $_.FullName -c:v libx265 -crf 30 -y $tempOutputPath
            Move-Item -Path $tempOutputPath -Destination $_.FullName -Force
        } else {
            Write-Host "File $filename does not need compression, skipping..."
        }
    }
}

$folder1 = "E:\uploads\Video"
$folder2 = "E:\uploads\testVideo"

CompressVideosInFolder $folder1
CompressVideosInFolder $folder2

到了这里,关于使用ffmpeg压缩视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包