[FFmpeg-user] ATSC TS live transcode on DL360 G4?

Henk D. Schoneveld belcampo at zonnet.nl
Sun Feb 3 11:42:39 CET 2013


On Feb 3, 2013, at 2:37 AM, Subscriptions <subscriptions at znet.ca> wrote:

> 
> Hello Hank, Tom, and thanks for your advice. I did record half an hour ATSC mpeg2 stream into a file and tried to transcode it file-to-file. I also took the 'nice' out as anyway there is nothing else running, no need to prioritize this process. Results are below.
> 
> Input #0, mpegts, from 'out.ts':
>  Duration: 00:55:52.35, start: 16712.311489, bitrate: 15655 kb/s
>  Program 1
>    Stream #0:0[0x44](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), s16, 384 kb/s
>    Stream #0:1[0x45]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 15000 kb/s, 59.94 fps, 60 tbr, 90k tbn, 119.88 tbc
> using cpu capabilities: MMX2 SSE2 SSE3 Cache64
> profile Constrained Baseline, level 3.2
> muxrate VBR, pcr every 6 pkts, sdt every 200, pat/pmt every 40 pkt
> Output #0, mpegts, to 'video.h264':
>  Metadata:
>    encoder         : Lavf54.29.104
>    Stream #0:0: Video: h264, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 90k tbn, 60 tbc
>    Stream #0:1(eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), 384 kb/s
> 
> 
> Results:
>  A. -preset fast:
> ffmpeg -re -i out.ts -acodec copy -vcodec libx264  -preset fast -s:v hd720 -f mpegts video.h264
> top - 16:57:50 up 23 days,  3:33,  4 users,  load average: 5.81, 4.54, 2.34
> 
>  B. -preset ultrafast:
> ffmpeg -re -i out.ts -acodec copy -vcodec libx264  -preset ultrafast -s:v hd720 -f mpegts video.h264
> top - 17:03:24 up 23 days,  3:39,  4 users,  load average: 4.16, 4.18, 2.84
> 
> Computer is DL 360 G4 at 3.4Ghz. As seen we are 'almost there' with -preset ultrafast, just slightly on the other side of the border.
> 
> This is quite bad, as I need to transcode ~10 channels, and DL360 G4 is inexpensive and fast 64bit server. No luck, however.
Compare the used Xeon CPU from that DL360, I don't know which one is used, with more recent versions. Power-consumption of current CPU's is much lower and performance is much higher. Maybe you need half or less systems to get the same or more CPU-performance. Calculate the cost of energy maybe you conclude that the DL360 is very expensive after all.

Henk 
> 
> I did try another ATSC channel, same result as above. So, it really looks that 2 Xeon 64 bit @3.4Ghz can not transcode real-time ATSC ~20Mb/s to h264.
> 
> If you wish I can put the file  for download for yourself to test (6GB).
> 
> All the best, george
> 
> Le 2013-02-01 10:00, Henk D. Schoneveld a écrit :
>> On Feb 1, 2013, at 3:20 PM, Subscriptions <subscriptions at znet.ca> wrote:
>> 
>>> Hello again,
>>> 
>>> It simply looks that 2 double-core Xeon at 3.4Ghz (HP DL 360) can not transcode mpeg2 ts live stream coming at ~20 Mb/s to h264. Even with 'preset ultrafast' the load goes above 4 and the buffer overruns. The minimal processor that is able to do this up to now is a single Phenom 2 X6 Black at 3.4 Ghz, and it sometimes gets with load ~5 on it's six cores.
>> It looks a bit odd to me. I can encode 2 DVB-S 1080i h264-based
>> recordings to 720p with a 4-core i5-2500k not over clocked.
>> If you remove the nice statement and add -re statement before your source like
>> ffmpeg -re -i udp etc should do the job. BTW. I do my encodings from
>> a file, not from a stream. Maybe an intermediate file will help,
>> although it adds a slight delay.
>> 
>> Henk
>>> 
>>> Thanks, George
>>> 
>>> 
>>> Hello,
>>> 
>>> I want to reduce bit rate of ~18Mb/s ATSC live stream which I capture over the air with HDHomerun box, and it looks that an HP DL360 G4 server (two 64 bit double core Xeon processors) can not do the job. Is there some way to make this functional? My idea is to reduce the stream from 18Mb/s to about 4-5Mb/s at hd720. The problem is that processor load goes over 4 and starts to overrun the buffer. Is there a way to make the transcoding somehow work with x264 on that computer?
>>> 
>>> Thanks, George.
>>> 
>>> nice -n -20 ffmpeg -i "udp://239.255.254.1:1234?fifo_size=6000000&overrun_nonfatal=1&" -acodec copy -c:v libx264 -crf 22 -preset fast -f mpegts udp://239.255.254.240:1234
>>> 
>>> ffmpeg version 1.0 Copyright (c) 2000-2012 the FFmpeg developers
>>> built on Oct 16 2012 09:46:44 with gcc 4.7 (Debian 4.7.2-4)
>>> 
>>> Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 15000 kb/s, 63.81 fps, 59.94 tbr, 90k tbn, 119.88 tbc
>>> 
>>> using cpu capabilities: MMX2 SSE2 SSE3 Cache64
>>> Output #0, mpegts, to 'udp://239.255.254.240:1234':
>>> Metadata:
>>>   encoder         : Lavf54.29.104
>>>   Stream #0:0: Video: h264, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 90k tbn, 59.94 tbc
>>>   Stream #0:1(eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.1(side), 384 kb/s
>>> 
>>> 
>>> Tasks:  82 total,   2 running,  80 sleeping,   0 stopped,   0 zombie
>>> %Cpu0  : 96.3 us,  1.0 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  2.3 si, 0.0 st
>>> %Cpu1  : 95.7 us,  1.0 sy,  0.0 ni,  1.0 id,  0.0 wa,  0.0 hi,  2.3 si, 0.0 st
>>> %Cpu2  : 97.7 us,  1.3 sy,  0.0 ni,  0.3 id,  0.0 wa,  0.0 hi,  0.7 si, 0.0 st
>>> %Cpu3  : 96.0 us,  0.7 sy,  0.0 ni,  2.0 id,  0.0 wa,  0.0 hi,  1.3 si, 0.0 st
>>> KiB Mem:   3995312 total,  2685548 used,  1309764 free,    74516 buffers
>>> 
>>> processor       : 3
>>> vendor_id       : GenuineIntel
>>> cpu family      : 15
>>> model           : 4
>>> model name      : Intel(R) Xeon(TM) CPU 3.40GHz
>>> 
>>> _______________________________________________
>>> ffmpeg-user mailing list
>>> ffmpeg-user at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> 
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> 
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user



More information about the ffmpeg-user mailing list