Код: Выделить всё
посмотреть флаги компиляции для твоего проца
Вы, естественно, не подскажете.
А ман по этому поводу подсказать можете?
Модератор: terminus
Код: Выделить всё
посмотреть флаги компиляции для твоего проца
Та не помогает особо это. На семпроне тем более.paradox писал(а):ну тебе уже высказали предположение)) посмотреть флаги компиляции для твоего проца
или гуглить какуюто другую альтернативу
вдруг уже кто то изобрел
хотя вопробуешь еще mencoder может он справиться с задачей
Код: Выделить всё
В кодировании видео важно дурь самого ядра в гигагерцах, кэша чем больше тем лучше, отсутствие узкого места в виде доступа к памяти.
мало чем поможет к сожалению.urello писал(а):Специально в качестве эксперимента взял core2 quad - 12Мб кэшаКод: Выделить всё
В кодировании видео важно дурь самого ядра в гигагерцах, кэша чем больше тем лучше, отсутствие узкого места в виде доступа к памяти.
Чуток лучше стало, но всё-равно - много дропнутых кадров, загрузка проца - под 100%
ffserver пока не пробовал, тут выше высказывалась идея, что стоит попробовать собрать ffmpeg и vlc более новым компилятором.
Вот сижу, собираю gcc45 уже час....
Код: Выделить всё
ffmpeg -i http://192.168.0.100:31344 -ar 22050 -ab 16k -f flv -b 340k -s 480x320 http://localhost:8080/feed1.ffm
Код: Выделить всё
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --prefix=/usr/local --mandir=/usr/local/man --enable-shared --enable-gpl --enable-swscale --enable-postproc --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-x11grab --enable-memalign-hack --cc=cc --extra-cflags=-msse -I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --disable-libamr-nb --disable-libamr-wb --disable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --disable-libgsm --disable-vhook --disable-ipv6 --enable-libmp3lame --disable-libopenjpeg --disable-libschroedinger --disable-ffplay --disable-libspeex --disable-libtheora --disable-libvorbis --enable-libx264 --enable-libxvid
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Aug 15 2009 22:51:10, gcc: 4.2.1 20070719 [FreeBSD]
Seems stream 0 codec frame rate differs from container frame rate: 50.00 (50/1) -> 25.00 (25/1)
Input #0, mpegts, from 'http://192.168.0.100:31344':
Duration: N/A, start: 23792.761311, bitrate: 15192 kb/s
Program 14
Stream #0.0[0x1141]: Video: mpeg2video, yuv420p, 704x576 [PAR 12:11 DAR 4:3], 15000 kb/s, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x1142]: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s
Output #0, flv, to 'http://193.193.192.44:8080/feed1.ffm':
Stream #0.0: Video: flv, yuv420p, 480x320 [PAR 8:9 DAR 4:3], q=2-31, 340 kb/s, 90k tbn, 25 tbc
Stream #0.1: Audio: libmp3lame, 22050 Hz, stereo, s16, 16 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
а начиная с gcc44 есть Graphite и -ftree-loop-distribution и -floop-parallelize-all
- -ftree-parallelize-loops=n
- Parallelize loops, i.e., split their iteration space to run in n
threads. This is only possible for loops whose iterations are
independent and can be arbitrarily reordered. The optimization is
only profitable on multiprocessor machines, for loops that are CPU-
intensive, rather than constrained e.g. by memory bandwidth. This
option implies -pthread, and thus is only supported on targets that
have support for -pthread.
кодирование делает libavcodec из ffmpeg, в коем уйма ассемблерных вставок. А на базовом компилере SSSE3 вставки кои есть Intel Core2 не будут использоваться.Fastman писал(а):Я как то лазил внутрь VLC, оно теоретически не может хорошо работать
Код: Выделить всё
[mpeg2video @ 0x80370c010]ac-tex damaged at 41 17
[mpeg2video @ 0x80370c010]ac-tex damaged at 13 17
[mpeg2video @ 0x80370c010]ac-tex damaged at 6 18
[mpeg2video @ 0x80370c010]ac-tex damaged at 14 20
[mpeg2video @ 0x80370c010]invalid mb type in P Frame at 40 20
[mpeg2video @ 0x80370c010]ac-tex damaged at 1 21
[mpeg2video @ 0x80370c010]mb incr damaged
[mpeg2video @ 0x80370c010]ac-tex damaged at 3 24
[mpeg2video @ 0x80370c010]ac-tex damaged at 23 24
[mpeg2video @ 0x80370c010]ac-tex damaged at 11 25
[mpeg2video @ 0x80370c010]ac-tex damaged at 3 26
[mpeg2video @ 0x80370c010]ac-tex damaged at 24 27
[mpeg2video @ 0x80370c010]ac-tex damaged at 20 28
[mpeg2video @ 0x80370c010]invalid mb type in P Frame at 28 29
[mpeg2video @ 0x80370c010]mb incr damaged
[mpeg2video @ 0x80370c010]ac-tex damaged at 18 31
[mpeg2video @ 0x80370c010]invalid mb type in P Frame at 13 32
[mpeg2video @ 0x80370c010]ac-tex damaged at 16 33
[mpeg2video @ 0x80370c010]ac-tex damaged at 32 35
[mpeg2video @ 0x80370c010]end mismatch left=541 28564C
[mpeg2video @ 0x80370c010]concealing 1320 DC, 1320 AC, 1320 MV errors
Юзать можно любые кодеки:При этом картинка замирает, звук квакает.
Но, если настроить ffmpeg или vlc просто на ретрансляцию потока - без перекодирования и ужатия - тогда все прекрасно картинка отличная.
Если моя логика верна, то проблема в mpeg2 декодере.
В связи с этим возникает вопрос: можно ли попросить ffmpeg юзать другой mpeg2 декодер, скажем libmpeg2 вместо libavcodec?
пробовал разные, но ведь это кодеки выходного потока, а у меня проблема при декодировании потокаFastman писал(а): Юзать можно любые кодеки:
-vcodec - кодек для видео
-acodec - кодек для аудио
ffmpeg запускаю из шелла с такими параметрами:Fastman писал(а):Ну выкинтье конфиг поглядеть... может вы какие нить фильтры навешали или дикий ресайз картинки или еще чего нить.
Код: Выделить всё
ffmpeg -i http://192.168.0.100:31344 -copyts -isync -async 5 -vcodec flv -acodec libmp3lame -ar 22050 -ab 32k -f flv -b 128k -s cif -y file
1. Почему сразу не отдавать поток с дримбокса на VLC ???urello писал(а):Дримбокс (192.168.0.100) принимает канал со спутника и стримит его на свой порт 31344
ffmpeg забирает поток с 192.168.0.100:31344 перекодирует и отдаёт в fifo
vlc забирает из fifo и вещает на порт 8080
веб страница с кодом плеера, плеер забирает поток с 8080
Код: Выделить всё
vlc -vvv http://192.168.0.100:31344 --sout '#transcodе{vcodec=FLV1,vb=340,width=480,height=360,fps=24,acodec=mp3,samplerate=22050,channels=1,ab=32}:std{access=http,dst=193.193.192.44:8080/stream.flv}'
Код: Выделить всё
last pid: 1176; load averages: 0.99, 0.92, 0.76 up 0+01:33:23 02:58:40
43 processes: 2 running, 41 sleeping
CPU: 49.1% user, 0.0% nice, 0.4% system, 0.6% interrupt, 50.0% idle
Mem: 33M Active, 12M Inact, 41M Wired, 4K Cache, 19M Buf, 885M Free
Swap: 1267M Total, 1267M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
1126 video 11 47 0 172M 33356K ucond 0 0:57 74.27% vlc
Код: Выделить всё
[root@vidoe ~]# /usr/local/etc/rc.d/ffserver start
[: /usr/local/bin/ffserver: unexpected operator
Starting ffserver.
[root@vidoe ~]# FFserver version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --prefix=/usr/local --mandir=/usr/local/man --enable-shared --enable-gpl --enable-swscale --enable-postproc --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-x11grab --enable-memalign-hack --cc=cc --extra-cflags=-msse -I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --disable-libamr-nb --disable-libamr-wb --disable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --disable-libgsm --disable-vhook --disable-ipv6 --enable-libmp3lame --disable-libopenjpeg --disable-libschroedinger --disable-ffplay --disable-libspeex --disable-libtheora --disable-libvorbis --enable-libx264 --enable-libxvid
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 4. 0 / 0. 4. 0
libswscale 0. 7. 1 / 0. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Sep 11 2009 20:45:05, gcc: 4.5.0 20090820 (experimental)
Sun Sep 13 03:33:28 2009 Could not start server
Не понял немного..может не знаю всех нюансов....urello писал(а): - может ли mencoder кодировать поток в несколько битрейтов как vlc?
Тогда смысла дергаться нету если работаетurello писал(а): - как лучше отдавать поток на сервер (я по-прежнему использую fifo)?
urello писал(а):Добрый день!
Имеется сервер freebsd7.2 на нем поднят vlc принимающий, перекодирующий и отдающий видеопоток.
Проц sempron 3200+, при старте vlc отжирает весь проц, картинка рассыпается.
Если отдавать поток без перекодировки - всё отлино.
Возможно ли решить эту проблему на данном процессоре, добавив какие-либо опции в ядро?
Код: Выделить всё
Возможно ли решить эту проблему на данном процессоре, добавив какие-либо опции в ядро?