资源收集

 
推荐的是VLC这款开源媒体播放器。
它以其稳定的性能、广泛的兼容性和易用性赢得了广大用户的好评和喜爱。

第一款是FFmpeg,
这是一款功能强大的多媒体处理工具包,支持多种音频和视频格式,可以让您轻松转换和剪辑视频。

第二款是Gstreamer,这是一个用于开发高级多媒体应用的库,提供了一套完整的媒体元素和数据流处理能力。

第三款是MPlayer,这是一款免费的开源媒体播放器,支持各种音频和视频格式,还可以实现多任务播放。

第四款是Xbmc,这是一款专为电视和移动设备设计的娱乐中心,可以播放各种类型的媒体文件。

最后一款是Plex Media Player,这是一款功能齐全的家庭娱乐解决方案,支持各种音频和视频格式,还可以实现跨平台同步。

    

 

JamTools是一个跨平台的小工具集类软件,支持Windows7/8/10/11、Macos、ubuntu系统(其他系统可以直接从源码编译打包)。
包含了(滚动/区域)截屏、录屏、文字识别、多种语言互译、多媒体格式转换、鼠标键盘动作录制播放、局域网文件传输、聊天机器人等功能,完全开源! 

https://github.com/fandesfyf/JamTools

    
ffmpeg·ubantu

 
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 调试中篇:工具篇