
У меня есть 2 файла:
Input #0, wav, from '105426_1.wav':
Duration: 00:00:09.98, bitrate: 1312 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 41000 Hz, stereo, s16, 1312 kb/s
и:
Duration: 00:00:41.29, start: 0.000000, bitrate: 1313 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 1211 kb/s, 24.42 fps, 25 tbr, 90k tbn, 48 tbc
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 99 kb/s
Metadata:
handler_name : SoundHandler
Я хочу вставить первый аудиофайл в видео в определенном месте (например, на 10-й секунде видео) и смешать его с аудиопотоком видеофайла.
Я стараюсь
/usr/local/bin/ffmpeg -i 105426_1.wav -i 105426.mp4 -map 0:0 -map 1:1 -map 1:0 video_finale.mp4
но результат:
Duration: 00:00:41.31, start: 0.046440, bitrate: 755 kb/s
Stream #0:0(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
Metadata:
handler_name : SoundHandler
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
Metadata:
handler_name : SoundHandler
Stream #0:2(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 588 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
Metadata:
handler_name : VideoHandler
Мне нужен только один аудиопоток и первый поток должен воспроизводиться не с начала, а с 10 секунды.
решение1
Я думаю, что было бы странно, если бы ffmpeg
можно было сделать что-то подобное. Вам следует демультиплексировать аудиопоток и подмешивать в него свой звук (например, с помощью audacity
), а затем мультиплексировать.
Второй способ, как я полагаю, — это сместить второй аудиопоток с помощью опции -itsoffset
, а затем попытаться воспроизвести оба потока одновременно с помощью медиаплеера с соответствующим сплиттером (в этом случае я предлагаю попробовать MPC-HC + ffdshow + Haali Media Splitter).