Jump to content

Recommended Posts

Posted (edited)

Принимаю канал со спутника (поток MPEG2 ~ 4 Mbit/s), все идет нормально, стабильно. Начинаю перекодировать с MPEG2 в MPEG4, с помощью VLC и ffmpeg:

#!/bin/sh
/usr/bin/vlc -vvv --color --ttl 12 --ts-es-id-pid --program=1 dvb: --dvb-frequency=xxxxx000 --dvb-fec=9 --dvb-srate=27500000 --dvb-voltage=18 --dvb-adapter=0 --sout
'#transcode{vcodec=mp4v,acodec=mpga,channels=2,vb=800,ab=128,deinterlace}:duplicate{dst=rtp{mux=ts,dst=239.0.0.1},select="program=1"}"'

Поток идет нормально, качество улучшилось, но этот поток теперь занимает полосу от 2 до 20 Mbit/s. Можно ли зажать его до 2 Mbit/s? Курил мани по VLC, не нашел...

P.S. Смена vb, deinterlace, ab, channels не дала результатов.

Edited by mlevel
Posted (edited)

пробуйте так

#transcode{vcodec=h264,vb=200,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=4
8000}

только сразу учтите - программный перегон из mpeg2 в mpeg4 кушает очень много процессорного ресурса.

Edited by Снежкин
Posted

не пойдет, нет энкодера почему то.

[00000365] ffmpeg encoder error: cannot find encoder H264 - MPEG-4 AVC (part 10)
[00000294] stream_out_transcode private error: cannot find encoder ((null))

[root@tv /video]# ffmpeg -formats | grep h264
FFmpeg version r11872+debian_0.svn20080206-18+lenny1, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-libfaad --enable-pp --enable-swscaler --enable-x11grab --prefix=/usr --enable-libgsm --enable-libtheora --enable-libvorbis --enable-pthreads --disable-strip --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-altivec --disable-vis --enable-shared --disable-static
  libavutil version: 49.6.0
  libavcodec version: 51.50.0
  libavformat version: 52.7.0
  libavdevice version: 52.0.0
  built on Oct 13 2010 18:20:52, gcc: 4.3.2
DE h264            raw H264 video format
D V DT h264
text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra

Posted (edited)

VLC:

[root@tv /]# vlc --version
VLC media player 0.8.6h Janus
starting VLC root wrapper... using UID 1001
VLC version 0.8.6h Janus
Compiled by buildd@murphy.debian.org
Compiler: gcc version 4.3.2 (Debian 4.3.2-1.1)
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.

System (Debian 5.0.5 Lenny):

[root@tv /home]# uname -a
Linux tv 2.6.26-2-686 #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686 GNU/Linux

FFmpeg:

[root@tv /home]# ffmpeg -version
FFmpeg version r11872+debian_0.svn20080206-18+lenny1, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-libfaad --enable-pp --enable-swscaler --enable-x11grab --prefix=/usr --enable-libgsm --enable-libtheora --enable-libvorbis --enable-pthreads --disable-strip --enable-libdc1394 --disable-armv5te --disable-armv6 --disable-altivec --disable-vis --enable-shared --disable-static
  libavutil version: 49.6.0
  libavcodec version: 51.50.0
  libavformat version: 52.7.0
  libavdevice version: 52.0.0
  built on Oct 13 2010 18:20:52, gcc: 4.3.2
FFmpeg r11872+debian_0.svn20080206-18+lenny1
libavutil   3212800
libavcodec  3355136
libavformat 3409664
libavdevice 3407872

 

[root@tv /home]# vlc -l | grep h264
VLC media player 0.8.6h Janus
starting VLC root wrapper... using UID 1001 (arion)
  h264                  H264 video demuxer
  packetizer_h264       H.264 video packetizer

Edited by mlevel
Posted (edited)
пробуйте так

#transcode{vcodec=h264,vb=200,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=4
8000}

только сразу учтите - программный перегон из mpeg2 в mpeg4 кушает очень много процессорного ресурса.

пересобрал VLC из исходников, запустилось.

Вопрос, что значит опция scale, samplerate не по научному, и какие вообще опции влияют на ширину потока?

Поток все равно немного пригает, до 5 Мбит/с.

Edited by mlevel
Posted (edited)

Только вот не получается два канала с одного транспондера перекодировать одновременно...

Только первый канал идет.

#!/bin/sh
/usr/local/bin/cvlc -vvv --color --programs=1,2 --ts-es-id-pid dvb:// :dvb-frequency=xxxx000 :dvb-srate=xxxx0000 :dvb-voltage=18 :dvb-adapter=0 --sout '#duplicate{dst="transcode{vcodec=h264,acodec=mpga,channels=2,vb=800,scale=1,samplerate=48000
,ab=128,deinterlace}:rtp{mux=ts,dst=239.0.0.1}",select="program=1",dst="transcode{vcodec=h264,acodec=mpga,channels=2,vb=800,scale=1,samplerate=48000
,ab=128,deinterlace}:rtp{mux=ts,dst=239.0.0.2}",select="program="2"}'

Edited by mlevel
  • 2 weeks later...
Posted

Если свалить на VLC и прием со спутника, и транскодирование - ему будет совсем не хорошо, в плане утечек памяти. Да и конвертить, не факт что VLC. Можно попробовать собрать что-то из ffserver + ffmpeg, мне кажется будет работать стабильнее.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.