我目前正在测试网络摄像头的音频和视频流,在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上的音频和视频,因此我知道这两个设备都能正常工作
答案 0 :(得分:1)
我终于弄清楚我做错了什么。问题出在我的FFMpeg构建上。
要使用网络摄像头的摄像头或麦克风部分,需要使用FFMPEG中的相应格式呼叫设备。相机部分由 video4linux2 控制,而网络摄像头的麦克风部分由 alsa 控制。
我应该检查并确保我的FFMPEG版本在我的FFMPEG版本中都有两种格式 - alsa 和 video4linux 。
使用的命令是 ./ffmpeg -formats 输出将在输出列表中的某处显示为声音的 DE alsa ,这意味着 alsa 可用于解码和编码。同样对于视频部分, D video4linux - 意味着 video4linux 可用于装饰来自网络摄像头摄像头部分的视频。
。因为 alsa 不可用,命令 ./ ffmpeg -f alsa ... 总是给出语法错误
我想这课是检查你的ffmpeg构建了你需要的所有功能,以确保它们在你尝试使用它之前就已存在。
“谢谢”所有看过这个问题的人!