FFmpeg amerge 및 볼륨 사용자 정의 단순화


9

오디오 볼륨을 사용자 지정하고 비디오 볼륨을 사용자 지정하고 amerge오디오 및 비디오를 최종 출력으로 사용자 지정하는 3 개의 연속 FFmpeg 명령이 있습니다 .

첫 번째 명령, mp3 파일의 볼륨 레벨 편집

  ffmpeg -i music.mp3 -vol 100 music2.mp3

두 번째 명령, mp4 파일의 볼륨 레벨 편집

ffmpeg -i video.mp4 -vol 200 video2.mp4

세 번째 명령, 병합 music2.mp3video2.mp4

ffmpeg -i music2.mp3 -i ruby.mp4 -filter_complex \
    "[0:a][1:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
    -map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest video2.mp4

하나의 프로세스 / 명령으로 프로세스를 단순화하고 분류하는 쉬운 방법이 있습니까?

나는 이것을 시도했지만 작동하지 않았다.

ffmpeg -i music.mp3 -vol 100 -i video.mp4 -vol 200 -filter_complex \
    "[0:a][1:a]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
    -map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4

오류 로그 :

    ffmpeg version N-60332-ga0d5204 Copyright (c) 2000-2014 the FFmpeg developers
  built on Feb  4 2014 21:31:51 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid
  libavutil      52. 63.100 / 52. 63.100
  libavcodec     55. 49.101 / 55. 49.101
  libavformat    55. 29.101 / 55. 29.101
  libavdevice    55.  7.100 / 55.  7.100
  libavfilter     4.  1.102 /  4.  1.102
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Input #0, mp3, from 'adele.mp3':
  Metadata:
    title           : Chasing Pavements
    artist          : Adele
    track           : 3
    album           : 19 (Deluxe Edition)
    date            : 2008
  Duration: 00:03:30.55, start: 0.025056, bitrate: 160 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 159 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p(pc), 600x600 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      title           : 
      comment         : Other
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'Ruby on Rails 101- What is Ruby on Rails_.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2013-12-21 07:56:20
  Duration: 00:05:42.40, start: 0.000000, bitrate: 1214 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1020 kb/s, 30 fps, 30 tbr, 60 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      creation_time   : 2013-12-21 07:56:23
      handler_name    : IsoMedia File Produced by Google, 5-11-2011
[Parsed_pan_1 @ 0x7fcd23d00680] This syntax is deprecated. Use '|' to separate the list items.
-vol has been deprecated. Use the volume audio filter instead.
-vol is forwarded to lavfi similarly to -af volume=0.781250.
-vol has been deprecated. Use the volume audio filter instead.
-vol is forwarded to lavfi similarly to -af volume=0.781250.
File 'output.mp4' already exists. Overwrite ? [y/N] y
[Parsed_amerge_0 @ 0x7fcd23d00000] No channel layout for input 1
    Last message repeated 1 times
[AVFilterGraph @ 0x7fcd23c0f5a0] The following filters could not choose their formats: Parsed_amerge_0
Consider inserting the (a)format filter near their input or output.

관련이 있다고 생각되는 부분 만이 아니라 전체 커트되지 않은 명령 행 출력을 제공하십시오. 감사.
slhck

예, 내 게시물을 수정했습니다.
emfolorncynosure

답변:


14

그들을 묶는 하나의 명령

콘솔 출력에서 ​​언급 한대로 이전 옵션 대신 volume오디오 필터 를 사용하여 하나의 명령으로이 작업을 수행 할 수 있습니다 -vol.

ffmpeg -i music.mp3 -i videowithaudio.mp4 -filter_complex \
"[0:a]volume=0.390625[a1];[1:a]volume=0.781250[a2]; \
 [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
-map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4

의 값을 조정해야 할 수도 있습니다 volume.


잠재적 인 문제

구문이 더 이상 사용되지 않습니다

[Parsed_pan_4 @ 0x244c980] This syntax is deprecated. Use '|' to separate the list items.

걱정하지 마십시오.이 메시지는 무시해도됩니다.

형식을 선택할 수 없습니다

[AVFilterGraph @ 0x26549a0] The following filters could not choose their formats: Parsed_amerge_3
Consider inserting the (a)format filter near their input or output.

에 대한 모든 입력의 샘플링 속도와 형식이 동일해야합니다 amerge. 서로 다른 경우 aformat오디오 필터 를 사용해야합니다 .

ffmpeg -i music.mp3 -i videowithaudio.mp4 -filter_complex \
"[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; \
 [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.8[a2]; \
 [a1][a2]amerge,pan=stereo:c0<c0+c2:c1<c1+c3[out]" \
-map 1:v -map "[out]" -c:v copy -c:a libfdk_aac -shortest output.mp4

1
안녕하세요 @LordNeckbeard, 샘플을 [AVFilterGraph @ 0x7f951b42a080] The following filters could not choose their formats: Parsed_amerge_5 Consider inserting the (a)format filter near their input or output.사용해도 여전히 말합니다 aformat.
emfolorncynosure

동일한 사용 사례가 있고 "입력 1에 채널 레이아웃이 없습니다"오류가 발생합니다
Lukasz Madon

@lukas ffmpeg명령 을 보여주고 콘솔 출력을 완성 할 수 있습니까 ? 페이스트 빈 서비스를 사용하고 링크를 제공 할 수 있습니다.
llogan

@LordNeckbeard gist.github.com/lukasz-madon/508d76d6fd5ff3635494 이 libfdk_aac 뿌려 동일한 명령
루카스 마돈

@lukas 최신 빌드 를 다운로드 하여 테스트 할 수 있습니까 ? 버전이 오래되었습니다.
llogan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.