스테레오 스트림에서 채널을 매핑하고 음소거하는 방법은 무엇입니까? [ffmpeg]


0

ffmpeg 매뉴얼 페이지에서 -map_channel을 사용하여 채널을 분할 / 음소거 할 수 있지만 스트림에 문자 그대로 2 채널이 포함되어 있지 않으면 맵이 작동하지 않습니다.

01.mp3 :

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s

ffmpeg -threads 1 -i 01.mp3 -map_channel 0.0.1 -map_channel -1 01R.mp3 작동하지 않을 것입니다 :

Stream #0:0 -> #0:0 [ch: 1 M] (mp3 -> libmp3lame)

그러나 01R.mp3는 여전히 L 및 R 채널을 모두 포함하는 스테레오 스트림입니다.

mp3를 wav로 변환하면 이중 채널 스트림이됩니다.

ffmpeg -threads 1 -i 01L.mp3 01LR.wav
    Stream mapping:
      Stream #0:0 -> #0:0 (mp3 -> pcm_s16le)
ffprobe 01LR.wav
Input #0, wav, from '01LR.wav':
  Duration: 00:40:20.42, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s

wav 파일을 음소거 / 분할 할 수 있습니다.

스테레오 스트림을 2 채널 WAV 파일로 먼저 변환하지 않고 어떻게 음소거 / 분할 할 수 있습니까?

감사

@LordNeckbeard에 따라 [편집] :

$ ffmpeg -threads 1 -i 01.mp3 -map_channel 0.0.1 -map_channel -1 01R.mp3
ffmpeg version 0.10.12-7:0.10.12-1~precise1 Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 26 2014 09:49:36 with gcc 4.6.3
  configuration: --arch=amd64 --disable-stripping --enable-pthreads --enable-runtime-cpudetect --extra-version='7:0.10.12-1~precise1' --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
  libavutil      51. 35.100 / 51. 35.100
  libavcodec     53. 61.100 / 53. 61.100
  libavformat    53. 32.100 / 53. 32.100
  libavdevice    53.  4.100 / 53.  4.100
  libavfilter     2. 61.100 /  2. 61.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0.  6.100 /  0.  6.100
  libpostproc    52.  0.100 / 52.  0.100
[mp3 @ 0x115f6e0] max_analyze_duration 5000000 reached at 5015510
Input #0, mp3, from '01.mp3':
  Metadata:
    title           : VTS_01_1
    author          : BT
    copyright       : Happy@2006
    comment         : 
    encoder         : Lavf53.32.100
  Duration: 00:40:20.42, start: 0.000000, bitrate: 128 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
Output #0, mp3, to '01R.mp3':
  Metadata:
    TIT2            : VTS_01_1
    author          : BT
    TCOP            : Happy@2006
    comment         : 
    TSSE            : Lavf53.32.100
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 [ch: 1 M] (mp3 -> libmp3lame)
Press [q] to stop, [?] for help
Truncating packet of size 1024 to 189ate= 128.0kbits/s    
Truncating packet of size 1024 to 1
size=   37820kB time=00:40:20.45 bitrate= 128.0kbits/s    
video:0kB audio:37820kB global headers:0kB muxing overhead 0.001381%

[편집 2] :

내가 전술 한 바와 같이 ffmpeg -i 01.mp3 -map_channel 0.0.1 01R.wav또는 ffmpeg -i 01.wav -map_channel 0.0.1 01R.mp3작동합니다. 그러나 ffmpeg -i 01.mp3 -map_channel 0.0.1 01R.mp3작동하지 않습니다.

-ac 1을 추가하여 모노 채널 mp3를 수행하는 방법을 찾았습니다. ffmpeg -i 01.mp3 -ac 1 -map_channel 0.0.1 01R.mp3

그러나 -map_channel -1스테레오 출력 스트림에서 하나의 채널을 음소거 하는 데 여전히 작동하지 않습니다.


ffmpeg첫 번째 명령 의 전체 콘솔 출력을 보여주십시오 .
llogan

콘솔 출력에 감사하지만 원하는 일에 대해 혼란 스럽습니다. 채널을 뮤트하고 스테레오 출력을 원하십니까? 아니면 채널 중 하나를 원하고 모노 출력을 원하십니까?
llogan

스테레오로 채널을 뮤트하거나 하나의 채널을 추출하여 모노 출력을 형성하십시오.
Wang

답변:


0

채널 음소거

채널을 음소거

이 예에서는 스테레오 입력을 사용하고 왼쪽 채널을 음소거합니다. 출력은 스테레오로 유지됩니다.

ffmpeg -i stereo.wav -map_channel -1 -map_channel 0.0.1 output.wav

모노 스테레오 채널

모노 출력에 대한 스테레오 채널

이 예제는 스테레오 입력의 왼쪽 채널에서 모노 출력을 만듭니다.

ffmpeg -i stereo.mp3 -map_channel 0.0.0 left.wav
  • -map_channel 0.0.1대신 올바른 채널을 원하면 사용하십시오 .

또는 팬 오디오 필터를 사용할 수 있습니다 .

ffmpeg -i stereo.m4a -af "pan=1:c0=c0" left.flac
  • pan=1:c0=c1대신 올바른 채널을 원하면 사용하십시오 .

귀하의 답변과 내 게시물에 사용한 명령의 차이점은 무엇입니까? -map_channel이 스테레오 스트림에서 예상대로 작동하지 않습니다. 2 채널 스트림 인 경우에만 작동합니다. 은 -af훨씬 나중에 버전까지 지원되지 않습니다.
Wang

스테레오 스트림으로 -map_channel을 시도하고 mp3로 출력 할 수 있습니까? 내가 wav로 변환 한 다음 mp3로 변환 할 수 있다는 것을 알았지 만 중간 단계를 제거하고 싶습니다.
Wang

@Wang 최근 사용 ffmpeg. 오래된 지점을 지원할 수 없습니다.
llogan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.