FFMPEG学习【libavformat】:I/O Read/Write

一、头文件

avio.h


二、目录列表

目录列表API使得可以在远程服务器上列出文件。


一些可能的用例:

1、一个“打开文件”对话框可以从远程位置选择文件,

2、递归媒体查找器,为播放器提供播放所有文件从给定目录的能力。


一)、打开一个目录

首先,需要通过调用与URL一起提供的avio_open_dir()和可选的包含协议特定参数的AVDictionary来打开目录。 该函数返回零或正整数,并在成功时分配AVIODirContext。

AVIODirContext *ctx = NULL;
if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) {
    fprintf(stderr, "Cannot open directory.\n");
    abort();
}

此代码尝试使用smb协议打开示例目录,而不需要任何其他参数。


二)、阅读目录

每个目录的条目(即文件,另一个目录,AVIODirEntryType中的其他目录)由AVIODirEntry表示。 从打开的AVIODirContext读取连续条目是通过重复调用avio_read_dir()来完成的。 如果成功,每个调用返回零或正整数。 读取可以在NULL条目读取之后立即停止 - 这意味着没有任何条目被读取。 以下代码从与ctx关联的目录中读取所有条目,并将其名称打印到标准输出。

AVIODirEntry *entry = NULL;
for (;;) {
    if (avio_read_dir(ctx, &entry) < 0) {
        fprintf(stderr, "Cannot list directory.\n");
        abort();
    }
    if (!entry)
        break;
    printf("%s\n", entry->name);
    avio_free_directory_entry(&entry);
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值