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将视频流转化成图片帧,将图片帧转化为视频(基本无损)相关推荐

  1. 利用ffmpeg把一帧原始视频数据转换成jpg格式的图片

    利用ffmpeg对一帧原始的视频数据转换成jpg格式的图片,保存到本地,用于Android显示 #include <jni.h> #include <stdio.h> #inc ...

  2. ffmpeg(ubuntu16.04):视频抽成帧(图片)/图片合成视频

    · 视频抽成帧(图片): cd 到视频所在目录下: 输入: ffmpeg -i output-processed.avi -q:v 2 -f image2 frame_%06d.jpg (注:上述代码 ...

  3. FFmpeg将有序帧(图片)转换成视频(解决了生成视频后播放闪烁的问题)

    引言 随着目标检测算法在工程中的广泛应用,视频和批量图片的处理成为重要的环节.在对视频进行目标识别标记,主要采用opencv,每次读取一帧图像,然后送入网络,得到目标物所属类别,框的坐标信息和置信度, ...

  4. php如何截取出视频中的指定帧作为图片

    php如何截取出视频中的指定帧作为图片 一.总结 一句话总结:截取视频指定帧为图片,php ffmpeg扩展已经完美实现,并且php ffmpeg是开源的 二.php如何截取出视频中的指定帧作为图片 ...

  5. 利用ffmpeg将mp4视频转换成多张jpg图片

    分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec ...

  6. 查看视频的IPB帧,IPB帧编码顺序,视频的第一帧图片

    > 如何查看视频的IPB帧 Android, 如何获取视频的每一帧的信息 视频 = 图片.图像(摄像头) + 声音(麦克风) : 谷歌官方给我们的提供的api接口类:MediaMetadataR ...

  7. Python:视频拆分成一帧一帧的图片

    简介:在AI的数据集采集视频相关的测试中,可能需要将视频拆分成一帧一帧的图片进行保存,然后在从关键帧中定位问题或标注等.我们可以通过cv库对视频进行分成一帧帧的图片进行保存,相当于图片转视频的反向操作 ...

  8. ffmpeg 常用命令:视频拼接、裁剪、转图片

    一.视频拼接 1.准备需要进行拼接视频的filelist.txt文件,filelist.txt内容格式如下所示,排列顺序为拼接后的视频先后顺序. file 'video_01.avi' file 'v ...

  9. java给视频添加字幕_JavaCV本地视频流通过帧图片添加文本进行字幕合成

    JavaCV本地视频流通过帧图片添加文本进行字幕合成 音视频的Java框架找了一大圈,除了JavaCV,目前找不到其他的.JavaCV封装了对底层C的调用,最终实际上执行的都是FFMPEG的函数.现在 ...

最新文章

  1. 【每日一算法】最大子序列和
  2. JavaScript 操作 COM 控件
  3. opencv图像清晰度计算_Python中的十大图像处理工具
  4. 记录一次线上超时异常查询
  5. gvim同时处理中日韩文
  6. Pytorch DataLoader一次性封装多种数据集(pytorch Data学习六)
  7. 2021牛年春节海报PSD分层模板,简单一点就好!
  8. 10天智能锁项目实战第1天(了解单片机STM32F401RET6和C语言基础)
  9. Docx模板引擎示例
  10. SL4A/Py4A直接在adb中用python加载脚本
  11. 手把手图文教你从Eclipse项目迁移Android Studio
  12. strace/linux
  13. 计算机CPU核的位数,如何查cpu位数
  14. 06 Redis中BigKey、HotKey的发现与处理
  15. float 精度探究
  16. android 左右声道,Android立体声pcm的数据结构,左右声道拆分、左右声道反转
  17. JAVA一些实例实战
  18. eNSP实验三:OSPF路由协议
  19. 区块链软件公司:区块链到底能做啥?
  20. vue手风琴组件_Vue 2的Badger手风琴组件

热门文章

  1. 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法
  2. Android Studio “Project Structure”选项目录结构显示异常
  3. 【Mysql】存储emoji表情报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)的解决方案
  4. linux 远程 mysql,linux下mysql远程访问
  5. Win11无法识别Wmic怎么办?Win11识别不了Wmic的解决方法
  6. mybatis当输入参数有多个时的解决方案,Map类型,索引引用输入参数,map输出
  7. 网络协议:关于TCP/IP,必须知道的十个知识点
  8. php variables,浅析PHP原理之变量(Variables inside PHP)
  9. 结构体05:结构体做函数参数
  10. 洛谷——P1320 压缩技术(续集版)