Hello,

Hit a condition where ffmpeg will freeze within 1-2 min. from start during transcode with libx264 or nvenc - it actually freezes in pthread_cond_timedwait() / udp_read() in libavformat. Just curious what it may be, ideas welcome. Examples below are with ffmpeg-3.0, but recent pulls from git give same condition.

Just to note that I that same stream udp://239.255.254.2:1234 is transcoded on different server - and that runs for several years with little problem - with an older ffmpeg, on HP DL360 G5 server, and this test is on AMD mainboard with AMD FX(tm)-4170 Quad-Core Processor.

--------------------- example is with nvenc, same with libx264 ------------------- ggeorgiev@gtx690:~/build/ffmpeg-3.0$ ./ffmpeg_g -i udp://239.255.254.2:1234?overrun_nonfatal=1 -y -an -c:v nvenc -b:v 6M -f mpegts udp://239.255.254.250:1234?pkt_size=1316
ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/usr/local --enable-nvenc --enable-libfaac --enable-libfdk-aac --enable-librtmp --enable-libx264 --enable-gpl --enable-nonfree --enable-fontconfig --enable-libfreetype --enable-libfribidi
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[mpeg2video @ 0x35bdfc0] Invalid frame dimensions 0x0.
    Last message repeated 13 times
Input #0, mpegts, from 'udp://239.255.254.2:1234?overrun_nonfatal=1':
  Duration: N/A, start: 858.765211, bitrate: 17776 kb/s
  Program 3
Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 17200 kb/s, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc Stream #0:1[0x34](fre): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s (clean effects) Stream #0:2[0x35](frm): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 192 kb/s (visual impaired)
Output #0, mpegts, to 'udp://239.255.254.250:1234?pkt_size=1316':
  Metadata:
    encoder         : Lavf57.25.100
Stream #0:0: Video: h264 (nvenc) (Main), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 6000 kb/s, 59.94 fps, 90k tbn, 59.94 tbc
    Metadata:
      encoder         : Lavc57.24.102 nvenc
    Side data:
      unknown side data type 10 (24 bytes)
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (nvenc))
Press [q] to stop, [?] for help
frame=22864 fps= 60 q=-0.0 size= 287889kB time=00:06:20.96 bitrate=6190.6kbits/s speed=1.01x ------------------------- after frame shown, it freezes ------------------

------------------------- stack dump --------------------------
ggeorgiev@gtx690:~/build/ffmpeg-3.0$ gdb ffmpeg_g 1582
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
.................
(gdb) where
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238 #1 0x00000000006cb672 in udp_read (h=0x3599f20, buf=0x37a0180 "G", size=65536) at libavformat/udp.c:923 #2 0x00000000005d0aa3 in retry_transfer_wrapper (transfer_func=0x6cb5a0 <udp_read>, size_min=1, size=65536, buf=0x37a0180 "G", h=0x3599f20)
    at libavformat/avio.c:392
#3 ffurl_read (h=0x3599f20, buf=0x37a0180 "G", size=65536) at libavformat/avio.c:423 #4 0x00000000005d5ec5 in fill_buffer (s=0x35ba3c0) at libavformat/aviobuf.c:487 #5 avio_read (size=188, buf=0x7ffd28d9e830 "G", s=0x35ba3c0) at libavformat/aviobuf.c:575 #6 ffio_read_indirect (s=s@entry=0x35ba3c0, buf=buf@entry=0x7ffd28d9e830 "G", size=size@entry=188, data=data@entry=0x7ffd28d9e828)
    at libavformat/aviobuf.c:610
#7 0x0000000000658dd7 in read_packet (s=s@entry=0x35996c0, buf=buf@entry=0x7ffd28d9e830 "G", raw_packet_size=188, data=data@entry=0x7ffd28d9e828)
    at libavformat/mpegts.c:2353
#8 0x0000000000659a61 in handle_packets (ts=ts@entry=0x35ca4c0, nb_packets=nb_packets@entry=0) at libavformat/mpegts.c:2422 #9 0x0000000000659b02 in mpegts_read_packet (s=<optimized out>, pkt=0x7ffd28d9eb20) at libavformat/mpegts.c:2658 #10 0x00000000006d006c in ff_read_packet (s=0x35996c0, pkt=0x7ffd28d9eb20) at libavformat/utils.c:697 #11 0x00000000006d33e0 in read_frame_internal (s=0x35996c0, pkt=0x7ffd28d9ef20) at libavformat/utils.c:1359 #12 0x00000000006d436a in av_read_frame (s=0x35996c0, pkt=0x7ffd28d9ef20) at libavformat/utils.c:1520 #13 0x0000000000497051 in get_input_packet (pkt=<optimized out>, f=<optimized out>) at ffmpeg.c:3644
#14 process_input (file_index=<optimized out>) at ffmpeg.c:3764
#15 transcode_step () at ffmpeg.c:4074
#16 transcode () at ffmpeg.c:4128
#17 0x000000000047a0a7 in main (argc=<optimized out>, argv=0x7ffd28d9f288) at ffmpeg.c:4319
(gdb)
--------------------------------------------------------------------

Some ideas what may cause the problem? As told, same stream is transcoded in parallel on older ffpeg version, and it works. Could the computer type make the problem?

Any ideas appreciated,
Thanks, George.


_______________________________________________
ffmpeg-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

Reply via email to