DaiCuoBBs

 找回密码
 免费注册

QQ登录

只需一步,快速开始

[FFMPEG] 使用ffmpeg合并视频

[复制链接]
admin 发表于 2021-2-2 22:39:44 | 显示全部楼层 |阅读模式
  1. file '1.mp4'
  2. file '2.mp4'
  3. file '3.mp4'
  4. file '4.mp4'
  5. file '5.mp4'
  6. file '6.mp4'
  7. file '7.mp4'
  8. file '8.mp4'
  9. file '9.mp4'
  10. file '10.mp4'
  11. file '11.mp4'
  12. file '12.mp4'
  13. file '13.mp4'
  14. file '14.mp4'
  15. file '15.mp4'
  16. file '16.mp4'
复制代码
在视频文件所在目录下新建一个文件filelist.txt 然后,一个合并好的 output.mp4 文件就生成了!

  1. ffmpeg -f concat -i filelist.txt -c copy output.mp4
复制代码

参考链接:https://www.jianshu.com/p/cf1e61eb6fc8


对于 MPEG 格式的视频,可以直接连接:

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法

ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
 楼主| admin 发表于 2021-2-2 22:40:55 | 显示全部楼层
  1. // 去掉视频中的音频
  2. ffmpeg -i input.mp4 -vcodec copy -an output.mp4
  3. // -an: 去掉音频;-vcodec:视频选项,一般后面加copy表示拷贝

  4. // 提取视频中的音频
  5. ffmpeg -i input.mp4 -acodec copy -vn output.mp3
  6. // -vn: 去掉视频;-acodec: 音频选项, 一般后面加copy表示拷贝

  7. // 音视频合成
  8. ffmpeg -y –i input.mp4 –i input.mp3 –vcodec copy –acodec copy output.mp4
  9. // -y 覆盖输出文件

  10. //剪切视频
  11. ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4
  12. // -ss 开始时间; -t 持续时间

  13. // 视频截图
  14. ffmpeg –i test.mp4 –f image2 -t 0.001 -s 320x240 image-%3d.jpg
  15. // -s 设置分辨率; -f 强迫采用格式fmt;

  16. // 视频分解为图片
  17. ffmpeg –i test.mp4 –r 1 –f image2 image-%3d.jpg
  18. // -r 指定截屏频率

  19. // 将图片合成视频
  20. ffmpeg -f image2 -i image%d.jpg output.mp4

  21. //视频拼接
  22. ffmpeg -f concat -i filelist.txt -c copy output.mp4

  23. // 将视频转为gif
  24. ffmpeg -i input.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
  25. // -pix_fmt 指定编码

  26. // 将视频前30帧转为gif
  27. ffmpeg -i input.mp4 -vframes 30 -f gif output.gif

  28. // 旋转视频
  29. ffmpeg -i input.mp4 -vf rotate=PI/2 output.mp4

  30. // 缩放视频
  31. ffmpeg -i input.mp4 -vf scale=iw/2:-1 output.mp4
  32. // iw 是输入的宽度, iw/2就是一半;-1 为保持宽高比

  33. //视频变速
  34. ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4

  35. //音频变速
  36. ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3

  37. //音视频同时变速,但是音视频为互倒关系
  38. ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4


  39. // 视频添加水印
  40. ffmpeg -i input.mp4 -i logo.jpg -filter_complex [0:v][1:v]overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] -map [out] -map 0:a -codec:a copy output.mp4
  41. // main_w-overlay_w-10 视频的宽度-水印的宽度-水印边距;
  42. // 截取视频局部
  43. ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4
  44. // 截取部分视频,从[80,60]的位置开始,截取宽200,高100的视频
  45. ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
  46. // 截取右下角的四分之一
  47. ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4
  48. // 截去底部40像素高度
  49. ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
复制代码

参数说明:

-vcodec xvid 使用xvid压缩
-s 320x240 指定分辨率
-r fps 设置帧频 缺省25
-b <比特率> 指定压缩比特

-acodec aac 设定声音编码
-ac <数值> 设定声道数,1就是单声道,2就是立体声
-ar <采样率> 设定声音采样率,PSP只认24000
-ab <比特率> 设定声音比特率
-vol <百分比> 设定音量

-y(覆盖输出文件

-t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持
-ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持
-title string 设置标题
-author string 设置作者
-copyright string 设置版权
-hq 激活高质量设置

-aspect aspect 设置横纵比 4:3 16:9 或 1.3333 1.7777
-croptop size 设置顶部切除带大小 像素单位
-cropbottom size -cropleft size -cropright size
-padtop size 设置顶部补齐的大小 像素单位
-padbottom size -padleft size -padright size -padcolor color 设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如 000000代表黑色)
-bt tolerance 设置视频码率容忍度kbit/s
-maxrate bitrate设置最大视频码率容忍度
-minrate bitreate 设置最小视频码率容忍度
-bufsize size 设置码率控制缓冲区大小
-vcodec codec 强制使用codec编解码方式。 如果用copy表示原始编解码数据必须被拷贝。
-sameq 使用同样视频质量作为源(VBR)
-pass n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率
-passlogfile file 选择两遍的纪录文件名为file

-map file:stream 设置输入流映射
-debug 打印特定调试信息
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|呆错站长论坛

GMT+8, 2022-5-22 07:03 , Processed in 0.045155 second(s), 8 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表