1 概述
1.1 文件位置
filtering_video.c
文件位于FFmpeg源码 doc/examples
目录下。
1.2 命令行参数
filtering_video
程序运行时,必须指定一个命令行参数file
,通常是一个视频文件的完整路径。
if (argc != 2) {
fprintf(stderr, "Usage: %s file\n", argv[0]);
exit(1);
}
1.3 功能
程序运行后打开指定的视频文件,解码并应用filter_descr
指定的滤镜。
2 总体流程
main函数中的相关代码
if ((ret = open_input_file(argv[1])) < 0)
goto end;
if ((ret = init_filters(filter_descr)) < 0)
goto end;
/* read all packets */
while (1) {
if ((ret = av_read_frame(fmt_ctx, &packet)) < 0)
break;
if (packet.stream_index == video_stream_index) {
ret = avcodec_send_packet(dec_ctx, &packet);
if (ret < 0) {
av_log(NULL, AV_LOG_ERROR, "Error while sending a packet to the decoder\n");
break;
}
while (ret >=