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

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

遇到一个需求:

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

存在的问题:

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

但是,这个视频流文件!

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

问题截图:

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

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

图像就会直接被压缩了。

解决方案

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,但是当分辨率不一致的时候,会居中,两边填充黑色背景,对视频要求没那么高的可以这样处理。

FFmpeg转码分辨率会变化的视频,ffmpeg,音视频文章来源地址https://www.toymoban.com/news/detail-797646.html

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

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

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

相关文章

  • 使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率

    在此 FFmpeg 教程中,我们学习使用 FFmpeg 的命令行工具更改视频的分辨率(或调整视频的大小/缩放)。 更改视频的分辨率(也称为调整大小或缩放)是视频编辑、处理和压缩中非常常见的操作。对于 ABR 视频流尤其如此,其中将单个视频作为源并压缩为多个不同的比特率分辨

    2024年01月20日
    浏览(65)
  • opencv和ffmpeg调整视频分辨率两种方法介绍

     咳咳,为了调整学习资料的分辨率,我花了很多时间,嗯,效果一般。就是图个乐子。   opencv确实是个不错的软件,但可惜我不太懂调整颜色色差,对比度这些东西,但是还是贴上代码吧。     ffmpeg有python版本和exe版本,为了节省时间,我就使用exe版本了。ffmpeg使用前需要

    2024年02月09日
    浏览(48)
  • 使用ffmpeg调整视频分辨率/帧率并保持高清晰度

    通过ffmpeg -i命令查看视频基本信息 通过命令查看,原始视频信息 分辨率为4096x2160,码率214092k, 帧率50 -qscale value:使用固定的视频量化标度(VBR),以value质量为基础的VBR,取值0.01-255,越小质量越好 -q:v:表示存储jpeg的图像质量 -b:v:设置输出文件的视频比特率(码率) -c:a:

    2024年02月02日
    浏览(82)
  • 【NEW】视频云存储EasyCVR平台H.265转码配置增加分辨率设置

    关于视频分析EasyCVR视频汇聚平台的转码功能,我们在此前的文章中也介绍过不少,感兴趣的用户可以翻阅往期的文章进行了解。 安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采

    2024年02月12日
    浏览(39)
  • 安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置

    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、

    2024年02月12日
    浏览(40)
  • 音视频——码率、帧率越高越清晰?分辨率、像素、dpi的关系

    本期我介绍一下视频的一些基础概念,如帧率、码率、分辨率、像素、dpi、视频帧、I帧、P帧、gop等。我i初步学习音视频,给这些专业词汇进行扫盲 会解释多少码率是清晰的,是否帧率越高越流畅等问题。 这些概念是比较杂乱的,我们按这样的顺序介绍: 1、单个视频帧的概

    2024年02月13日
    浏览(54)
  • 安防视频汇聚平台EasyCVR视频监控综合管理平台H.265转码功能更新,新增分辨率配置的具体步骤

    安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求,让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上,视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、

    2024年02月12日
    浏览(61)
  • 项目实战——Qt实现FFmpeg音视频转码器

    本文记录使用 Qt 实现 FFmepg 音视频转码器项目的开发过程。 1、首先创建一个 Qt 项目,选择 MSVC2017 32bit 作为其编译器 2、将 FFmpeg 相关库及源文件拷贝到当前目录下 3、注释 prepare_app_arguments 函数(这里方便后面我们运行时可以指定相应的转码参数) 4、将所需的一些 dll 动态库

    2024年01月23日
    浏览(66)
  • Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)

    本地摄像头推流和本地桌面推流类似,无非就是采集的设备源头换成了本地摄像头设备而不是桌面,其他代码完全一样。采集本地摄像头实时视频要注意的是如果设置分辨率和帧率,一定要是设备本身就支持的,如果不支持那就歇菜,比如设备本身最大分辨率到1280x720,你主

    2024年02月05日
    浏览(47)
  • Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)

    采集电脑屏幕桌面并推流一般是用来做共享桌面、远程协助、投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少,一般采用ffmpeg来做桌面推流的居多,毕竟如果不采用代码直

    2024年02月03日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包