Объедините аудиофайлы с помощью ffmpeg
Я пытаюсь объединить ac3 и aac с помощью ffmpeg.
ffprobe из jpn_op.m4a:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'jpn_op.m4a':
Metadata:
major_brand : M4A
minor_version : 512
compatible_brands: M4A isomiso2
encoder : Lavf58.76.100
Duration: 00:01:17.28, start: 0.000000, bitrate: 224 kb/s
Stream #0:0(jpn): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 224 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Side data:
audio service type: main
ffprobe из eng_nop.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'eng_nop.m4a':
Metadata:
major_brand : M4A
minor_version : 512
compatible_brands: M4A isomiso2
encoder : Lavf58.76.100
Duration: 00:22:09.26, start: 0.023000, bitrate: 41 kb/s
Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 39 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Я пробовал это:
ffmpeg -f concat -i concat_files.txt -c copy final.m4a -y
concat_files.txt содержит:
file 'jpn_op.m4a'
file 'eng_nop.m4a'
ffprobe из final.m4a
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'final.m4a':
Metadata:
major_brand : M4A
minor_version : 512
compatible_brands: M4A isomiso2
encoder : Lavf58.76.100
Duration: 00:23:26.50, start: 0.000000, bitrate: 51 kb/s
Stream #0:0(jpn): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 224 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Side data:
audio service type: main
Но вместо 2-го файла в final.m4a есть тишина.
1 ответ
Форматы и атрибуты должны быть одинаковыми для работы демультиплексора concat. Перекодируйте один из файлов, чтобы он соответствовал другому, а затем объедините.
Или используйте вместо него фильтр concat :
ffmpeg -i jpn_op.m4a -i eng_nop.m4a -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" final.mp4