LINUX.ORG.RU

склеить звуки avconv'ом

 


0

1
rdx /var/xitrophone/billing/voicemessages # avconv -i "concat:330011400173738_0.wav|330011400173738_1.wav" -c copy out.wav
avconv version 0.8.10-6:0.8.10-1, Copyright (c) 2000-2013 the Libav developers
  built on Feb  5 2014 03:52:19 with gcc 4.7.2
[wav @ 0x1c54b20] max_analyze_duration reached
Input #0, wav, from 'concat:330011400173738_0.wav|330011400173738_1.wav':
  Duration: 00:00:07.27, bitrate: 224 kb/s
    Stream #0.0: Audio: pcm_s16le, 8000 Hz, 1 channels, s16, 128 kb/s
Output #0, wav, to 'out.wav':
  Metadata:
    encoder         : Lavf53.21.1
    Stream #0.0: Audio: pcm_s16le, 8000 Hz, 1 channels, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press ctrl-c to stop encoding
size=     114kB time=7.27 bitrate= 128.1kbits/s    
video:0kB audio:114kB global headers:0kB muxing overhead 0.039542%
rdx /var/xitrophone/billing/voicemessages # du -sh *
120K	330011400173738_0.wav
92K	330011400173738_1.wav
120K	out.wav
rdx /var/xitrophone/billing/voicemessages # md5sum 330011400173738_0.wav out.wav
dfd05f4fe98b6c43a18bbe6a8319e671  330011400173738_0.wav
dfd05f4fe98b6c43a18bbe6a8319e671  out.wav

чяднт?

★★★★★

На хабре написано, что не все форматы поддерживают ″concat:″ и показывают, что для ″склейки″ формата wav, файлы нужно преобразовать в ″raw″, а потом простым ″cat″ объединить файлы и преобразовать в ″wav″.

mky ★★★★★ ()
Ответ на: комментарий от mky

Хедер wav файла - 44 байта, а дальше идут RAW PCM фреймы, если заранее известно что частота дискретизации, битность и кол-во каналов одинакова, то да, просто сикаем файлы на 44 байта вперед и забираем что там осталось до конца и тут можно сконкатить бинарку. А вот если нет, то нужна предварительная конвертация.

deep-purple ★★★★★ ()
Ответ на: комментарий от mky

Но! Мало какой плеер не будет играть RAW PCM без заголовка в начале файла, в котором какраз таки и указаны все битности-хренитности.

deep-purple ★★★★★ ()
Ответ на: комментарий от deep-purple

Хорошее дополнение, возможно, что у ТС wav-файлы именно различной частоты дискретизации и дело в этом.

mky ★★★★★ ()
Ответ на: комментарий от mky

Да хрен вот его знает, разрабы должны были по идее предусмотреть ситуацию когда входные файлы не в формате. Для одного файла же ресемплирует:

ffmpeg -i input.wav -ab 11025 -ac 1 output.wav

по идее должно бы и конвеером работать с конкатенацией, тут либо ТС что-то не договаривает, либо разрабы лопухнулись в этом месте.

deep-purple ★★★★★ ()

Попробуйте демуксер concat, а не протокол concat. А ещё сборка старовата, ну и попробуйте ffmpeg. Если не поможет, опубликуйте исходные файлы.

Krieger_Od ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.