为了加深大家的印象,每篇FFmpeg初级开发的文章开头会出现FFmpeg的代码结构和初级开发我们的学习大纲,
FFmpeg的代码结构:
libavcodec: 编码器的实现
libavformat: 流协议,容器格式及基本IO访问的实现
libavfilter:音视频过滤器
libavutil:hash器,解码器和各种工具函数
libavdevice:访问捕获设备和回访设备的借口
libswresample:实现混音和重采样
libswscale:实现色彩转换和缩放功能
FFmpeg初级开发包括:
1. FFmpeg日志Log;
2. FFmpeg文件操作;
3. FFmpeg目录操作;
4. FFmpeg Meta信息;
5. FFmpeg抽取音频数据;
6. FFmpeg抽取视频H264数据;
7. FFmpeg格式转换;
8. FFmpeg音视频裁剪。
上一篇我们介绍了FFmpeg的日志log如何打印出来和日志的级别,那么这篇我们来介绍一下FFmpeg的文件删除和重命名。
其实也很简单,主要用到了libavformat中的两个函数:
avpriv_io_delete(url) // url:要删除的文件目录+文件名 如: ./test.c
avpriv_io_move(src, dst) // src:要重命名的文件名(需要完整目录) dst:重命名的名字(完整目录)
举个例子,我们当前目录下有3个文件:
test_del.txt, test_rename.txt, file_del_rename.c
file_del_renmae.c代码如下:
#include<libavformat/avformat.h>
#include<stdio.h>
int main(int argc, char* argv[]){
int renameResult;
renameResult = avpriv_io_move("test_rename.txt", "test.txt"); //将test_rename.txt文件名重命名为test.txt
if(renameResult < 0) // 如果renameResult >= 0表示重命名成功,renameResult < 0表示重命名失败
{
av_log(NULL, AV_LOG_ERROR, "Fail to rename!");
return -1;
}
av_log(NULL, AV_LOG_INFO, "Rename successfully!");
int delResult;
delRsult = avpriv_io_delete("./test_del.txt");
if(delResult < 0) // 如果delResult >= 0表示删除成功,delResult < 0表示删除失败
{
av_log(NULL, AV_LOG_ERROR, "Fail to delete!");
return -1;
}
av_log(NULL, AV_LOG_INFO, "Delete successfully");
return 0;
}
通过上面的代码就可以将test_rename.txt重命名为test.txt,并且将当前目录下的test_del.txt文件删除。