продолжительная запись звука
z00b
Пункты: 5587
Регистрация: 11.02.2012
Записываю звук более 10 часов посредством gstreamer (qt gstreamer). Строю такой конвеер:
Код alsasrc do-timestamp=1 ! 'audio/x-raw-int,rate=32000,width=16,channels=1' ! audioconvert ! queue ! audioresample ! mfw_mp3encoder ! filesink=/mnt/mmc/sound.mp3
Ядро брал code.google.com/p/starterkit-org 2.6.35. , в плане звука отключал только spdif.
В итоге в файле присутствуют контрольные звуки старта и финализации, но сам файл по продолжительности короче.
За 10 часов продолжительность уменьшалась примерно на 10 секунд.
Пробовал "нарезать" записываемый файл, перезапуская конвеер каждые пять часов, в итоге каждые пять часов файл по продолжительности сжимается на 5 секунд.
Пробовал использовать вместо mfw_mp3encoder lame- отставание увеличивалось (хотя может это связано тем, что частоту дискретизации я опускал до 8кГц).
Видимо что-то с частотой дискретизации. Кто нибудь сталкивался?
sasamy
Пункты: 83558
Регистрация: 14.08.2009
Цитата
Видимо что-то с частотой дискретизации. Кто нибудь сталкивался?
Наверно все сталкиваются - только на слух это незаметно :) из мануала на tlv320aic23
3.3.2 Audio Sampling Rates
Цитата
The sampling rates are derived from the 12-MHz master clock. The available oversampling rates do not produce exactly 8-kHz, 44.1-kHz, and 88.2-kHz sampling rates, but 8.021 kHz, 44.117 kHz, and 88.235 kHz, respectively.
попробуйте 48 кГц
buletz
Пункты: 5920
Регистрация: 16.11.2011
Пол: Мужчина
в продолжение поста автора:
1. подключили генератор на микрофонный вход и подали синусоиду 10 кгц.
http://img547.imageshack.us/img547/8127/ote8.jpg
2. записали звук с частотой дискретизации 48 кгц.
3. обработали через sound forge и audition - результат один: частота четко на 10 кгц.
http://img812.imageshack.us/img812/8303/c90l.jpg
т.е. цифруется все верно, значит кварц, скорее всего не причем (разве что он со временем начнет уходить, в чем я что-то сомневаюсь...)
Я вижу две гипотезы:
а) частота уходит со временем.
б) есть пропуски кадров (сэмплов)
Видимо один из вариантов это подключить к генератору и оставить на несколько часов....
z00b
Пункты: 5587
Регистрация: 11.02.2012
Выяснилось, что проблема наблюдается только при одновременной записи звука и видео.
Запускаю параллельно два таких конвеера:
Видео:
Код
gst-launch -e mfw_v4lsrc capture-width=720 capture-height=576 sensor-width=720 sensor-height=288 preview=1 typefind=1 do-timestamp=1 ! \
'video/x-raw-yuv,format=(fourcc)NV12,width=720,height=576,framerate=(fraction)25/1' ! \
mfw_ipucsc ! 'video/x-raw-yuv,format=(fourcc)I420,wifth=720,height=576,framerate=(fraction)25/1' ! \
clockoverlay halign=left valign=top ! \
videorate ! 'video/x-raw-yuv,framerate=(fraction)1/1' ! \
queue max-size-buffers=100 ! \
mfw_vpuencoder codec-type=2 bitrate=0 qp=22 gopsize=30 width=720 height=576 ! \
avimux name=mux ! filesink location=/mnt/mmc/test.avi sync=false
Звук:
Код
gst-launch -e alsasrc do-timestamp=1 ! \
'audio/x-raw-int,rate=48000,width=16,channels=1' ! \
audioconvert ! queue ! mfw_mp3encoder ! filesink location=/mnt/mmc/test.mp3
Если запущен только конвеер записи звука- все ок.
sasamy
Пункты: 83558
Регистрация: 14.08.2009
Цитата
Выяснилось, что проблема наблюдается только при одновременной записи звука и видео.
А другой контейнер кроме avi не пробовали - например mkv ? или кодек для аудио поменять vorbis, aac ? хотя мало вероятно.. vorbis например обещает
Цитата
«Sample accurate» — звуковые данные не будут иметь смещений, дополнительных или потерянных семплов относительно друг друга.