FFmpeg命令实例合集


ffmpeg实例,使用高斯模糊为视频生成一个模糊背景(gblur)

ffmpeg实例,alphamerge实现溶图效果

ffmpeg实例,colorkey,chromakey抠图的使用

ffmpeg实例,edgedetect视频边缘提取

ffmpeg实例,overlay动画,右移动画,左侧入场

ffmpeg实例,码率(-b)、帧率(-r)和文件大小(-)相关操作

ffmpeg实例,crop裁剪相关

ffmpeg实例,vflip,hflip实现视频对称效果,镜面水面效果,上下对称,左右对称

ffmpeg实例,split,pad,crop,scale,hflip,overlay

ffmpeg实例,分辨率相关的操作(-s 和 -scale filter)

ffmpeg crop(宽高xy) scale(宽高) overlay(xy) 参数区别

ffmpeg scale宽高只能接受偶数,否则出错 height not divisible by 2

ffmpeg实例,fade淡入淡出效果

ffmpeg实例,-map命令的使用

ffmpeg实例,视频的倒放

ffmpeg实例,生成YUV、PCM原始数据

ffmpeg为音频设置采样率,和声道数

ffmpeg实例, volume 和 -vol 调大调小音视频的音量

ffmpeg实例,为视频添加关键帧,可以解决播放器无法SeekTo到关键帧的问题

ffmpeg实例,视频的旋转rotate

ffmpeg实例,视频的翻转vflip、hflip,旋转rotate、transpose

ffmpeg实例,视频的旋转rotate升级版,rotate,alphamerge

ffmpeg实例,为视频设置透明度的几种方案

ffmpeg实例,给视频添加个黑色的遮罩

ffmpeg实例,视频与图片互转,视频转gif,单张图片合成视频

ffmpeg实例,为视频添加一个循环播放的背景音乐

ffmpeg实例,drawtext在视频上添加文字

ffmpeg实例,setpts,atempo视频音频加减速

ffmpeg混音命令

Windows下安装FFmpeg命令行

以下是一个使用C语言调用FFmpeg的简单实例: ```c #include <stdio.h> #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavutil/imgutils.h> #include <libswscale/swscale.h> int main() { // 注册所有的FFmpeg组件 av_register_all(); // 打开输入文件 AVFormatContext *formatContext = NULL; if (avformat_open_input(&formatContext, "input.mp4", NULL, NULL) != 0) { printf("无法打开输入文件\n"); return -1; } // 获取流信息 if (avformat_find_stream_info(formatContext, NULL) < 0) { printf("无法获取流信息\n"); return -1; } // 寻找视频流 int videoStreamIndex = -1; for (int i = 0; i < formatContext->nb_streams; i++) { if (formatContext->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { videoStreamIndex = i; break; } } if (videoStreamIndex == -1) { printf("无法找到视频流\n"); return -1; } // 获取视频解码器 AVCodecParameters *codecParameters = formatContext->streams[videoStreamIndex]->codecpar; AVCodec *codec = avcodec_find_decoder(codecParameters->codec_id); if (codec == NULL) { printf("无法找到解码器\n"); return -1; } // 创建解码器上下文 AVCodecContext *codecContext = avcodec_alloc_context3(codec); if (avcodec_parameters_to_context(codecContext, codecParameters) < 0) { printf("无法创建解码器上下文\n"); return -1; } // 打开解码器 if (avcodec_open2(codecContext, codec, NULL) < 0) { printf("无法打开解码器\n"); return -1; } // 读取视频帧 AVPacket packet; while (av_read_frame(formatContext, &packet) >= 0) { if (packet.stream_index == videoStreamIndex) { // 解码视频帧 AVFrame *frame = av_frame_alloc(); int response = avcodec_send_packet(codecContext, &packet); if (response < 0) { printf("解码出错\n"); break; } response = avcodec_receive_frame(codecContext, frame); if (response == AVERROR(EAGAIN) || response == AVERROR_EOF) { av_frame_free(&frame); continue; } else if (response < 0) { printf("解码出错\n"); break; } // 处理视频帧 printf("解码视频帧,宽度:%d,高度:%d\n", frame->width, frame->height); av_frame_free(&frame); } av_packet_unref(&packet); } // 清理资源 avcodec_free_context(&codecContext); avformat_close_input(&formatContext); return 0; } ``` 在这个示例中,我们使用了FFmpeg库来打开输入文件("input.mp4"),获取视频流信息,寻找视频流,并将视频帧进行解码和处理。你可以根据你的需求进行进一步的操作,比如对解码后的视频帧进行渲染或保存等。 请确保已经正确安装了FFmpeg库,并在编译时链接了相关的库文件(如libavcodec、libavformat等)。你可以使用如下命令进行编译: ```shell gcc -o ffmpeg_example ffmpeg_example.c -lavcodec -lavformat -lavutil -lswscale ``` 编译完成后,你可以运行生成的可执行文件来执行示例程序。请将输入文件("input.mp4")放置在可执行文件所在的目录中。 希望这个示例能帮助你开始使用C语言调用FFmpeg进行视频处理。如有需要,你可以根据实际情况进行进一步的定制和扩展。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值