FFMPEG安装

ffmpeg下载地址

http://ffmpeg.org/download.html#build-windowshttp://ffmpeg.org/download.html#build-windows

下载完成后直接解压,解压后设置bin目录到环境变量的Path中

命令行使用ffmpeg -version查看是否生效

ffmpeg基础使用 - 简书参考ffmpeg常用命令[https://blog.csdn.net/newchenxf/article/details/51384360]ffmpeg参数中文详细解释[ht...https://www.jianshu.com/p/ddafe46827b7

FFmpeg功能命令汇总 - 简书前言 如此强大的FFmpeg,能够实现视频采集、视频格式转化、视频截图、视频添加水印、视频切片、视频录制、视频推流、更改音视频参数功能等。通过终端命令如何实现这些功能,Ric...https://www.jianshu.com/p/a035056cbbf9

使用ffmpeg压缩和拼接音频 - 简书0.工程需求 很多商务人士在开会的过程中,会做录音。录音可以用于及时地复习和回顾,避免忘记会议中的内容。本文作者会展示一个完整的使用ffmpeg压缩和拼接音频的例子。在例子中...https://www.jianshu.com/p/97441b1eb326?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Android 音视频开发(一):PCM 格式音频的播放与采集 - 简书什么是 PCM 格式 声音从模拟信号转化为数字信号的技术,经过采样、量化、编码三个过程将模拟信号数字化。 采样顾名思义,对模拟信号采集样本,该过程是从时间上对信号进行数字化,...https://www.jianshu.com/p/a59e8f51d6f2

使用ffmpeg提取视频中的画面

ffmpeg -i 测试视频.mp4 -ss 00:10:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg

ffmpeg -i changshan.mp4 -r 30 -q:v 2 -f image2 pic-%03d.jpeg

-ss 指定开始时间

-t 指定从开始时间需要提取画面的时间段,即20秒开始设置为10则提取到30s

-r 表示每一秒提取多少帧

-q:v 表示存储jpeg的图像质量,一般2是高质量

image2 表示图片文件?

截取视频片段

ffmpeg -ss 00:00:35 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4

-ss 指定截取视频起始时间点

-t 指定截取视频从截取起始时间点截取的时间段

-i 指定截取输入目标视频

提取视频中的音频数据,音频数据格式可使用命令 ffmpeg -i input.mp4查看

ffmpeg -i input.mp4 -acodec copy -vn output2.aac

提取视频中的纯视频文件,不包含音频

ffmpeg -i input.mp4 -vcodec copy -an output.mp4

-an 不处理音频

使用ffmpeg直接下载视频

ffmpeg -i 视频url output.mp4(保存的视频文件名称) 当前测试可下载m3u8文件

合成视频文件与音频文件

ffmpeg -i outputzixuan.mp4 -i 01.mp3 -vcodec copy -acodec copy -shortest hecheng.mp4

-shortest 使用音频或视频中最小长度作为总长度

fmpeg -i video.mp4 -ss 00:04:00 -i audio.mp3 -c:v copy -af apad -shortest output.mkv

-ss 指定音频起始时间为00:04:00

-c:v copy -af apad 超长无声填充???

压缩视频文件,压缩码率

ffmpeg -i hecheng.mp4 -b:v 5000k yasuo1.mp4

-b:v 指视频码率

-b:a 指音频码率

合成两个视频

ffmpeg -i 001.mp4 -i 002.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4

  • -i input1.mp4 -i input2.mp4: 输入的两个视频文件。

  • -filter_complex: 指定复杂的视频和音频过滤器。

  • [0:v:0]: 第一个文件的视频流。

  • [0:a:0]: 第一个文件的音频流。

  • [1:v:0]: 第二个文件的视频流。

  • [1:a:0]: 第二个文件的音频流。

  • concat=n=2:v=1:a=1: 将视频和音频流按顺序连接。

  • [v]: 输出的视频流别名。

  • [a]: 输出的音频流别名。

  • -map "[v]": 指定输出文件的视频流。

  • -map "[a]": 指定输出文件的音频流。

  • output.mp4: 输出文件的名称。

确保输入的视频格式和编码是兼容的,否则可能需要进行转码操作。如果视频的分辨率或帧率不同,可能还需要添加-s(设置分辨率)和-r(设置帧率)等选项。

合并多个不同格式的视频,首先转码为ts文件,然后合成

MP4文件不支持concat命令

ffmpeg -i yasuo.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb tsyasuo.ts

ffmpeg -i output1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb tsoutput1.ts

ffmpeg -i yasuo2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb tsyasuo.ts

ffmpeg -i "concat:tsyasuo.ts|tsoutput1.ts|tsyasuo2.ts" -acodec copy -vcodec copy -absf aac_adtstoasc output36.mp4

将图片合并为视频

ffmpeg -r 30 -f image2 -i pic-%4d.jpeg video.mp4

-r 帧率,注意改参数必须在ffmpeg后面,否则不生效

旋转视频

ffmpeg -i 需要旋转的视频.mp4 -metadata:s:v rotate="360"(旋转角度) -codec copy 输出视频.mp4

音频MP3文件转pcm文件

大段数据格式

ffmpeg -i test.mp3 -f s16be -ar 16000 -ac 1 -acodec pcm_s16be pcm16k.pcm

小端数据格式

ffmpeg -i test.mp3 -f s16le -ar 16000 -ac 1 -acodec pcm_s16le pcm16k.pcm

说明:

-acodec pcm_s16be:输出pcm格式,采用signed 16编码,字节序为大尾端(小尾端为le);

-ar 16000: 采样率为16000

-ac 1: 声道数为1

上面的命令不好使,需要知道采样率与声道数

ffmpeg -y -i test.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 16000 16k.pcm

pcm转mp3

复制代码
ffmpeg -y -f s16be -ac 2 -ar 16000 -acodec pcm_s16le -i 16k.pcm new_mp3.mp3

//该命令验证正常

ffmpeg -y -ac 2 -ar 48000 -f s16le -i 02.pcm -c:a libmp3lame -q:a 2 result2.mp3

参数 说明
-y 允许覆盖
-f s16le 强制文件格式
-ac 2 双声道
-ar 16000 采样率
-acodec pcm_s16le 编码器
-i test.mp3 源文件

将大视频切割为多个视频片段脚本,可以在保存成为文件后再git bash中执行

#!/bin/bash

#脚本中注意换行符问题\r\n与\n

#开始时间单位秒

startTime=0

#结束时间单位秒

endTime=0

#视频长度单位秒

length=5190

i=0

while [ $endTime -le $length ]; do

#statements

i=\[i+1]

#分段间隔时间单位秒,480替换为对应要切割的时间段

endTime=\[startTime+480]

#注意修改文件名名称及输出文件名称

ffmpeg -i ./autotestvideo.mp4 -ss $startTime -to $endTime -acodec copy -vcodec copy $i.mp4

startTime=$[endTime]

done

相关推荐
来吧~1 小时前
vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)
前端·vue.js·音视频
Bubluu1 小时前
浏览器点击视频裁剪当前帧,然后粘贴到页面
开发语言·javascript·音视频
深圳启明云端科技1 小时前
ESP-IDF HTTP POST请求发送音频-ESP32物联网方案
物联网·http·音视频
从后端到QT1 小时前
音视频采集推流时间戳记录方案
ffmpeg·音视频
ai产品老杨2 小时前
报警推送消息升级的名厨亮灶开源了。
vue.js·人工智能·安全·开源·音视频
莫固执,朋友3 小时前
Linux下编译 libwebsockets简介和使用示例
linux·websocket·音视频
Say-hai7 小时前
音视频入门知识(五):流媒体篇
音视频
EasyNVR14 小时前
互联网视频云平台EasyDSS无人机推流直播技术如何助力野生动植物保护工作?
音视频·无人机·视频监控
悠着,大嘟嘟14 小时前
FFmpeg音频解码详解
ffmpeg·音视频
余~~1853816280017 小时前
NFC 碰一碰发视频源码搭建技术详解,支持OEM
开发语言·人工智能·python·音视频