2016-12-20 14 views
-1

У меня есть длинная звуковая часть и короткая часть видео, которую я хочу mux вместе.ffmpeg - мультиплексор видео и аудио и обрезка аудио

Я пытаюсь следующей командой мультиплексора:

  1. Video_0-0002.h264 - весь файл (2 секунды удлиненного)
  2. Audio.wav - от 4 до 6 секунд
 
ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -codec:v copy -f mp4 -af atrim=4:6 -strict experimental -movflags faststart /Documents/viz-1/01/Video_0-0001.mp4

Но звук испорчен ... как я могу сделать это правильно?

Также пытался, звучит, как будто в конце есть тишина.

 
ffmpeg -y -i Video_0-0003.h264 -i Audio.wav -c:v copy -af atrim=6:8,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart Video_0-0003.mp4 
 

    Input #0, h264, from 'Video_0-0003.h264': 
     Duration: N/A, bitrate: N/A 
     Stream #0:0: Video: h264 (Main), yuv420p(progressive), 388x388 [SAR 1:1 DAR 1:1], 30 fps, 30 tbr, 1200k tbn, 60 tbc 
    Guessed Channel Layout for Input Stream #1.0 : stereo 
    Input #1, wav, from 'Audio.wav': 
     Duration: 00:00:16.98, bitrate: 1411 kb/s 
     Stream #1:0: Audio: pcm_s16le ([1][0][0][0]/0x0001), 44100 Hz, stereo, s16, 1411 kb/s 
    Output #0, mp4, to 'Video_0-0003.mp4': 
     Metadata: 
     encoder   : Lavf57.56.100 
     Stream #0:0: Video: h264 (Main) ([33][0][0][0]/0x0021), yuv420p(progressive), 388x388 [SAR 1:1 DAR 1:1], q=2-31, 30 fps, 30 tbr, 1200k tbn, 1200k tbc 
     Stream #0:1: Audio: aac (LC) ([64][0][0][0]/0x0040), 44100 Hz, stereo, fltp, 128 kb/s 
     Metadata: 
      encoder   : Lavc57.64.101 aac 
    Stream mapping: 
     Stream #0:0 -> #0:0 (copy) 
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native)) 
    Press [q] to stop, [?] for help 
    [mp4 @ 0x7fca8f015000] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly 
    [mp4 @ 0x7fca8f015000] Starting second pass: moving the moov atom to the beginning of the file 
    frame= 60 fps=0.0 q=-1.0 Lsize=  242kB time=00:00:02.02 bitrate= 982.2kbits/s speed= 21x 
    video:207kB audio:32kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.382400% 
    [aac @ 0x7fca8f017400] Qavg: 1076.270 

+0

Разделительный вопрос Ваш первый шаг. Можете ли вы попробовать «-c: v copy -c: aac' и' -c copy », чтобы проверить, является ли проблема с повторным кодированием звука? Работает ли ваша команда с другими файлами? Вы пробовали переключатели '-ss' и' -d'? Это помогает, если вы поделитесь своими усилиями. –

+0

Я пробовал -ss и -d, и он не работал на одном входе. –

ответ

0

Попробуйте

ffmpeg -y -i /Documents/viz-1/01/Video_0-0002.h264 -i /Documents/viz-1/01/Audio.wav -c:v copy -af atrim=4:6,asetpts=PTS-STARTPTS -strict experimental -movflags +faststart /Documents/viz-1/01/Video_0-0001.mp4 
+0

привет, я пробовал это, но звук все еще не синхронизирован. –

+0

Затем вам необходимо отрегулировать значения трима, чтобы он соответствовал. – Mulvya

+0

Или попробуйте '-async 1', чтобы звук не растягивался. – Xeoncross

0

Вы можете попытаться сократить аудио на видео времени, а затем Мардж видео и аудио дорожки. Используйте -vn и -an в отдельном процессе ffmpeg.

ffmpeg -i video.mp4 -c:v h264 -an -y video.h264 
ffmpeg -i video.mp4 -c:a aac -t 00:01:00 -vn -y audio.aac 

И Мардж треков:

ffmpeg -i auido.acc -i video.h264 -c:v copy -c:a copy -f mp4 -y out.mp4