- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 FFmpeg 中捕获 48 kHz 的音频,代码如下:
AVInputFormat* ifmt = av_find_input_format("dshow");
CHECK_POINTER_RETURN_VALUE(ifmt, false)
pFmtCtx = avformat_alloc_context();
CHECK_POINTER_RETURN_VALUE(pFmtCtx, false)
AVDictionary *param = nullptr;
std::string sr = std::to_string(48000);
av_dict_set(¶m, "sample_rate",sr.c_str(), 0);
int error = avformat_open_input(&pFmtCtx, ffName.c_str(), ifmt, ¶m);
if (error != 0) {
char buf[2014];
av_strerror(error, buf, 1024);
LOG(ERROR)<<"open audio device failed,err is "<<buf;
return false;
}
但是“avformat_open_input”返回失败,err 显示“I/O 错误”,如果采样率为 44100,则一切正常。
最佳答案
这是 FFmpeg 使用的 DirectShow API 的问题。已通过对 FFmpeg 的更改解决:https://github.com/FFmpeg/FFmpeg/commit/d9a9b4c877b85fea5a5bad74c3d592a756047f79
具体来说,DirectShow 没有充分描述 AUDIO_STREAM_CONFIG_CAPS 的音频设备功能。当音频设备同时支持 44.1 kHz 和 48 kHz 作为时钟倍数时。 WAVEFORMATEX在 AM_MEDIA_TYPE 内必须改为使用。
关于ffmpeg - 使用 FFmpeg 和 DirectShow(dshow 输入)捕获 48 kHz 音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68298723/
我使用了以下命令: ffmpeg -f dshow -list_devices true -i dummy 列出设备,但如果设备名称不是英语,则 FFmpeg 显示的设备名称与实际不同。我该如何解决这
我想问是否有任何选项可以在 Windows 上获取 dshow 设备格式列表。 例如在 Linux 上,我可以通过以下方式在 Linux 上获取设备格式列表 v4l2-ctl -i /dev/vide
我的桌面上安装了 2 个网络摄像头 - Intex USB 2.0 和 Logitech 网络摄像头 C170。我正在使用libvlc .net wrapper我想流式传输第二个网络摄像头。 我正在使
命令(PS == Windows PowerShell): PS D:\> ffmpeg -f dshow -show_video_device_dialog True -video_device_s
我用 mingw 4.9.2 @ Win7Prof64 构建了 OpenCV WITH_FFMPEG 和 WITH_DSHOW 的 CMake 开关打开。 当我使用 VideoCapture (fil
我在尝试以可接受的误差幅度同步我的音频和视频时遇到了一个小问题。这是我的命令: ffmpeg -y -thread_queue_size 9999 -indexmem 9999 -guess_layo
有没有一种可靠的方法可以通过编程区分多个摄像头?我枚举 CLSID_VideoInputDeviceCategory,然后在每个 IMoniker 上获取 DisplayName。我发现,一些相机将它
我正在尝试使用 DirectShow 做一些事情来播放音频。我有一个头文件,在顶部是: #pragma once #include #pragma comment(lib, "strmiids.li
我目前正在 VB.net 中使用屏幕录像机,我需要 ffmpeg 来录制我的屏幕。我现在有以下 ffmpeg 代码: ffmpeg.exe -f dshow -framerate 30 -i vide
我们通过指定命名管道作为视频帧的输入来录制视频,如下所示: ffmpeg -r 30 -f rawvideo -pix_fmt bgra -s 640x480 -i namedPipe [... ou
USB网络摄像头还可以,但我要使用的设备是一个名为“无他伴侣(竖屏)”的“虚拟摄像头”,其视频来自Android或iOS等智能手机。将手机连接到 PC,在手机上运行一个应用程序,然后运行一个 PC 客
尝试使用 CreateProcess 启动 ffmpeg。 问题: 1) 不能在命令行中使用dshow。 2) 使用 STDIN 管道的 RTMP 流不显示流。 问题: 1) 与 CreateProc
我正在尝试在 C++ 程序中使用带有 FFmpeg 的 DirectShow 设备。我正在使用命令 .\vcpkg install ffmpeg[nvcodec]:x64-windows 使用 vcp
我试图弄清楚如何在我的 C++ 程序中实时设置我的声音剪辑播放的音量,并做一些事情,比如当 2 个对象彼此靠近时增加声音的音量。现在,我正在使用“DShow.h”以及“strmiids.lib”,并且
我终于有时间升级我的视频捕捉类(class)了。我想比较一下 VFW(到目前为止我一直在使用的)和 DirectShow。正如预期的那样,DirectShow 更快,但是当我添加信息文本时,AnsiS
我尝试在 FFmpeg 中捕获 48 kHz 的音频,代码如下: AVInputFormat* ifmt = av_find_input_format("dshow"); CHECK_POI
我是一名优秀的程序员,十分优秀!