Перейти к содержимому
Калькуляторы

Транскодирование MPEG2 в H264 Транскодирование MPEG2 в H264

"на другой - делаем обратное преобразование. и никаких дорогих решений."- можно узнать с помощью чего это делается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 ^rage^ - глянь личку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

берем на одной стороне конвертим в hls. на другой - делаем обратное преобразование. и никаких дорогих решений.

как вариант, можно сделать vpn поверх tcp и компенсировать размером буфера.

 

rtt в 200мс - это фигня. лучше скажите, что будет, когда jitter будет такой?

В HLS чем конвертите?

Я делаю немного проще - на одной стороне стоит udpxy,

на другой стороне скармливаю http поток астре и получаю нормальный мультик

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.имется сервер на нем: CentOS release 5.9 (Final), Intel® Core2 Quad CPU Q6600 @ 2.40GHz 4 шт ,

MemTotal: 2072336 kB

Пытаюсь транскодировать с помощью ffmpeg

вот скрипт ffmpeg -threads 5 -y -i udp://@227.1.1.1:123 -map 0:a:0 -map 0:v -r 25 -g 13 -keyint_min 13 -strict experimental -dts_delta_threshold 1000 -vcodec libx264 -flags +ilme -mbd rd -trellis 2 -cmp 2 -subcmp 2 -bf 2 -b 1700k -maxrate 1700k -muxrate 1970k -bufsize 1000k -preset veryfast -f mpegts udp://228.1.1.1:1234 | ffmpeg -threads 5 -y -i udp://@227.1.1.2:123 -map 0:a:0 -map 0:v -r 25 -g 13 -keyint_min 13 -strict experimental -dts_delta_threshold 1000 -vcodec libx264 -flags +ilme -mbd rd -trellis 2 -cmp 2 -subcmp 2 -bf 2 -b 1700k -maxrate 1700k -muxrate 1970k -bufsize 1000k -preset veryfast -f mpegts udp://228.1.1.2:1234 | ffmpeg -threads 5 -y -i udp://@227.1.1.3:123 -map 0:a:0 -map 0:v -r 25 -g 13 -keyint_min 13 -strict experimental -dts_delta_threshold 1000 -vcodec libx264 -flags +ilme -mbd rd -trellis 2 -cmp 2 -subcmp 2 -bf 2 -b 1700k -maxrate 1700k -muxrate 1970k -bufsize 1000k -preset veryfast -f mpegts udp://228.1.1.3:1234 | ffmpeg -threads 5 -y -i udp://@227.1.1.4:123 -map 0:a:0 -map 0:v -r 25 -g 13 -keyint_min 13 -strict experimental -dts_delta_threshold 1000 -vcodec libx264 -flags +ilme -mbd rd -trellis 2 -cmp 2 -subcmp 2 -bf 2 -b 1700k -maxrate 1700k -muxrate 1970k -bufsize 1000k -preset veryfast -f mpegts udp://228.1.1.4:1234 | ffmpeg -threads 5 -y -i udp://@227.1.1.5:123 -map 0:a:0 -map 0:v -r 25 -g 13 -keyint_min 13 -strict experimental -dts_delta_threshold 1000 -vcodec libx264 -flags +ilme -mbd rd -trellis 2 -cmp 2 -subcmp 2 -bf 2 -b 1700k -maxrate 1700k -muxrate 1970k -bufsize 1000k -preset veryfast -f mpegts udp://228.1.1.5:1234

 

Четыре канала транскодирует нормально причем загрузска четырех спру 80-90 процентов памяти на половину, добовляю пятый канал , начинает отваливатся какой нибудь канал, появляется сообщение (udp://@227.1.1.1:123: Input/output error)загрузка четырех спу 99-100 к приамеру.

Вопрос на данном железе получается максимально можно транскодировать только четыре канала ? Может неправильный скрип поправте пожалуста? с помощью vlc можно ли больше каналов на данном железе трансодировать? да еще vlc установлен но не могу с ним из под root работать, т а из под user он что то не запускается .

Изменено пользователем maxim1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я имел ввиду, что транспорт можно перегонять через интернет. К примеру отправляете пакет каналов с Молдавии и получаете в Австралии. При этом включаете функцию коррекции ошибок и все красиво работает. Проверено, работает на расстоянии более 15 000 км. при пинге 200 мск.

тююю... на одной стороне:

gst-launch-0.10 udpsrc uri="udp://239.0.0.1:1301" multicast-iface=eth0 do-timestamp=true buffer-size=2048000 caps="application/x-udp" ! queue ! tcpserversink sync=false protocol=gdp host=0.0.0.0 port=4444

на второй стороне:

gst-launch-0.10 tcpclientsrc host=77.44.22.11 port=4444 protocol=gdp  ! queue ! udpsink sync=false host=239.0.0.1 port=1301

можно еще на третьей стороне:

gst-launch-0.10 tcpclientsrc host=77.44.22.11 port=4444 protocol=gdp  ! queue ! udpsink sync=false host=239.0.0.1 port=1301

можно перераздавать с точки получения:

gst-launch-0.10 tcpclientsrc host=77.44.22.11 port=4444 protocol=gdp  ! queue ! tee name=vtee ! queue ! udpsink sync=false host=239.0.0.1 port=1301 vtee. ! queue ! tcpserversink sync=false protocol=gdp host=0.0.0.0 port=4444

Изменено пользователем ^rage^

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2^rage^:

 

А не подскажете gstreamer-заклинание для случая, когда надо принять h264 в мультикасте, перегнать его в MPEG-2 и так же отдать его мультикастом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

h264 в мультикасте

это оно в каком виде? rtp? или просто udp?

просто h.264 или в каком-то контейнере?

 

перегнать его в MPEG-2 и так же отдать его мультикастом?

опять же, в каком виде на выходе? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вот что пишет avconv на входящее:

 

Input #0, mpegts, from 'udp://@233.0.0.101:16384':

Duration: N/A, start: 31574.393889, bitrate: 192 kb/s

Program 257

Metadata:

service_name : XXXXXXX

service_provider: HTB+

Stream #0.0[0x88]: Video: h264 (High), yuv420p, 720x576 [PAR 12:11 DAR 15:11], 54.72 fps, 50 tbr, 90k tbn, 50 tbc

Stream #0.1[0x89](ron): Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s

[buffer @ 0xa0bd00] w:720 h:576 pixfmt:yuv420p

[mpegts @ 0x6442e0] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts

 

 

На выходе же желательно получить либо подобно такому:

 

Input #0, mpegts, from 'udp://@233.0.0.9:16384':

Duration: N/A, start: 93506.089889, bitrate: 160 kb/s

Program 264

Metadata:

service_name : XXXXXXXXX

service_provider: XXXXXXXXX

Stream #0.0[0xc0]: Video: h264 (Main), yuv420p, 704x576 [PAR 12:11 DAR 4:3], 30.90 fps, 25 tbr, 90k tbn, 50 tbc

Stream #0.1[0xc1](ru): Audio: mp2, 48000 Hz, stereo, s16, 160 kb/s

[buffer @ 0xa1f6a0] w:704 h:576 pixfmt:yuv420p

[mpegts @ 0x6762e0] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts

 

либо такое:

 

Input #0, mpegts, from 'udp://@233.0.0.1:16384':

Duration: N/A, start: 34864.374689, bitrate: 15192 kb/s

Program 260

Metadata:

service_name : XXXXXXXXX

service_provider: XXXXXXXXX

Stream #0.0[0xa0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 64:45 DAR 16:9], 15000 kb/s, 30.19 fps, 25 tbr, 90k tbn, 50 tbc

Stream #0.1[0xa1]: Audio: mp2, 48000 Hz, stereo, s16, 192 kb/s

[buffer @ 0x823140] w:720 h:576 pixfmt:yuv420p

[mpegts @ 0x676720] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts

 

За каким фигом оно нужно: столкнулись с тем, что принятые с 56-го спутника каналы не отображаются на самых массовых у нас DVB-C приставках. "h264 (Main)" показывает, "h264 (High)" - только квадратное цветное психоделие.

 

Пробовал перегонять с помощью vlc. Работает какое-то время, но потом у vlc сносит башню, из-за чего он начинает дико жрать память. avconv/ffmpeg на выходе гонит пургу, которую не переваривает модулятор QTX-2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.