如何使用ffmpeg的avdevice库将音频输出播放到设备?

时间:2020-10-15 03:35:59

标签: ffmpeg

如何使用ffmpeg的avdevices c库将音频输出到音频设备(特别是alsa)。我所能找到的只是its doxygen,而我能拿出的唯一有用的东西就是报价

” libavdevice中的(de)混合器是AVFMT_NOFILE类型的(它们使用自己的I / O函数)。传递给avformat_open_input()的文件名通常不引用实际存在的文件,但是具有一些特殊的设备-具体含义-例如,对于xcbgrab,它是显示名称。”

但是我不知道在哪里指定AVFMT_NOFILE以及在哪里指定要使用的设备。我知道如何获取“ AVOutputFormat”指针,但是该如何处理呢?

更新: 所以现在我找到了函数'avformat_alloc_output_context2',所以我的代码如下:

AVPacket pkt = av_packet_alloc();
avformat_alloc_output_context2(&ofmt_ctx, NULL, "alsa", NULL);
avformat_new_stream(ofmt_ctx, NULL);

while(av_read_frame(fmt_ctx, pkt) == 0){
    av_write_frame(ofmt_ctx, pkt);
}

fmt_ctx是输入文件的AVFormatContext。

但是我仍然收到错误消息' [alsa @ 0x555daf361140]无效的数据包流索引:1 '我缺少什么?

0 个答案:

没有答案
相关问题