2017-05-18 28 views
1

ローランドのUSBデバイスからffmpegでpcmストリームをキャプチャしてwavでラップしようとしています。私が使用しているコマンドラインは次のとおりです。サンプルフォーマットを設定できません[FFMPEG]

ffmpeg -f alsa -acodec pcm_s32le -ac 2 -ar 48000 -i hw:2,0 out.wav 

ハードウェアの設定に準拠しています。 Audacityでストリームをキャプチャすることもできます。問題は、FFMPEGが"サンプルフォーマットエラーを設定できません"をスローすることです。何が起きているのか、どうすればこの問題を解決できるのでしょうか?

ありがとうございます。

FFMPEGのOUTPUT

[email protected]:~$ ffmpeg -f alsa -acodec pcm_s32le -ac 2 -ar 48000 -i hw:2,0 out.wav 
    ffmpeg version N-85548-g3390a2b Copyright (c) 2000-2017 the FFmpeg developers 
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609 
     configuration: --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libvorbis --enable-libopus --enable-ffplay 
     libavutil  55. 61.100/55. 61.100 
     libavcodec  57. 92.100/57. 92.100 
     libavformat 57. 72.101/57. 72.101 
     libavdevice 57. 7.100/57. 7.100 
     libavfilter  6. 84.101/6. 84.101 
     libswscale  4. 7.101/4. 7.101 
     libswresample 2. 8.100/2. 8.100 
     libpostproc 54. 6.100/54. 6.100 
    [alsa @ 0x34b6780] cannot set sample format 0x10008 10 (Invalid argument) 
    hw:2,0: Input/output error 

ARECORD OUTPUT:

[email protected]:~$ arecord -l 
**** List of CAPTURE Hardware Devices **** 
card 1: PCH [HDA Intel PCH], device 0: ALC3236 Analog [ALC3236 Analog] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 
card 2: DUOCAPTURE [DUO-CAPTURE], device 0: USB Audio [USB Audio] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 

はDeimus助けた後、私はarecordに私のカードの設定をチェックし、FFMPEGの正しいラインを使用(私が変更されていることに注意してくださいハードウェアの周波数を取得します)。

ARECORD OUTPUT

[email protected]:~$ arecord --dump-hw-params -D hw:2,0 
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono 
HW Params of device "hw:2,0": 
-------------------- 
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED 
FORMAT: S24_3LE 
SUBFORMAT: STD 
SAMPLE_BITS: 24 
FRAME_BITS: 48 
CHANNELS: 2 
RATE: 44100 
PERIOD_TIME: (1020 1981429) 
PERIOD_SIZE: [45 87381] 
PERIOD_BYTES: [270 524286] 
PERIODS: [2 1024] 
BUFFER_TIME: (2040 3962858) 
BUFFER_SIZE: [90 174762] 
BUFFER_BYTES: [540 1048572] 
TICK_TIME: ALL 
-------------------- 
arecord: set_params:1233: Sample format non available 
Available formats: 
- S24_3LE 

正しいコマンドライン

ffmpeg -f alsa -acodec pcm_s24le -ac 2 -ar 44100 -i hw:2,0 out.wav 
+1

完全なエラーメッセージを入れて、より読みやすい – deimus

+1

であるためにあなたの質問をフォーマットしてくださいされているデバイスは、32ビットのサンプルをサポートしていることをあなたは確かにいますか? –

+0

私は確かではありませんが、24ビットサンプリングで試してみましたが、同じエラーが発生します。 32は、大胆さが私を捉えたときにそれを示すものです。 – caiomcg

答えて

3

サポートサンプルフォーマットをチェックするarecordツールの--dump-hw-paramsオプションを使用します。 arecord

ため

Manページその後、フォーマットなどをspecficyするffmpeg-sample_fmtオプションを使用することができます。 ffmpegのためのs32

オーディオオプションhere

+0

パーフェクト!それが私が必要とする情報です。私のデバイスのためにarecordによって提案されたフォーマットは次のとおりです:S24_3LEそしてそれは24bitを扱います。私は私のデバイススイートにコマンドラインを調整します。どうもありがとうございました。 – caiomcg

関連する問題