linux给音乐添加封面,利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)
工作原理
读取metadata
AVFormatContext 结构体中有一个属性是metadata,我们在读取一个多媒体文件的时候,可以通过AVDictionaryEntry访问这个属性的数据。
AVFormatContext *fmt_ctx = NULL;
AVDictionaryEntry *tag = NULL;
av_register_all();
if ((ret = avformat_open_input(&fmt_ctx, "path_to_file.mp3", NULL, NULL))){
printf("Fail to open file");
}
//读取metadata中所有的tag
while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX))){
printf("Tag:%s , Value: %s", tag->key, tag->value);
}
读取专辑封面图片
// read the format headers
if (fmt_ctx->iformat->read_header(fmt_ctx) < 0) {
printf("No header format");
return;
}
for (int i = 0; i < fmt_ctx->nb_streams; i++){
if (fmt_ctx->streams[i]->disposition & AV_DISPOSITION_ATTACHED_PIC) {
AVPacket pkt = fmt_ctx->streams[i]->attached_pic;
//使用QImage读取完整图片数据(注意,图片数据是为解析的文件数据,需要用QImage::fromdata来解析读取)
QImage img = QImage::fromData((uchar*)pkt.data, pkt.size);
imageWidget->setPixmap(QPixmap::fromImage(img));
break;
}
}
我给深度文件管理器添加的音乐文件预览播放的支持效果(Linux deepin):
音乐文件封面缩略图预览
播放预览
linux给音乐添加封面,利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)相关推荐
- 利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)
工作原理 读取metadata AVFormatContext 结构体中有一个属性是metadata,我们在读取一个多媒体文件的时候,可以通过AVDictionaryEntry访问这个属性的数据. A ...
- python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用
注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...
- python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因
1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...
- 使用ffmpeg读取本地文件,进行推流
使用ffmpeg读取本地文件,进行推流,跳到指定时间播放. 注意MP4文件h264_mp4toannexb与aac_adtstoasc. 要实现循环播放注意两点: 1.播放到结尾,跳到开始位置重新播放 ...
- 利用FFmpeg进行视频文件进行分割
利用FFMPEG命令进行文件分割 ffmpeg -ss 00:00:00 -i input.mp4 -c copy -t 60 output.mp4 -ss 表示视频分割的起始时间,-t 表示分割时长 ...
- [torchtext]如何利用torchtext读取json文件并生成batch
如何利用torchtext读取json文件并生成batch 设置Field 使用torchtext.data.Tabulardataset.splits读取文件 构建vocab表 使用torchtex ...
- 利用POI读取excel文件(java)
利用POI读取excel文件(java) 摘要:利用java读取excel文件,读取文件并获取文件中每一个sheet中的值. 一.需要提前导入的包: import java.io.File;impor ...
- java利用poi读取excel_java利用POI读取excel文件的方法
摘要:利用java读取excel文件,读取文件并获取文件中每一个sheet中的值. 一.需要提前导入的包: import java.io.File; import java.io.FileInputS ...
- 利用Python读取fasta文件并进行一系列操作(上)
利用Python读取fasta文件并进行一系列操作(上) 概述 语言:python3.8 模块:pysam collections 可选:jupyter 整体思路:将fasta格式的基因原始数据处理为 ...
最新文章
- html分页自动加载数据库,AngularJS实现分页显示数据库信息
- 数据库获取的字符串按照逗号分隔,放进数组集合中
- dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf
- JDK 命令之 jar -- 压缩/解压缩工具
- jquery报.live() is not a function的解决方法
- 存储过程与触发器的应用
- lsqnonlin函数_matlab非线性最小二乘函数
- java kill 线程_java – 如何在等待中杀死正在运行的线程?
- Atitit 代理与分销系统(1) 子代理 充值总额功能设计概览 sum() groubpy subagt
- QT开发(九)—— Qt实现应用内动态切换语言,使用Qt语言家编译字体包
- phpstudy集成环境搭建网站
- IP 伪装简易使用说明
- 双机串行通讯实验c语言编程,51单片机编程:教你实现双机串行通信功能
- 白宁超计算机科学院,基于主动学习的传统中医症状本体构建方法研究综述.PDF...
- 超级简单的Python爬虫教程,python爬虫菜鸟教程官网
- Python调用OpenCV实现图像平滑处理
- Adobe cc版安装
- 高校GIS系统有何作用?
- python英文翻译-python中英文翻译
- 蓝牙5.2协议、主从一体、低功耗、工业级蓝牙模组BLE105新品上市