android - 从适用于 Android 的 FFMPEG 命令行版本访问网络摄像头麦克风

标签 android command-line ffmpeg webcam audio-streaming

我目前正在 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 版本有两种格式 - alsavideo4linux 在我的 FFMPEG 版本中可用。

使用的命令是 ./ffmpeg -formats 输出将在输出列表中的某处显示为声音的 DE alsa ,这意味着 alsa 可用于解码和编码。同样,对于视频部分, D video4linux - 意味着video4linux 可用于解码来自网络摄像头的摄像头部分的视频。

。因为 alsa 不可用,命令 ./ffmpeg -f alsa... 总是给出语法错误

我想教训是检查您的 ffmpeg 构建包含您需要的所有功能,以确保它们在您尝试使用之前就存在。

“谢谢”所有查看该问题的人!

关于android - 从适用于 Android 的 FFMPEG 命令行版本访问网络摄像头麦克风,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12047493/

相关文章:

c# - 跨平台 C# 媒体 API

java - 将 C++ 代码构建到共享库中

android - 在 android 中的谷歌地图上设置缩放级别

android - 文件资源管理器在 Eclipse 中始终为空

android - 膨胀自定义按钮类时出错。 NoSuchMethodException

带偏移量的 Linux 头/尾

python - 转换用户上传的视频文件并使用 django、python 提供服务

android - 私有(private)内容提供者有什么用?

php - 使用 Symfony Process 解析命令行输出

php - 无论我在哪个目录中,如何在 Windows 命令行中运行 phpunit 命令?