首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >阅读3分 | ffmpeg无损转换mp4到webm可不可行?为你揭晓答案

阅读3分 | ffmpeg无损转换mp4到webm可不可行?为你揭晓答案

作者头像
程序员小助手
发布于 2020-06-10 04:04:09
发布于 2020-06-10 04:04:09
2K00
代码可运行
举报
文章被收录于专栏:程序员小助手程序员小助手
运行总次数:0
代码可运行

引言

webm 体积小质量高,想要把 mp4 视频文件转换过去,还要质量无损,使用 VP8/9编码,ffmpeg能实现吗?

学习时间

如果直接用下面这种方式写,转换的质量非常差。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i in.mp4 out.webm

我可以通过指定目标比特率,-b:v并通过设置恒定质量模式crf,即

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg -i in.mp4 -crf 10 -b:v 1M out.webm

这样可以提供更好的质量。但是,我必须每次都要先确认输入视频的比特率(此处为1M)。

当然,如果你把目标比特率,指定的值比输入的比特率大得多(例如-b:v 100M),则ffmpeg 仅使用 vp9 输入视频的比特率,或者使用了比 vp8 略高的比特率。

这样要做无损转换,似乎无解。

加上我们还要确定适当的 crf 值,想要做到自动的无损转换,好像真是没有办法了。

妙招

使用两遍“恒定质量”模式。代码像下面这样写:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg  -i input.mp4  -b:v 0  -crf 30  -pass 1  -an -f webm /dev/null
ffmpeg  -i input.mp4  -b:v 0  -crf 30  -pass 2  output.webm

将视频比特率设置为 0同时还指定 CRF,将启用恒定质量模式。对于VP9,CRF的范围可以从0(最佳质量)到63(最小文件大小)。

将视频比特率设置为 0 很重要。如果未指定视频比特率,则默认为较低值,这会导致使用“ 约束质量”模式,其中每一帧都有最大比特率。

尽管这对于流媒体很有用,但是对于画面变化过多的视频,画质体验就会差很多。

画质降低的另一个原因是webm(VP9)倾向于两次编码以获取最佳结果。第一遍编译有关视频的统计信息,然后在第二遍中使用该统计信息以制作更小和更高质量的视频

顺带一笔

说一下转码吧。一般而言,格式转码不是最佳实践,因为从一个编码格式,转换为另一种编码格式,不仅会添加有损视频编码中的正常错误,而且还会在格式尝试保留旧的内容。

如果无损,那么使用 -lossless 1 这个 FFmpeg 的 VP9 编码器的选项,在文件大小上有可能增大许多。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ffmpeg  -i input.mp4  -lossless 1  output.webm

我做了测试,对一个低质量的 mp4文件使用 -lossless 1选项,结果webm比原来大100倍,你说我能接受吗?

写在最后

从上面看,我们完全可以无损转换,但是牺牲是文件体积有可能巨量增长;但是,保证了较好的文件体积时,画质或多或少会有些降低。在实际应用中根据需要调参吧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
视频压缩免费软件,一款免费的视频压缩软件,HandBrake中文版汉化下载软件
HandBrake 是一款跨平台开源视频转码软件,支持 Windows、Mac 和 Linux 系统。其核心功能包括视频格式转换、压缩处理及多轨道音视频编码,支持 DVD、蓝光、消费级设备文件等输入源转换为 MP4、MKV 等主流容器格式。通过集成 x264、H.265 等视频编码器与 AAC/FLAC 音频编码器,实现高效的多媒体处理,并提供批量转换、视频滤镜、字幕嵌入等专业功能。
小焱
2025/07/03
1840
视频压缩免费软件,一款免费的视频压缩软件,HandBrake中文版汉化下载软件
FFmpeg 学习笔记
当然可以!下面是一份**《FFmpeg 学习笔记》**,内容包括常用命令、基础概念、实践技巧,适合初学者入门或进阶者查阅参考。
用户3672714
2025/06/04
2400
FFmpeg 视频处理入门教程
它功能强大,用途广泛,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),也是许多音频和视频格式的标准编码/解码实现。
ruanyf
2020/02/13
2.6K0
FFmpeg常用指令
然后就是用.Net调用FFmpeg,在网上找了下开源程序发现了一个FFmpegCore结果没有找到文档,算了还是原生cmd调用吧。 然后就有了这么个玩意
SingYi
2022/07/13
3.3K0
FFmpeg常用指令
FFmpeg完全指南:跨平台音视频处理利器
FFmpeg 是一个完整的跨平台音视频解决方案,用于记录、转换和流式处理音视频。它是目前最强大的音视频处理开源软件之一,被广泛应用于视频网站、播放器、编码器等多种场景中。
CoderJia
2024/12/05
7K0
FFmpeg完全指南:跨平台音视频处理利器
FFmpeg -crf参数优化:200MB视频变10MB画质基本不变
本文分享了作者用FFmpeg压缩视频的故事,通过测试不同的-ctf参数,将200多MB的视频文件压缩到不到10MB,画质没有明显下降。原文如下:
LiveVideoStack
2021/09/02
36.9K1
视频文件太大?使用FFmpeg来无损压缩它!
咱们平时如果经常拍视频的话,都会遇到一个困境:视频文件太大了,存储的时候需要占用很多的空间。如果直接使用视频压缩工具来压缩码率的话,又会担心损失了视频的画质,这该怎么办呢?
灯珑LoGin
2022/10/31
6.1K0
视频文件太大?使用FFmpeg来无损压缩它!
ffmpeg 下载、安装、配置、基本语法、避坑指南(覆盖 Windows、macOS、Linux 平台)
本文是一篇面向初学者的超详细 FFmpeg 教程,包括 FFmpeg 下载、安装、配置、基本语法 与 避坑指南。覆盖 Windows、macOS、Linux 平台的安装方式与 环境变量 设置,通过示例深入讲解 FFmpeg 常见参数(-i 输入、-c:v/libx264 视频编解码、-c:a/aac 音频编码、-b:v/-crf 码率控制、-s 分辨率、-r 帧率、-vf/-af 滤镜等),展示 格式转换、视频裁剪分割、合并拼接、截取缩略图、录制屏幕/摄像头 等核心操作。文章还详细讲解 版本兼容问题、编解码器授权、路径与权限、命令行拼写、输出质量与体积平衡、日志调试技巧 等常见坑与解决方案,帮助大家快速掌握 FFmpeg 视频转码、音频处理、流媒体推流与多媒体编辑的一劳永逸方法。
猫头虎
2025/06/08
2.5K0
透过 Top 500 美拍短视频看 AV1 性能
AV1 以其出色的压缩性能,无疑是自 2017 年以来备受关注的新生代视频编码标准。业界也相继对 AV1 进行了一些评测工作,如 Facebook、Netflix 对它的编码复杂度也从早期的 VP9 的近千倍降到了百倍。为了验证 AV1 在短视频上的性能,美图音视频团队自 2018 年 11 月,基于 Top 500 美拍短视频进行了一次全面的 AV1 性能评估,对标编码器采用在实际生成环境中使用的主流视频编码器 x264、x265、VP9。
LiveVideoStack
2019/07/01
1.3K0
透过 Top 500 美拍短视频看 AV1 性能
如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
 点击上方“LiveVideoStack”关注我们 翻译、编辑:Alex 技术审校:刘歧 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 FFmpeg Easy-Tech #021# 在本篇文章中,我们将学习如何使用FFmpeg把视频从AVI格式转换为MP4格式(在重新/不重新编码AVI文件的情况下)。作为红利,我们还将学习FFmpeg在Ubuntu、Mac和Windows上的安装,并使用FFmpeg将
LiveVideoStack
2022/04/18
9.6K0
如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)
《FFmpeg从入门到精通》读书笔记(三)
FFmpeg本身不支持H.264的编码器,是由FFmpeg的第三方模块对其进行支持,当前常用的编码器为x264,所支持的像素格式主要包括以下几种(使用ffmpeg -h encoder=libx264进行查询)
全栈程序员站长
2022/09/13
1.3K0
深入浅出FFmpeg:一款强大的多媒体处理工具
引言:在如今多媒体时代,我们经常接触到各种图片、音频和视频文件。而FFmpeg作为一款功能强大的开源多媒体处理工具,为我们提供了丰富的功能和灵活的应用方式。了不起最近刚好接触到了FFmpeg,本文将深入浅出地介绍FFmpeg,包括它的创建背景、内置工具以及常用命令,让您更好地了解和应用这一工具。
灬沙师弟
2023/07/08
9010
深入浅出FFmpeg:一款强大的多媒体处理工具
FFmpeg从入门到精通-云享读书会
FFmpeg是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。
DS小龙哥
2022/10/06
5.5K0
FFmpeg从入门到精通-云享读书会
使用ffmpeg缩小视频体积的几种方式
  随着视频制作的普及,视频文件的体积也越来越大,给存储和传输带来了很大的困扰。为了解决这个问题,我们可以使用FFmpeg这个强大的工具来缩小视频的体积。本文将介绍三种常用的方法:调整视频的分辨率、调整视频的码率和使用更高效的视频编码格式。
xindoo
2024/08/07
3270
Web 视频格式简明指南[每日前端夜话0x93]
网络视频一直都很火。虽然在页面上嵌入 Instagram 和 Youtube 视频非常简单,但是有越来越多的需求 —— 比如许多电子商务的场景 —— 要求定制的视频传输方法。
疯狂的技术宅
2019/07/15
1.3K0
Web 视频格式简明指南[每日前端夜话0x93]
【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
在 ffmpeg 命令中 , -vframes 参数 的 作用是 指定要输出的视频帧数 , 通过该参数 可以 控制 视频处理的长度 , 即 : 在输出多少帧后 停止处理 视频流 ;
韩曙亮
2024/03/05
8.9K0
【FFmpeg】ffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )
备忘清单:FFmpeg命令行工具的有用命令
下载FFmpeg: https://www.ffmpeg.org/download.html
mariolu
2021/04/28
2K0
如何将视频大小压缩90%?
前阵子,有一款视频压缩工具在网络上火了。这个工具叫做 tools.rotato.app,只需要在网页上传视频,就能给你几乎无损地压缩到原视频的10%左右大小。
Crossin先生
2024/10/22
2940
如何将视频大小压缩90%?
音视频基本概念和FFmpeg的简单入门
最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下;
乔达摩@嘿
2022/05/10
1.4K0
音视频基本概念和FFmpeg的简单入门
讲解FFMPEG H264/H265 编码延迟问题
在视频编码中,延迟是一个常见的问题。对于实时性要求较高的应用(如视频直播、视频会议等),延迟问题尤为重要。本文将重点讲解FFmpeg中H264和H265编码器的延迟问题,以及如何优化和降低编码延迟。
大盘鸡拌面
2023/12/10
2.7K0
推荐阅读
相关推荐
视频压缩免费软件,一款免费的视频压缩软件,HandBrake中文版汉化下载软件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档