i have a Setup on a physical Server where I can grab Audio(oss_audioloop) and Video (using x11grab) with ffmpeg.
It works good, but I want it to run on a EC2 Instance at Amazon.
I alreade compiled the OSS Modules osscore+oss_audioloop (Ver.: 2002,2003) and the Server works so far but one big Problem exists:
On EC2 Instance Audio/Video are always async.
ffmpeg Options like -async (Sync but Crackling and Frequency Changes or Sound Speedup) or -vsync (No effect) does not help.
I've tried a lot of Kernel Settings 1000HZ Timer (CONFIG_HZ=1000), Tickles (NO_HZ=y) or High Resolution Timer (CONFIG_HIGH_RES_TIMERS=y)
but nothing works.
Can anyone tell me how OSS does its Timing? Is it based on Interrupts (IRQ8?)
Does a available Realtime Clock (dev/rtc) improves the Timing from OSS?
How can I improve OSS working more accurate like it does on a physical Machine?
Any Help would be great!
----
Infos:
I use the following to initialize the audioloop:
Code: Select all
echo "Restarting OSS..."
soundoff
soundon
echo "Configuring Audioloop..."
modprobe oss_audioloop
ossdetect -vd
rm /dev/dsp
ln -s /dev/oss/oss_audioloop0/server0 /dev/dsp
sleep 2
echo "Initializing Audioloop..."
ossplay -l /var/www/worker/videoexport/devicecheck.wav &
sleep 2
ossrecord -d /dev/oss/oss_audioloop0/pcm0 -O /tmp/ossrecord.wav &
sleep 4
killall ossrecord
Here are some output right from the EC2 Instance:
Code: Select all
# ossinfo
Version info: OSS 4.2 (b 2002/201010031239) (0x00040100) GPL
Platform: Linux/i686 2.6.35-22-virtual #33-Ubuntu SMP Sun Sep 19 23:54:13 UTC 2010 (ip-10-48-37-97)
Number of audio devices: 2
Number of audio engines: 2
Number of MIDI devices: 0
Number of mixer devices: 0
Device objects
0: osscore0 OSS core services
1: oss_audioloop0 audioloop
MIDI devices (/dev/midi*)
Mixer devices
Audio devices
Audio loopback 0 server side /dev/oss/oss_audioloop0/server0 (device index 0)
(Audio loopback 0 /dev/oss/oss_audioloop0/pcm0 ) (device index 1)
Nodes
/dev/dsp -> /dev/oss/oss_audioloop0/server0
/dev/dsp_in -> /dev/oss/oss_audioloop0/server0
/dev/dsp_out -> /dev/oss/oss_audioloop0/server0
/dev/dsp_mmap -> /dev/oss/oss_audioloop0/server0
/dev/dsp_multich -> /dev/oss/oss_audioloop0/server0
Code: Select all
# ossdetect -dv
mknod /dev/sndstat c 251 0 -m 20666
mknod /dev/midi c 251 1 -m 20666
mknod /dev/mixer c 251 2 -m 20666
mknod /dev/oss/oss_audioloop0/server0 c 250 3 -m 20666
mknod /dev/oss/oss_audioloop0/pcm0 c 250 5 -m 20666
Code: Select all
# cat /boot/config-2.6.35-22-virtual |grep HZ
CONFIG_RCU_FAST_NO_HZ=y
CONFIG_NO_HZ=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_MACHZ_WDT=m
Code: Select all
# cat /boot/config-2.6.35-22-virtual |grep HIGH
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
# CONFIG_DEBUG_HIGHMEM is not set