推荐的是VLC这款开源媒体播放器。
它以其稳定的性能、广泛的兼容性和易用性赢得了广大用户的好评和喜爱。
第一款是FFmpeg,
这是一款功能强大的多媒体处理工具包,支持多种音频和视频格式,可以让您轻松转换和剪辑视频。
第二款是Gstreamer,这是一个用于开发高级多媒体应用的库,提供了一套完整的媒体元素和数据流处理能力。
第三款是MPlayer,这是一款免费的开源媒体播放器,支持各种音频和视频格式,还可以实现多任务播放。
第四款是Xbmc,这是一款专为电视和移动设备设计的娱乐中心,可以播放各种类型的媒体文件。
最后一款是Plex Media Player,这是一款功能齐全的家庭娱乐解决方案,支持各种音频和视频格式,还可以实现跨平台同步。
|
JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。
包含了(滚动/区域)截屏、录屏、文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源!
https://github.com/fandesfyf/JamTools
|
https://blog.csdn.net/dingjianfeng2014/article/details/57424473
https://trac.ffmpeg.org/wiki/Capture/ALSA
关键是没有成功,文章中的方法不好用,于是尝试了alsa-oss
|
https://blog.csdn.net/weixin_43746325/article/details/126432552
linux下命令
ffmpeg -f alsa -i hw:0 out.wav
这个命令倒是可以运行,不报错,但没有声音,这时可去学习alsa的知识,把基础的设备弄明白了
该代码尚未运行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <libavutil/avutil.h>
#include <libavdevice/avdevice.h>
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
int main(int argc, char** argv)
{
int ret = 0;
char errors[1024];
int count = 0;
AVPacket pkt;//数据存放
char *devicename = "hw:0";//mac: :0
AVFormatContext *fmt_ctx = NULL; //记得赋值NULL 上下文
AVDictionary *options = NULL;
char *out = "./audio.pcm";
FILE *outfile = NULL;
char input_command[128];
int flag=-1;
av_log_set_level(AV_LOG_DEBUG);
avdevice_register_all(); //打开所有设备
AVInputFormat *iformat = av_find_input_format("alsa");//设置平台格式 mac: avfoundation
if( (ret = avformat_open_input(&fmt_ctx, devicename,iformat,&options) )< 0)//传入参数 打开设备
{
av_strerror(ret,errors,1024);
av_log(NULL,AV_LOG_DEBUG,"Failed to open audio device,[%d]%s\n",ret,errors);
return -1;
}
av_init_packet(&pkt);//数据初始化 干净的空间;
//create file
outfile = fopen(out,"wb+");
flag=fcntl(0,F_GETFL); //获取当前flag
flag |=O_NONBLOCK; //设置新falg
fcntl(0,F_SETFL,flag); //更新flag
while((ret = av_read_frame(fmt_ctx,&pkt)) == 0)
{
//write FILE
fwrite(pkt.data,pkt.size,1,outfile);
fflush(outfile);
if((ret=read(0,input_command,sizeof(input_command))) > 0)
{
if(strncmp(input_command, "over",4) == 0)
{
av_log(NULL,AV_LOG_DEBUG,"over\n");
break;
}
else
{
av_log(NULL,AV_LOG_DEBUG,"请重新输入\n");
}
memset(input_command, 0, sizeof(input_command));
}
av_log(NULL,AV_LOG_DEBUG,"pkt_size:%d(%p)\n",pkt.size,pkt.data);
av_packet_unref(&pkt);//缓冲区 内存释放
}
fclose(outfile);
avformat_close_input(&fmt_ctx);
av_log(NULL,AV_LOG_DEBUG,"Finish\n");
return 0;
}
gcc av_log_optimi.c -I/usr/ffmpeg4.1/include -L/usr/ffmpeg4.1/lib -o av_log_optimi -lavutil -lavdevice -lavformat -lavcodec
./av_log_optimi
输入 over 结束录音。
录音文件播放,使用ffpaly播放
ffplay -ar 44100 -ac 2 -f s16le audio.pcm
ar表示 采样率
ac 表示通道数
f 表示采样大小格式
|
ubuntu14.04安装oss音频驱动,替换掉alsa驱动 https://blog.csdn.net/a40033280/article/details/105847160/ 没成功 sudo dpkg -i oss-linux-v4.2-2020-amd64.deb CC [M] /usr/lib/oss/build/osscore_lnk.o /usr/lib/oss/build/osscore_lnk.c:17:10: fatal error: stdarg.h: No such file or directory 17 | #include stdarg.h 设置下面的内容不管用 sudo ln -s /usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h /usr/include/stdargs.h 还有源码,可以下载下来然后自己编译,但没有试 https://blog.csdn.net/a40033280/article/details/105847160/ 在文章中指出除了软链接还要在makefile中手工指定gcc的库路径,也还没有试 https://blog.csdn.net/memory01/article/details/105094136 Makefile 新增一行 ccflags-y = -Wno-declaration-after-statement -mpopcnt -I/usr/lib/gcc/x86_64-linux-gnu/5/include 关于ffmpeg 的总结(一个linux 下 集 屏幕录像录音,音频视频转换,合并音频视频文件,格式转换于一身的命令) Linux C语言头文件搜索路径 https://blog.51cto.com/u_5513510/6626837 |
该文章会让人对ffmpeg有个整体的认识 FFmpeg+SDL播放器开发实践:解析、解码、渲染全流程详解 |
https://www.aishelltech.com/aishell_4
https://github.com/RVC-Boss/GPT-SoVITS
webui.py
gradio
|
|
|
|
|
|
|
|
Alsa 调试中篇:工具篇