ffmpeg合成视频

记录下ffmpeg如何安装配置,以及如何合成视频。

一、安装ffmpeg

1、下载ffmpeg安装包

打开 Dpwnload FFmpeg 官网,选择安装包Windows builds from gyan.dev

2、下滑找到release bulids部分,选择ffmpeg-7.0.2-essentials_build.zip

3、下载完成后,解压缩得到 FFmpeg 文件夹。

解压文件并检查目录结构

解压后的文件夹中应包含以下目录:

bin:FFmpeg 可执行文件所在的文件夹,运行 FFmpeg 的所有命令都需通过此目录下的文件。

doc:文档资料。

presets:预设的格式和编码方案。

进入 bin 目录,可以看到 FFmpeg 的三个核心可执行文件:ffmpeg.exe、ffplay.exe、ffprobe.exe。

4. 配置环境变量

为了方便在命令行中直接调用 FFmpeg,需要将其添加到系统的环境变量中。

在桌面左下角开始菜单搜索"菜单",找到"编辑编辑环境变量",然后点击打开。

5、重启电脑后查看是否生效

bash 复制代码
ffmpeg -version

6、命令行参数

-i 输入文件路径(被转换的 MP4 文件)

-f 输出文件格式设置为 mpegts

-codec:v 指定视频编码器为 mpeg1video

-b:v 设置输出视频比特率为 2000k

-r 设置帧速率为 30

-bf 设置 B 帧数量为 0

-codec:a 指定音频编码器为 mp2

-ar 设置音频采样频率为 44100

-ac 设置音频通道数为 1

-b:a 设置音频比特率为 128k

二、ffmpeg-python应用

1、安装ffmpeg-python

首先需要安装第一步ffmpeg,才能使用ffmpeg-python

bash 复制代码
pip install ffmpeg-python

2、获取音频、视频信息

python 复制代码
def get_video_info(source_video_path):
    probe = ffmpeg.probe(source_video_path)
    format = probe['format']
    duration = format['duration']
    bit_rate = int(format['bit_rate'])/1000
    duration = format['duration']
    size = int(format['size'])/1024/1024
    video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
    if video_stream is None:
        print('No video stream found!')
        return
    width = int(video_stream['width'])
    height = int(video_stream['height'])
    fps = int(video_stream['r_frame_rate'].split('/')[0])/int(video_stream['r_frame_rate'].split('/')[1])
    duration = float(video_stream['duration'])
    print('width: {}'.format(width))
    print('height: {}'.format(height))
    print('bit_rate: {}k'.format(bit_rate))
    print('fps: {}'.format(fps))
    print('size: {}MB'.format(size))
    print('duration: {}'.format(duration))

3、转换视频格式

python 复制代码
def convert_video():
    input_file = 'added.mp4'
    output_file = 'added.avi'
    ffmpeg.input(input_file).output(output_file).run()

4、调整视频比特率

python 复制代码
def bitrate_video():
    input_file = 'added.mp4'
    output_file = 'added.avi'
    # 使用 b 参数调整输出视频的比特率
    ffmpeg.input(input_file).output(output_file, b=500000).run()

5、裁剪视频

python 复制代码
def crop_video():
    input_file = 'added.mp4'
    output_file = 'added_crop.mp4'
    #使用 filter 方法裁剪视频到指定尺寸。
    ffmpeg.input(input_file).filter('crop',320,240).output(output_file).run()

6、合并视频

python 复制代码
def concat_video():
    video_list = ["added.mp4","final.mp4"]
    v_in_arr = []
    for fn in video_list:
        inv = ffmpeg.input(fn)
        v_in_arr.append(inv)
    output_file = 'concated.mp4'
    ffmpeg.concat(*v_in_arr).output(output_file).run()

7、音频提取

python 复制代码
def extract_video():
    input_file = 'added.mp4'
    output_file = 'added_audio.mp4'
    #使用 filter 方法裁剪视频到指定尺寸。
    ffmpeg.input(input_file).output(output_file, acodec='libmp3lame').run()

8、添加配音

python 复制代码
def add_audio():
    input_file = 'output.mp4'
    audio_file = 'music.mp3'
    output_file = 'added.mp4'
    audio = ffmpeg.input(audio_file) # 配音
    video = ffmpeg.input(input_file) # 无声视频
    out = ffmpeg.input(input_file).output(audio,output_file,vcodec='copy',acodec='aac',shortest=None)
    out.run()
    # 命令如下:
    # os.system('ffmpeg -i output.mp4 -i music.mp3 -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 -shortest final.mp4')
相关推荐
Yeauty8 小时前
三分钟掌握视频剪辑 | 在 Rust 中优雅地集成 FFmpeg
rust·ffmpeg·音视频·音频·视频
小gpt&19 小时前
02 windows qt配置ffmpeg开发环境搭建
windows·qt·ffmpeg
鹅毛在路上了21 小时前
vlc录制的视频伪时长修复方法
ffmpeg·音视频
学而知不足~1 天前
FFmpeg处理流程
ffmpeg
CHHC18801 天前
工业相机视频播放(RTSP)
ffmpeg·推流·工业相机·rtsp
plmm烟酒僧3 天前
编译支持 RKmpp 和 RGA 的 ffmpeg 源码
ffmpeg·视频编解码·rkmpp·硬件加速·vpu·rga
将进酒杯莫停3 天前
ffmpeg(4)-Windows环境下编译ffmpeg
ffmpeg
虾球xz3 天前
游戏引擎学习第148天
学习·ffmpeg·游戏引擎
看到我请叫我去学java吖4 天前
MacOS安装FFmpeg和FFprobe
macos·ffmpeg
小gpt&4 天前
01 音视频知识学习(视频)
c++·qt·学习·ffmpeg·音视频