ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)
其中-r 和-framerate 都是代表帧率(这个属性属于图片的属性,需要放在图片之前)
-s 控制输出格式大小
本人在一个视频稳定的项目中用需要将视频分解为图片帧,图片帧经过稳定扭曲之后需要再次合成视频。
于是按照官方文档中的例子来操作了一遍:
ffmpeg -i 13.avi %04d.png
这里将视频转化为图片帧,默认的帧率为30,得到的图片质量和视频质量差别基本不大可以忽略。
ffmpeg -f image2 -framerate 30 -i %04d.png 13stbself.avi
在用默认参数将图片转换为视频的过程中,合成的视频质量却大打折扣,肉眼可以见的像素块,感觉是被压缩了很多。
下面查阅了很多文档资料后才解决这个问题!
影像视频质量的最重要因素是视频码率
在上述两步的转化过程信息中可以查到
可以看出原视频码率是5626kbits/s,而在图片转化为视频的过程中,输出视频的码率是默认的,只有200kbits/s,所以导致了转化前后视频质量相差巨大的问题。
解决方法是修改默认的视频码率属性-b:v
ffmpeg -f image2 -framerate 30 -i %04d.png -b:v 5626k 13stbself2.avi
这样转化前后的视频质量几乎没有差别(基本无损)。
ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)相关推荐
- 利用ffmpeg把一帧原始视频数据转换成jpg格式的图片
利用ffmpeg对一帧原始的视频数据转换成jpg格式的图片,保存到本地,用于Android显示 #include <jni.h> #include <stdio.h> #inc ...
- ffmpeg(ubuntu16.04):视频抽成帧(图片)/图片合成视频
· 视频抽成帧(图片): cd 到视频所在目录下: 输入: ffmpeg -i output-processed.avi -q:v 2 -f image2 frame_%06d.jpg (注:上述代码 ...
- FFmpeg将有序帧(图片)转换成视频(解决了生成视频后播放闪烁的问题)
引言 随着目标检测算法在工程中的广泛应用,视频和批量图片的处理成为重要的环节.在对视频进行目标识别标记,主要采用opencv,每次读取一帧图像,然后送入网络,得到目标物所属类别,框的坐标信息和置信度, ...
- php如何截取出视频中的指定帧作为图片
php如何截取出视频中的指定帧作为图片 一.总结 一句话总结:截取视频指定帧为图片,php ffmpeg扩展已经完美实现,并且php ffmpeg是开源的 二.php如何截取出视频中的指定帧作为图片 ...
- 利用ffmpeg将mp4视频转换成多张jpg图片
分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec ...
- 查看视频的IPB帧,IPB帧编码顺序,视频的第一帧图片
> 如何查看视频的IPB帧 Android, 如何获取视频的每一帧的信息 视频 = 图片.图像(摄像头) + 声音(麦克风) : 谷歌官方给我们的提供的api接口类:MediaMetadataR ...
- Python:视频拆分成一帧一帧的图片
简介:在AI的数据集采集视频相关的测试中,可能需要将视频拆分成一帧一帧的图片进行保存,然后在从关键帧中定位问题或标注等.我们可以通过cv库对视频进行分成一帧帧的图片进行保存,相当于图片转视频的反向操作 ...
- ffmpeg 常用命令:视频拼接、裁剪、转图片
一.视频拼接 1.准备需要进行拼接视频的filelist.txt文件,filelist.txt内容格式如下所示,排列顺序为拼接后的视频先后顺序. file 'video_01.avi' file 'v ...
- java给视频添加字幕_JavaCV本地视频流通过帧图片添加文本进行字幕合成
JavaCV本地视频流通过帧图片添加文本进行字幕合成 音视频的Java框架找了一大圈,除了JavaCV,目前找不到其他的.JavaCV封装了对底层C的调用,最终实际上执行的都是FFMPEG的函数.现在 ...
最新文章
- 【每日一算法】最大子序列和
- JavaScript 操作 COM 控件
- opencv图像清晰度计算_Python中的十大图像处理工具
- 记录一次线上超时异常查询
- gvim同时处理中日韩文
- Pytorch DataLoader一次性封装多种数据集(pytorch Data学习六)
- 2021牛年春节海报PSD分层模板,简单一点就好!
- 10天智能锁项目实战第1天(了解单片机STM32F401RET6和C语言基础)
- Docx模板引擎示例
- SL4A/Py4A直接在adb中用python加载脚本
- 手把手图文教你从Eclipse项目迁移Android Studio
- strace/linux
- 计算机CPU核的位数,如何查cpu位数
- 06 Redis中BigKey、HotKey的发现与处理
- float 精度探究
- android 左右声道,Android立体声pcm的数据结构,左右声道拆分、左右声道反转
- JAVA一些实例实战
- eNSP实验三:OSPF路由协议
- 区块链软件公司:区块链到底能做啥?
- vue手风琴组件_Vue 2的Badger手风琴组件
热门文章
- 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法
- Android Studio “Project Structure”选项目录结构显示异常
- 【Mysql】存储emoji表情报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)的解决方案
- linux 远程 mysql,linux下mysql远程访问
- Win11无法识别Wmic怎么办?Win11识别不了Wmic的解决方法
- mybatis当输入参数有多个时的解决方案,Map类型,索引引用输入参数,map输出
- 网络协议:关于TCP/IP,必须知道的十个知识点
- php variables,浅析PHP原理之变量(Variables inside PHP)
- 结构体05:结构体做函数参数
- 洛谷——P1320 压缩技术(续集版)