标签: audio-recording

如何在gstreamer中录制音频和视频

我是 gstreamer 的新手,我想录制音频和视频并将其保存为 .mp4 格式,使用网络摄像头录制视频并使用 MIC 录制音频这是我的管道

gst-launch-1.0 -e v4l2src !队列 !x264enc!h264解析!队列 !qtmux0。阿尔萨斯RC!'音频/x-raw,速率=44100,深度=24'!音频转换!音频重采样!沃阿森克!aacparse!qtmux!文件接收器位置=test.mp4

当我执行它时,视频仅录制 10 秒,音频甚至没有录制,它给出了一些消息,例如

警告:来自元素 /GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:无法足够快地录制音频附加调试信息:gstaudiobasesrc.c(866):gst_audio_base_src_create():/GstPipeline:pipeline0/GstAlsaSrc:alsasrc0:删除了 425565 个样本。这很可能是因为下游无法跟上并且消耗样本太慢。

帮助我克服这个问题提前谢谢你

c audio audio-recording gstreamer video-recording

4
推荐指数
1
解决办法
9654
查看次数

无法使用声音设备录制声音

我无法sounddevice在 python 中使用录制音频。此代码之前可以在旧版本的 Mac OS 上运行。

python3代码如下:

import sounddevice as sd
import numpy as np
fs = 48000
duration=5
rec = sd.rec(int(duration * fs), samplerate=fs, channels=1, blocking=True)
print(rec)
Run Code Online (Sandbox Code Playgroud)

输出是

array([[0.],
       [0.],
       [0.],
       ...,
       [0.],
       [0.],
       [0.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

虽然此处并未显示所有值,但我已确认它们全部为零。当声音记录正确时,这些值大部分都是非零的。

我已确认设备设置正确:

sd.default.device # Output is [2, 3]

python3 -m sounddevice
  0 DisplayPort, Core Audio (0 in, 2 out)
  1 DisplayPort, Core Audio (0 in, 2 out)
> 2 MacBook Pro Microphone, Core Audio (1 in, 0 out)
< 3 MacBook …
Run Code Online (Sandbox Code Playgroud)

python audio-recording python-sounddevice

4
推荐指数
1
解决办法
3089
查看次数

Chrome 扩展:在后台 JS 中录制麦克风和扬声器

根据最新更新,在后台 js 中捕获麦克风和扬声器音频以进行实时音频处理的正确方法是什么。我被困在这个我已经尝试了所有媒体记录器 api、记录 js api 和 chrome 桌面捕获,但所有这些都返回麦克风音频。他们都无法捕获扬声器的音频。请提出一种实现此场景的方法

以下是捕获麦克风但不捕获扬声器的示例代码:

var audioChunks;
startRecord.onclick = e => {
  startRecord.disabled = true;
  stopRecord.disabled=false;
  // This will prompt for permission if not allowed earlier
  navigator.mediaDevices.getUserMedia({audio:true})
    .then(stream => {
      audioChunks = []; 
      rec = new MediaRecorder(stream);
      rec.ondataavailable = e => {
        audioChunks.push(e.data);
        if (rec.state == "inactive"){
          let blob = new Blob(audioChunks,{type:'audio/x-mpeg-3'});
          recordedAudio.src = URL.createObjectURL(blob);
          recordedAudio.controls=true;
          recordedAudio.autoplay=true;
          audioDownload.href = recordedAudio.src;
          audioDownload.download = 'mp3';
          audioDownload.innerHTML = 'download';
       }
      }
    rec.start();  
    })
    .catch(e=>console.log(e));
}
stopRecord.onclick = e …
Run Code Online (Sandbox Code Playgroud)

javascript audio-recording google-chrome-extension

4
推荐指数
1
解决办法
1007
查看次数

录音可以在 iOS 模拟器上使用,但不能在实际设备上使用

我用来flutter-sound在我的 flutter 应用程序中录制(然后播放)一些音频。然而,我遇到了一个有趣的问题:在 iOS 模拟器上它可以工作,但在实际的 iOS 设备上我遇到了一个模糊的错误。两者都在相同版本的 iOS (15.4) 上运行。

这是启动和停止录制/播放的代码,很简单:

Future<void> startRecording(GlobalState curState) async {
    setState(() {
      recording = true;
    });
    curState.startRecording();
    Directory directory = Directory(pathToAudio);
    if (filePathText.isNotEmpty && File(filePathText).existsSync()) {
      File(filePathText).deleteSync();
    }
    if (!directory.existsSync()) {
      directory.createSync();
    }
    await _recordingSession.startRecorder(
      toFile: (filePathName()),
      codec: (Platform.isIOS ? Codec.pcm16WAV : Codec.aacMP4),
      audioSource: AudioSource.microphone,
    );
  }

  Future<void> stopRecording(GlobalState curState) async {
    setState(() {
      recording = false;
    });
    String? fileURL = await _recordingSession.stopRecorder();
    print("the file is recorded!!!");
    print("FILEPATH:");
    print(fileURL);
    curState.stopRecording();
    if (fileURL …
Run Code Online (Sandbox Code Playgroud)

audio-recording ios flutter

4
推荐指数
1
解决办法
2869
查看次数

将范围-1的浮点数转换为1的快速方法是短的?

我需要重复将1024+连续4字节浮点数(范围-1到1)转换为2字节短路(范围-32768到32767)并写入磁盘.

目前我通过循环执行此操作:

short v = 0;
for (unsigned int sample = 0; sample < length; sample++) 
{
    v = (short)(inbuffer[sample * 2] * 32767.0f);
    fwrite(&v, 2, 1, file);
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但浮点计算和循环是昂贵的.有什么办法可以优化吗?

c audio objective-c audio-recording

3
推荐指数
1
解决办法
2540
查看次数

多个AVAudioRecorder实例

我正在开发一个记录声音的应用程序.此外,我希望用户能够用自己的声音评论某些情况.我认为配置一个音频会话并创建两个具有不同文件URL的AVAudioRecorder实例就足够了.但这不起作用,第二个录音机确实创建了它的音频文件,但它没有录制任何声音.

有谁知道如何实现两个实际在一台设备上工作的AVAudioRecorder实例?

仅使用一个AVAudioRecorder进行录制,但使用两者都不起作用.

我有一个解决方法,但这是我想要避免的一堆代码......

谢谢!

objective-c audio-recording avaudiorecorder

3
推荐指数
1
解决办法
1366
查看次数

如何以编程方式将录制的音频文件保存在另一个文件夹中?

我正在尝试将录制的音频文件保存在我想要的文件夹中,而不是默认文件夹.但不知怎的,我没有这样做.

我的代码:

Intent recordIntent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
Uri mUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "/Record/sound_"+ String.valueOf(System.currentTimeMillis()) + ".amr"));
recordIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);
startActivityForResult(recordIntent, RESULT_OK);
Run Code Online (Sandbox Code Playgroud)

它确实调用了录音机应用程序.并且当我按下停止按钮时,它返回到我的应用程序并出现一个吐司,说它已保存.但是,而不是保存在我的记录文件夹中,它保存在默认文件夹中.

我意识到logcat中有错误信息:

01-29 01:34:23.900: E/ActivityThread(10824): Activity com.sec.android.app.voicerecorder.VoiceRecorderMainActivity has leaked ServiceConnection com.sec.android.app.voicerecorder.util.VRUtil$ServiceBinder@405ce7c8 that was originally bound here
Run Code Online (Sandbox Code Playgroud)

当我调用相机应用程序时,我不确定代码是否有效.

android audio-recording voice-recording

3
推荐指数
1
解决办法
1万
查看次数

在android中记录调用为什么这不起作用

我正在从MainActivity启动一项服务,该服务无限期地运行以查找传入和传出的记录.

为什么示例"switch-case"不起作用?

没有错误发生,但我只能记录每个传入和传出.

录制呼叫后服务将被终止,它将被重新创建START_STICKY但永远不会开始.

请帮忙.提前致谢!


是否还有其他代码记录android中的传入和传出呼叫?

package com.exampled.demoserv;

import java.io.File;
import java.io.IOException;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;


public class ParentalService extends Service 
{
    @Override
    public void onCreate()
    {
        //Toast.makeText(getApplicationContext(), "Service Created", Toast.LENGTH_SHORT).show();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        // TODO Auto-generated method stub
        //Toast.makeText(getApplicationContext(), "Subu's Monitoring sTARTED", Toast.LENGTH_SHORT).show();
        startMonitor();
        return START_STICKY_COMPATIBILITY;
    }

    @Override
    public IBinder onBind(Intent arg0)
    { …
Run Code Online (Sandbox Code Playgroud)

android audio-recording switch-statement call-recording

3
推荐指数
1
解决办法
6929
查看次数

关于音频编解码器术语的定义

当我学习Cocoa Audio Queue文档时,我在音频编解码器中遇到了几个术语.在名为AudioStreamBasicDescription的结构中定义.

以下是术语:
1.采样率
2.数据包
3.帧
4.通道

我知道sample ratechannel.我是如何被其他两个混淆的.其他两个术语是什么意思?

您也可以通过示例回答这个问题.例如,我有一个双通道PCM-16信号源,采样率为44.1kHz,这意味着每秒有2*44100 = 88200字节的PCM数据.但如何packetframe

提前谢谢你!

audio codec pcm audio-recording audio-streaming

3
推荐指数
1
解决办法
2124
查看次数

如何选择外接麦克风

我已成功为iOS编写了一个使用AVAudioRecorder的简单录制应用程序.到目前为止它可以与内置麦克风或外接麦克风配合使用,如果它插入耳机插孔.如何选择通过USB"闪电端口"连接的音频源?我是否需要深入了解Core Audio?

具体来说,我正在尝试连接Apogee Electronics ONE USB音频接口.

core-audio audio-recording ipad ios swift3

3
推荐指数
1
解决办法
2093
查看次数