📜  视频高档 ffmpeg (1)

📅  最后修改于: 2023-12-03 15:41:34.071000             🧑  作者: Mango

视频高档 ffmpeg

简介

FFmpeg是一套开源的音视频编解码库,支持多种格式的音视频封装、音视频编解码,具有体积小、速度快、功能强大、接口简单等特点。

基础用法
视频转码

通过FFmpeg可以将一个视频文件转码成另一个格式的视频,比如将MP4格式的视频转为AVI格式的视频。以下是一个简单的命令示例:

ffmpeg -i input.mp4 output.avi
提取音频

FFmpeg还可以用于从视频中提取音频,以下是一个简单的命令示例:

ffmpeg -i input.mp4 -vn -acodec copy output.mp3
从图片生成视频

FFmpeg可以用于将图片生成视频,以下是一个简单的命令示例:

ffmpeg -framerate 1/5 -i image%d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
进阶用法
视频编辑

FFmpeg可以实现视频编辑的功能,例如裁剪、拼接、加水印等。以下是一个简单的命令示例:

# 裁剪视频
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:30 -c:v copy -c:a copy output.mp4

# 拼接视频
ffmpeg -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

# 加水印
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4
实时视频处理

FFmpeg也可以通过命令行实现实时视频处理的功能,例如视频编码、解码、图像处理等。以下是一个简单的命令示例:

# 实时视频编码
ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -f mpegts udp://192.168.0.1:1234

# 实时视频解码
ffmpeg -f mpegts -i udp://192.168.0.1:1234 -c:v copy -f v4l2 /dev/video1

# 实时图像处理
ffmpeg -f v4l2 -i /dev/video0 -vf "transpose=1" -f v4l2 /dev/video1
总结

FFmpeg是一个功能强大、灵活多变的音视频处理工具,既可以通过命令行实现基础功能,也可以通过API进行二次开发。对于想要进行音视频处理的开发人员来说,FFmpeg是绝不能错过的好工具。