ffmpeg为何用c语言编译,如何使用ffmpeg的c语言sdk实现对文件夹的操作

重要函数

打开文件夹:avio_open_dir()

读取文件夹:avio_read_dir()

关闭文件夹:avio_close_dir()

结构体, 操作目录的上下文:AVIODirContext()

目录项,用于存放文件名,文件大小等信息:AVIODirEntry()

实例

vim ffmpeg_list.c

#include

#include

int main(int arc, char *argv[])

{

int ret;

// 文件内容上下文

AVIODirContext *ctx = NULL;

// 文件信息上下文

AVIODirEntry *entry = NULL;

// 设置日志等级

av_log_set_level(AV_LOG_INFO);

// 打开文件夹, ctx:上下文, ./当前文件夹

ret = avio_open_dir(&ctx, "./", NULL);

if (ret < 0){

av_log(NULL, AV_LOG_ERROR, "找不到文件夹%s\n", av_err2str(ret));

return -1;

}

while(1){

// 读文件夹操作

ret = avio_read_dir(ctx, &entry);

// 如果读取失败

if (ret < 0){

av_log(NULL, AV_LOG_ERROR, "Cant read dir: %s\n", av_err2str(ret));

// return -1; 这里直接退出可能会忘记文件的退出,照成内存泄漏,使用goto

goto __fail;

}

// 如果读取成功,需要判断一下entry

if(!entry){

break;

}

// 打印文件信息, PRId64 是 64的宏信息

av_log(NULL, AV_LOG_INFO, "%12"PRId64" %s \n",

entry->size,

entry->name);

// 要进行entry的释放

avio_free_directory_entry(&entry);

}

// 关闭文件夹

__fail:

avio_close_dir(&ctx);

return 0;

}

编译:

clang -g -o list ffmpeg_list.c `pkg-config --libs liavformat libavutil`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sql Server之旅——第三站 解惑那些背了多年聚集索引的人

说到聚集索引&#xff0c;我想每个码农都明白&#xff0c;但是也有很多像我这样的伪程序员&#xff0c;只能用死记硬背来解决这个问题&#xff0c;什么表中只能建一个聚集索引&#xff0c;然后又扯到了目录查找来帮助读者记忆。。。。问题就在这里&#xff0c;我们不是学文科&a…

C#相关基础知识点总结+基础代码

C#基础知识 同一命名空间下的两个类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace HelloWorld {class A{private int a;public A(int x) { a x; }public void show() { Console.WriteL…

[PAT乙级]1038 统计同成绩学生

本题要求读入 N 名学生的成绩&#xff0c;将获得某一给定分数的学生人数输出。 输入格式&#xff1a; 输入在第 1 行给出不超过 10​5​​ 的正整数 N&#xff0c;即学生总人数。随后一行给出 N 名学生的百分制整数成绩&#xff0c;中间以空格分隔。最后一行给出要查询的分数个…

懂「互联网语」的程序员,是个狠人。

借用一下时下很火的「互联网语」做程序员的乐趣是只有进场的人才能获得的红利与程序员相处绝对是令人WOW的用户体验但是别真信那些个程序员说的话哪怕有无数江湖传言为他背书不然你良久建立的心智模型会在瞬间就崩塌毕竟头部程序员和腰腿部程序员之间的壁垒打通不了也许你暂时还…

综合知识点+计算机

综合知识点 多态性有哪些&#xff1f;&#xff08;静态和动态&#xff0c;分别叙述了一下虚函数和函数重载&#xff09; { 分为静态多态性和动态多态性&#xff0c;静态就是在编译时就已经确定了&#xff0c;动态是在程序运行时 才能确定。像函数重载&#xff0c;就是多个函数…

[PAT乙级]1036 跟奥巴马一起编程

美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014 年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形。现在…

c语言oj合法标识符,YTUOJ-C语言合法标识符

Description输入一个字符串&#xff0c;判断其是否是C的合法标识符。Input输入数据包含多个测试实例&#xff0c;数据的第一行是一个整数n,表示测试实例的个数&#xff0c;然后是n行输入数据&#xff0c;每行是一个长度不超过50的字符串。Output对于每组输入数据&#xff0c;输…

[C++11]initializer_lisr模板类的使用

代码如下: #include <iostream> using namespace std;void func(initializer_list<int> ls) {auto it ls.begin();for (; it ! ls.end(); it){cout << *it << " ";}cout << endl; }int main() {func({ 1,2,5,12,23 });return 0; }测…

map的专项知识点总结

map的专项知识点总结 标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结&#xff1a; &#xff08;1&#xff09;.map对象的定义和初始化 &#xff08;2&#xff09;.map对象的基本操作&#xff0c;主要包括添加元素&#xff0c;遍历等 m…

linux tcp 创建,Linux下tcp服务器创建的步骤

创建一个socket&#xff0c;使用函数socket()socket(套接字)实质上提供了进程通信的端点&#xff0c;进程通信之前&#xff0c;双方首先必须建立各自的一个端点&#xff0c;否则没有办法通信。通过socket将IP地址和端口绑定之后&#xff0c;客户端就可以和服务器通信了#include…

基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先

上一篇文章完善了项目中的代码&#xff0c;接入了Swagger。本篇主要使用Entity Framework Core完成对数据库的访问&#xff0c;以及使用Code-First的方式进行数据迁移&#xff0c;自动创建表结构。数据访问在.EntityFrameworkCore项目中添加我们的数据访问上下文对象MeowvBlogD…

[C++11]使用using和typedef给模板定义别名

using语法和typedef一样&#xff0c;并不会创建出新的类型&#xff0c;它们只是给某些类型定义了新的别名。using相较于typedef的优势在于定义函数指针别名时看起来更加直观&#xff0c;并且可以给模板定义别名。 使用typedef给模板定义别名: 无法直接使用typedef给模板定义别…

石家庄学院c语言试题,谁会高级语言程序设计?要求用C语言,帮帮我把,愁死我啦...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼好的&#xff0c;题目如下&#xff0c;帮我做做吧1. 图形时钟功能要求&#xff1a;在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可)&#xff0c;时间与系统时间一致&#xff0c;且要随着时间的走动准确的走动。2. 万年…

Shaolin HDU - 4585(map模板题)

题意&#xff1a; 少林寺有n1个和尚&#xff0c;他们都有一个独有的编号和战斗力值&#xff0c;当一个年轻人通过所有考试并被宣布为少林的新僧人时&#xff0c;将会有一场战斗&#xff0c;作为欢迎的一部分。新和尚必须与一位战斗等级最接近他的战斗等级的老和尚战斗。如果有…

Azure Show|第一期 开播啦!嘉宾梁迪李卓恒李佳芮

欢迎来到Azure Show!Azure ShowAzure Show 是由微软最有价值专家、微软技术社区区域总监卢建晖和微软开发者关系PM朱兴亮共同发起的一个关于微软Azure、开源技术、还有技术社区相关的线上节目。每期节目由MVP面对面、开源故事、从零开始以及Azure101组成&#xff0c;邀请微软技…

c语言coin函数库,Coin Test | C/C++程序员之家

Coin Test时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;1描述As is known to all,if you throw a coin up and let it droped on the desk there are usually three results. Yes,just believe what I say ~it can be the right side or the …

[PAT乙级]1033 旧键盘打字(getline()读入)

旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键&#xff0c;打出的结果文字会是怎样&#xff1f; 输入格式&#xff1a; 输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其…

基于 abp vNext 和 .NET Core 开发博客项目 - 完善与美化,Swagger登场

上一篇文章(https://www.cnblogs.com/meowv/p/12896898.html)已经成功将博客项目跑起来了&#xff0c;那么本篇主要是将之前遗留的问题解决&#xff0c;现在的代码看起来可能还是比较混乱&#xff0c;有大量与之无关的代码存在里面&#xff0c;对于强迫症患者来说真的是零容忍。…

string函数知识点总结

标准c中string类函数介绍 之所以抛弃char*的字符串而选用C标准程序库中的string类&#xff0c;是因为他和前者比较起来&#xff0c;不必 担心内存是否足够、字符串长度等等&#xff0c;而且作为一个类出现&#xff0c;他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需…

[C++11]基于范围的for循环

C11提供了一种新型的for循环形式 - 基于范围的for循环 语法: for (declaration : expression) {//循环体 }在上面的语法格式中&#xff0c;declaration表示遍历声明&#xff0c;在遍历过程中&#xff0c;当前被遍历到的元素会被存储到声明的变量中&#xff0c;expression是要…