it-swarm.dev

ffmpeg에서 무음 오디오 추가

Ffmpeg를 사용하여 자동 오디오 트랙을 MOV 파일에 추가하려고합니다.

비디오보다 긴 자동 오디오 트랙을 만들었으며 ffmpeg와 함께 -shortest 옵션을 사용하려고합니다.

SoX v14.3.1을 사용하여 wav 파일을 생성하기 위해 이것을 실행합니다.

sox -n -r 44100 -b 16 -c 2 -L silence.wav trim 0.0 60.000

# -n  = Sox's null file
# -r = sample rate 
# -b = bits per sample
# -c = num of channels
# -L = little endian
# filename
# trim - is an effect, args start and length.

내 기본 ffmpeg 명령은 다음과 같습니다.

ffmpeg -shortest \
-i silence.wav -acodec pcm_s16le \
-i vid_no_sound.mov -vcodec copy vid_with_sound.mov

이것의 결과는 다음과 같습니다.

ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
  built on Aug 27 2012 13:11:25 with gcc 4.4.5
  configuration: --extra-cflags=-static --prefix=/root/ffmpeg_build/src/ffmpeg-0.11.1 --enable-bzlib --enable-gnutls --enable-libfreetype --enable-libmp3lame --enable-libdc1394 --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-openssl --enable-zlib --enable-gpl --enable-nonfree --enable-version3
  libavutil      51. 54.100 / 51. 54.100
  libavcodec     54. 23.100 / 54. 23.100
  libavformat    54.  6.100 / 54.  6.100
  libavdevice    54.  0.100 / 54.  0.100
  libavfilter     2. 77.100 /  2. 77.100
  libswscale      2.  1.100 /  2.  1.100
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[wav @ 0x29ab2e0] max_analyze_duration 5000000 reached at 5015510
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'silence.wav':
  Duration: 00:01:00.00, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'vid_no_sound.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2012-07-25 13:41:44
  Duration: 00:00:14.50, start: 0.000000, bitrate: 27457 kb/s
    Stream #1:0(eng): Video: qtrle (rle  / 0x20656C72), rgb24, 1920x1080, 27450 kb/s, SAR 1920:1920 DAR 16:9, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Metadata:
      creation_time   : 2012-07-25 13:41:44
      handler_name    : Apple Alias Data Handler
    Stream #1:1(eng): Data: none (tmcd / 0x64636D74)
    Metadata:
      creation_time   : 2012-07-25 13:42:06
      handler_name    : Apple Alias Data Handler
      timecode        : 00:00:00:00
File 'vid_with_sound.mov' already exists. Overwrite ? [y/N] y
auto-inserting filter 'auto-inserted resampler 0' between the filter 'src' and the filter 'aformat'
[aresample @ 0x2ab3b00] chl:stereo fmt:s16 r:44100Hz -> chl:stereo fmt:flt r:44100Hz
[NULL @ 0x2994320] Codec is experimental but experimental codecs are not enabled, try -strict -2
Output #0, mov, to 'vid_with_sound.mov':
    Stream #0:0(eng): Video: qtrle (rle  / 0x20656C72), rgb24, 1920x1080 [SAR 1920:1920 DAR 16:9], q=2-31, 27450 kb/s, 24 fps, 90k tbn, 24 tbc
    Metadata:
      creation_time   : 2012-07-25 13:41:44
      handler_name    : Apple Alias Data Handler
    Stream #0:1: Audio: none, 44100 Hz, stereo, flt, 128 kb/s
Stream mapping:
  Stream #1:0 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (pcm_s16le -> aac)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height

-strict -2 명령 줄에서 어디에 넣을지 잘 모르겠지만 제안한대로.

나는 다른 일을 시도하고 ffmpeg 문서를 읽는 데 2 ​​시간을 보냈지 만 여전히 붙어 있습니다.

자동 오디오 트랙을 mov 파일에 어떻게 추가합니까?

35
jon

anullsrc 오디오 필터

ffmpeg를 사용하여 자동 오디오를 생성하고 한 번에 비디오와 결합 할 수 있습니다. 이 예에서는 anullsrc 오디오 필터를 사용하여 샘플 속도가 44100 인 스테레오 무음 오디오를 생성합니다.

ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -i video.mov \
  -shortest -c:v copy -c:a aac output.mov
  • channel_layout=stereo:sample_rate=44100이 기본값이지만 이러한 옵션을 사용하는 방법의 예로 포함 시켰습니다.

기존 오디오 무시

비디오 입력 파일에 무시하려는 오디오가있는 경우 -map 옵션은 기본 스트림 선택 동작을 재정의합니다.

ffmpeg -f lavfi -i anullsrc -i video.mov -shortest -c:v copy -c:a aac \
  -map 0:a -map 1:v output.mov
  • -map 0:a -map 1:v는 첫 번째 입력 (0) 오디오 (a)를 사용하고 두 번째 입력 (1) 동영상 (v)을 사용하십시오.

노트

  • 이 예제는 비디오를 ( 스트림 복사 스트리밍하므로 다시 인코딩되지 않습니다 (예 : "복사 및 붙여 넣기").

  • 항상 ffmpeg를 사용하는 것이 좋습니다. 최근 빌드에 대한 링크는 FFmpeg 다운로드 페이지에 있거나 단계별 안내를 참조하십시오. ffmpeg 를 컴파일하십시오.

  • ffmpeg이 (가) 오래된 경우 -strict experimental 쓰다 -c:a aac.

89
llogan

"검색 엔진"을 통해 다른 사람이 여기에 오는 경우 latest ffmpeg 명령은 다음과 같습니다. MP4 (H264/AVC)에서 작동합니다.

ffmpeg -f lavfi -i aevalsrc = 0 -i 입력 .mp4 -vcodec 복사 -acodec aac -map 0 : 0 -map 1 : 0-최단-엄격한 실험 -y out.mp4

14
PAStheLoD

이미지에서 비디오를 만들거나 이미지를 비디오로 변환 한 다음 ffmpeg를 사용하여 매끄러운 오디오를 추가하십시오.

Ffmpeg에서 anullsrc 오디오 소스 필터를 사용할 수 있습니다. 5.1 채널, 48000Hz 샘플링 속도, 10 초 무음 비디오 파일을 이미지에서 만드는 예 :

ffmpeg -loop 1 -i img002.jpg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 10 -c:v libx264 -t 10 -pix_fmt yuv420p -vf scale=480:320 -y output.mp4

img002.jpg : 입력 이미지 파일

-i anullsrc : 무음 오디오 추가

-t 10 : 초

scale = 480 : 320 : 비디오 해상도 너비 = 420 및 높이 = 320

-y : 기존 출력 파일을 덮어 씁니다.

output.mp4 : 출력 파일

3
Rahul Chauhan

주문이 중요합니다. 위의 sox 명령과 ffmpeg 명령을 시도했지만 작동합니다.

ffmpeg -shortest -i silence.wav -acodec pcm_s16le -i out.mov -vcodec copy -strict -2 vid_with_sound.mov
1
av501