1. 分离音视频

  • 分离视频:ffmpeg -i test.mkv -vcodec copy -an test_video.mp4
  • 分离音频:ffmpeg -i test.mkv -acodec copy -vn test_audio.mp2

2. 解复用

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264

ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

3. 视频转码

ffmpeg -i test.mp4 -vcodec h264 -s 480*480 -an -f m4v test.264

ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264

说明: -bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制

4. 视频封装

ffmpeg –i test_video.mp4 –i test_audio.mp2 –vcodec copy –acodec copy test.mkv

5. 视频剪切

提取图片ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg

剪切视频

剪切从0:1:30开始时长20s的视频

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi

剪切从0:1:30开始到0:2:30秒间的视频

ffmpeg -i input.avi -vcodec copy -acodec copy -ss 0:1:30 -to 0:2:30 output.avi

6. 视频录制

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

7.叠加水印

使用命令ffmpeg -i Titanic.mkv -vf "movie=test.PNG,scale=100:150[watermask];[in][watermask] overlay=100:100[out]" -y Titanic.mp4

scale:水印的大小

overlay:水印的位置

8.将MP3转换为PCM数据

ffmpeg -i test.mp3 -f s16be -ab 192 -ar 44100 test.pcm

9. 推送RTP流、接收RTP流并存为ts文件

  • 推送RTP流

ffmpeg -re -i 4kp30_avc.mp4 -an -c copy -f rtp rtp://192.168.25.89:5004 > rtp.sdp

  • ffplay 接收rtp流

ffplay.exe -protocol_whitelist "udp,tcp,http,https,file,rtp" rtp.sdp

  • ffmpeg 接收rtp流,并存为ts文件

ffmpeg -protocol_whitelist "udp,tcp,http,https,file,rtp" -i rtp.sdp -c copy 4kp30_avc.ts

10. ffmpeg 编码

ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg4 bus_cif.avi//avi
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg2video bus_cif.VOB//dvd
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec wmv1 bus_cif.wmv//wmv
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec h264 bus_cif.mp4//mp4
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec flv bus_cif.flv//flv
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec rv10 bus_cif.rm//rm
ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec vp9 bus_cif.webm//webm

11. ffmpeg 解码

ffmpeg -i test1.h264 -c:v rawvideo -pix_fmt yuv420p test1.yuv

12. 截取 YUV

从第0帧开始截取30帧

ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(n\, 0\, 29)" out.yuv

根据时间截取帧(截取从第10秒到第20秒)

ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(t\, 10\, 20)" out.yuv

13. 压缩分辨率

ffmpeg -i 1080_60i.ts -s 720x576 720x576.ts

14. ffplay 播放YUV

ffplay -f rawvideo -video_size 1280x720 -pix_fmt nv12  test.yuv
需要指定的参数:
1. -video_size 指定yuv的宽高
2. -pix_fmt 指定yuv的格式
yuv的格式名可以通过 ffplay -pix_fmts来查询

15. ffplay 播放PCM

ffplay -ar 44100 -channels 1 -f s16le -i test.pcm
需要指定的参数:
1. -ar pcm的采样率
2. -channels pcm的通道数
3. -f pcm的格式
pcm的格式可以通过ffplay -sample_fmts来查询

16. 将 PCM 数据编码为 AC3

ffmpeg -y -f s16le -ac 1 -ar 44100 -acodec pcm_s16le -i audio_1.pcm test.ac3

最新文章

  1. javascript 中slice,substr,substring方法的对比
  2. javascript对象初探(一)--- 构造器函数
  3. BZOJ 2301 【HAOI2011】 Problem b
  4. 重新想象 Windows 8.1 Store Apps (93) - 控件增强: GridView, ListView
  5. 基于zmap 的应用层扫描器 zgrab (一)
  6. jQuery 如何先创建、再修改、后添加DOM元素
  7. PyQt4环境搭建与使用
  8. Docker容器的数据管理
  9. python yaml使用
  10. JavaScript两种方法来定义一个函数
  11. 从Http它被连接到WebSocket
  12. PHP常用函数总结(二)
  13. js中的Call()和apply()
  14. Python数据可视化-seaborn
  15. BZOJ.5068.友好的生物(思路)
  16. SSH无密码登录:只需两个简单步骤 (Linux)
  17. IDEA如何初始化Git本地仓库,并提交到远程仓库
  18. php 中 envoy 的使用方法
  19. linux 获取时间后--自定义时间格式
  20. [转]Windows 7自带很好用的磁盘检查与修复的环境

热门文章

  1. 号外号外!WPF界面开发者福音,DevExpress支持.NET Core 3.0!
  2. 客户端xml
  3. Laravel API Errors and Exceptions: How to Return Responses
  4. Oracle 体系结构图
  5. 02_通过位置变量创建 Linux 系统账户及密码
  6. [Luogu] 可持久化线段树 1(主席树)
  7. Git出现 fatal: Pathspec 'xxx' is in submodule 'xxx' 异常的解决方案
  8. pwn学习日记Day7 基础知识积累
  9. 使 nodejs 代码 在后端运行(nohup)
  10. Python JSON dump ,load,dumps,loads