我目前正在 Android 盒子上使用命令行版本的 FFMPEG 测试来自网络摄像头的音频和视频流。我在访问网络摄像头麦克风时遇到问题
以 Ubuntu 作为引用,确定可用录音设备的正确命令是 arecord -L 。不幸的是 arecord -L 不适用于 Android 盒子
当前用于访问网络摄像头麦克风的命令选项 alsa 是 ffmpeg -f alsa -alsa_device_name.. 和 oss 之前的选项也不起作用,即 ffmpeg -f -oss.. 也不起作用。
/dev/snd 中显示的列出的音频设备将网络摄像头的麦克风部分显示为 pcmC3D0c 和 controlC3。我知道这一点的原因是,如果我拔掉网络摄像头,这些值就会从目录列表中消失。
有没有人尝试在 Android 盒子上使用 ffmpeg 成功访问网络摄像头的麦克风部分?
如何制定访问网络摄像头麦克风的命令的正确格式。
请注意,我可以使用 ffmpeg 访问 Ubuntu PC 上的音频和视频,因此我知道这两种设备都可以工作
最佳答案
我终于明白我做错了什么了。问题在于我构建的 FFMpeg
要使用网络摄像头的摄像头或麦克风部分,需要使用 FFMPEG 中的适当格式来调用设备。摄像头部分由 video4linux2 控制,而网络摄像头的麦克风部分由 alsa 控制。
我应该检查并确保我的 FFMPEG 版本有两种格式 - alsa 和 video4linux 在我的 FFMPEG 版本中可用。
使用的命令是 ./ffmpeg -formats 输出将在输出列表中的某处显示为声音的 DE alsa ,这意味着 alsa 可用于解码和编码。同样,对于视频部分, D video4linux - 意味着video4linux 可用于解码来自网络摄像头的摄像头部分的视频。
。因为 alsa 不可用,命令 ./ffmpeg -f alsa... 总是给出语法错误
我想教训是检查您的 ffmpeg 构建包含您需要的所有功能,以确保它们在您尝试使用之前就存在。
“谢谢”所有查看该问题的人!
关于android - 从适用于 Android 的 FFMPEG 命令行版本访问网络摄像头麦克风,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047493/