Jump to content
Калькуляторы

VLC :: MPEG2 => MPEG4 Транскодирование канала со спутника

Принимаю канал со спутника (поток 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

Share this post


Link to post
Share on other sites
но этот поток теперь занимает полосу от 2 до 20 Mbit/s

с помощью чего вы это видите?

Share this post


Link to post
Share on other sites

iftop, nload.

Поток транслируется на отдельный интерфейс, по которому ничего не бегает больше, кроме ТВ.

Share this post


Link to post
Share on other sites

пробуйте так

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

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

Edited by Снежкин

Share this post


Link to post
Share on other sites

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

[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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
пробуйте так

#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

Share this post


Link to post
Share on other sites

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

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

#!/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

Share this post


Link to post
Share on other sites

dvblast и vlc по числу каналов. Иначе никак.

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this