ffmpeg那些事

ffmpeg说明

  1. ffmpeg简介:
    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
  2. ffmpeg模块组成:
    libavformat: 一个包含多媒体容器格式的解复用器和复用器的库;
    libavcodec: 一个包含音频/视频编解码器和编码器的库;
    libavutil: 一个包含简化编程功能的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等。;
    libavdevice: 一个包含输入和输出设备的库,用于从许多常见的多媒体输入/输出软件框架(包括Video4Linux、Video4Linux2、VfW和ALSA)获取和呈现;
    libavfilter: 一个包含媒体过滤器的库;
    libswscale: 一个执行高度优化的图像缩放和颜色空间/像素格式转换操作的库;
    libswresample 一个执行高度优化的音频重采样、重矩阵和采样格式转换操作的库;
    libpostproc: 用于后期效果处理;
    ffmpeg: 可用于格式转换、解码或电视卡即时编码等;
    ffsever: 一个 HTTP 多媒体即时广播串流服务器;
    ffplay: 一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;
    ffprobe: 一个媒体参数分析工具;
  3. ffmpeg 官网
  4. 参考ffmpeg4.2.1
  5. 系统window10

ffmpeg命令

ffmpeg 官方文档

基本信息查询命令

命令说明
-version显示版本
-demuxers显示可用的demuxers
-muxers显示可用的muxers
-devices显示可用的设备
-codecs显示所有编解码器
-decodecs显示可用的解码器
-encoders显示可用的编码器
-bsfs显示显示比特流filter
-formats显示可用的格式
-protocols显示可用的协议
-filters显示可用的过滤器
-pix_fmts显示可用的像素格式
-sample_fmts显示可用的采样格式
-layouts显示channel名称
-colors显示识别的颜色名称

录制命令

//查询设备信息
ffmpeg -list_devices true -f dshow -i dummy
//根据查询的信息,设置参数并录制
ffmpeg -f dshow -video_size 1536x960 -framerate 30 -pixel_format yuv420p -i video="screen-capture-recorder":audio="virtual-audio-capturer" av-out.mp4

分解/复用命令

处理原始数据命令

裁剪与合并命令

图片/视频转换命令

直播相关命令

各种滤镜命令

  • 将输出文件的视频比特率设置为64 kbit/s
    ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
    
  • 将输出文件的帧速率强制为24 fps
    ffmpeg -i input.avi -r 24 output.avi
    
  • 将输入文件的帧速率(仅对原始格式有效)强制为1fps,将输出文件的帧速率强制为24fps
    ffmpeg -r 1 -i input.m2v -r 24 output.avi
    
  • 转码
    ffmpeg -i input.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 output.mp3
    
  • 提取视频流(剔除音频流)
    ffmpeg -i input.mp4 -vcodec copy -an v.mp4
    
  • 提取音频流(剔除视频流)
    ffmpeg -i input.mp4 -acodec copy -av a.m4a
    
  • 合并音视频流
    ffmpeg -i a.m4a -i v.mp4 -c copy -av output.mp4
    
  • 截取音视频
    //-ss:起始时间 && -to:终止时间
    ffmpeg -i input.mp3 -ss 00:01:00 -to 00:01:10 -acodec copy  output.mp3
    //-t:持续时长
    ffmpeg -i input.mp3 -ss 00:01:00 -t 10 -acodec copy  output.mp3
    
  • 拼接音视频
    ffmpeg -i “concat:input01.mp4|input02.mp4|input03.mp4” -c copy  output.mp4
    
  • 截图
    ffmpeg -i input.mp4 -ss 5 -vframes 1 img.jpg
    
  • 添加水印
    ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=20:20" output.mp4
    
  • 动图gif
    ffmpeg -i input.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 output.git
    
  • 录屏(OBS Studio:强大的免费开源录屏软件)
    //只能录屏,不支持录音
    ffmpeg -f gdigrab -i desktop rec.mp4
    
  • 推流
    ffmpeg -re -i rec.mp4 按照网站要求编码 -f flv "你的rtmp地址/你的直播码"
    
  • 无损压缩(快速编码)
    ffmpeg -i input -vcodec libx264 -preset ultrafast -qp 0 output.mkv
    
  • 无损压缩(高压缩比)
    ffmpeg -i input -vcodec libx264 -preset veryslow -qp 0 output.mkv
    

ffmpeg开发

下载ffmpeg

在这里插入图片描述
Shared:包含所需dll
Dev:包含所需include及lib

ffmpeg开发代码

UE4音视频功能插件

请参阅 UE4音视频功能插件

标题Python网络课程在线学习平台研究AI更换标题第1章引言介绍Python网络课程在线学习平台的研究背景、意义、国内外现状和研究方法。1.1研究背景与意义阐述Python在线学习平台的重要性和研究意义。1.2国内外研究现状概述国内外Python在线学习平台的发展现状。1.3研究方法与论文结构介绍本文的研究方法和整体论文结构。第2章相关理论总结在线学习平台及Python教育的相关理论。2.1在线学习平台概述介绍在线学习平台的基本概念、特点和发展趋势。2.2Python教育理论阐述Python语言教学的理论和方法。2.3技术支持理论讨论构建在线学习平台所需的技术支持理论。第3章Python网络课程在线学习平台设计详细介绍Python网络课程在线学习平台的设计方案。3.1平台功能设计阐述平台的核心功能,如课程管理、用户管理、学习跟踪等。3.2平台架构设计给出平台的整体架构,包括前后端设计、数据库设计等。3.3平台界面设计介绍平台的用户界面设计,强调用户体验和易用性。第4章平台实现与测试详细阐述Python网络课程在线学习平台的实现过程和测试方法。4.1平台实现介绍平台的开发环境、技术栈和实现细节。4.2平台测试对平台进行功能测试、性能测试和安全测试,确保平台稳定可靠。第5章平台应用与效果分析分析Python网络课程在线学习平台在实际应用中的效果。5.1平台应用案例介绍平台在实际教学或培训中的应用案例。5.2效果评估与分析通过数据分析和用户反馈,评估平台的应用效果。第6章结论与展望总结Python网络课程在线学习平台的研究成果,并展望未来发展方向。6.1研究结论概括本文关于Python在线学习平台的研究结论。6.2研究展望提出未来Python在线学习平台的研究方向和发展建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值