FFmpeg转码分辨率会变化的视频

遇到一个需求:

有一个H264的视频流源文件,希望能够想办法转换成mp4的格式。

存在的问题:

mp4格式的视频大多数是固定分辨率的,比如960*480,如果h264视频流文件是固定尺寸的,那就没有任何问题。

但是,这个视频流文件!

不!是!固!定!尺!寸!的!

问题截图:

举个例子,我已手机的录屏为例,当手机横屏的时候,分辨率是 宽度*高度,当手机竖屏时,分辨率是高度*宽度。如果强行转码的话,会出现下面的情况。

图像就会直接被压缩了。

解决方案

1. 确保视频流文件的正确性

        下载一个vlc media player,直接播放H264文件,查看文件是不是正常的。

2. 使用ffmpeg解码

ffmpeg -i .\输入文件.h264 -vf "scale=w=960:h=540:force_original_aspect_ratio=decrease,pad=960:540:(ow-iw)/2:(oh-ih)/2" -c:v libx264 -preset ultrafast -r 10 -b:a 32k  -preset fast -strict experimental 输出文件.mp4 -y

3. 主要参数说明

下面对主要起作用的参数说明一下,毕竟要改变分辨率,又要Hold mp4的固定分辨率,就需要做一些填充:

scale: 固定目标分辨率

force_original_aspect_ratio=decrease·表示保持原始宽高比,并且只会减小分辨率以适应目标分辨率。

pad过滤器用于填充视频,确保输出分辨率为1920x1080,同时保持视频在中央,任何多余的部分都会被填充为黑色。

-crf 参数用于指定视频的质量。CRF (Constant Rate Factor) 是一种基于质量的压缩方法,值越小,视频质量越高,文件越大。通常,推荐的范围是18到28之间。(这个参数效果一般,所以最终没使用,可以酌情使用)

-preset·参数用于指定编码速度和文件大小的平衡。可用的预设包括ultrafast、superfast.veryfast、faster、fast、medium等,速度从快到慢,文件大小也相应变化。

4. 结果展示

最终结果就是一个设定了scale大小的mp4,但是当分辨率不一致的时候,会居中,两边填充黑色背景,对视频要求没那么高的可以这样处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/342233.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年全球运维大会(GOPS上海站):核心内容与学习收获(附大会核心PPT下载)

随着科技的不断进步,运维行业也在经历着日新月异的变化。2023年全球运维大会(GOPS上海站)作为业内的一大盛会,汇集了众多顶尖的运维专家、学者和实践者,共同探讨和分享运维领域的前沿技术和实践经验。本文将深入剖析大…

视频转换mp3的软件有哪些?这4款帮你轻松转换

视频转换mp3的软件有哪些?随着技术的发展,将视频转换为MP3已经成为我们日常生活中常见的需求。视频中往往包含有丰富的音频信息,通过转换工具,我们可以轻松地将这些信息提取出来,保存为MP3格式的音频文件。例如&#x…

用通俗易懂的方式讲解:大模型 RAG 技术,从入门到精通

本文基于IVAN ILIN发布于Towards AI的博客[1]进行总结归纳,感谢原作者的精彩讲解。 检索增强生成(Retrieval Augmented Generation,简称RAG)为大型语言模型(LLMs)提供了从某些数据源检索到的信息&#xff0…

【数据结构】数据结构中应用题大全(完结)

自己在学习过程中总结了DS中几乎所有的应用题,可以用于速通期末考/考研/各种考试。很多方法来源于B站大佬,底层原理本文不做过多介绍,建议自己研究。例题大部分选自紫皮严书。pdf版在主页资源 一、递归时间/空间分析 1.时间复杂度的分析 设…

nginx配置 请求静态文件时带上额外的响应头信息

注意:这种方式添加的额外信息会出现在响应头中。 例如在location{}中,try_files之前添加如下信息: add_header X-Extra-Header "Value"; add_header X-Forwarded-For $proxy_add_x_forwarded_for; …

Dubbo 模块探秘:深入了解每个组件的独特功能【二】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Dubbo 模块探秘:深入了解每个组件的独特功能 前言Dubbo-common公共逻辑模块Dubbo-remoting 远程通讯模块Dubbo-rpc 远程调用模块Dubbo-cluster 集群模块Dubbo-registry 注册中心模块Dubbo-…

大数据分析与挖掘-期末复习大纲[HBU]

前言 这篇博客针对河北大学 大数据分析与挖掘 课程期末复习,目的是给同学们一个比较清晰的复习方向,具体的学习还需要平时认真听讲、写作业。 我们使用的教材是这本: 练习题目 我只更新了部分答案,至于剩下的答案 老师上课的时…

FineBI实战项目一(22):各省份订单个数及订单总额分析开发

点击新建组件,创建各省份订单个数及订单总额组件。 选择自定义图表 修改横轴和纵轴的标题。 修改柱状图样式: 将组件拖拽到仪表板。 结果如下:

蓝桥杯练习题(六)

📑前言 本文主要是【算法】——蓝桥杯练习题(六)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …

通义千问开源大模型部署教程-小白也能懂

1、基础环境 1.1 python3安装 准备好:python 3.10 (不要用3.8 ,有bug) https://www.python.org/ftp/python/3.10.9/python-3.10.9-amd64.exe 安装完了之后,观察是否添加到path环境变量里了,如果安装的时候忘记勾选自动添…

六款简单的开关电源电路设计原理图详解

简单的开关电源电路图(一) 简单实用的开关电源电路图 调整C3和R5使振荡频率在30KHz-45KHz。输出电压需要稳压。输出电流可以达到500mA.有效功率8W、效率87%。其他没有要求就可以正常工作。 简单的开关电源电路图(二) 24V开关电源…

网络市场中的品牌推广:面向新一代数字原住民的挑战与机遇

随着科技的迅速发展和互联网的普及,我们正处在一个网络成熟期,一个以数字化和网络化为特征的新时代。在这个时代,新一代的数字原住民经营者正在崛起,他们依赖网络寻找商机,建立自己的事业。对于企业来说,如…