Hi all,

I was hoping to get some help on my streaming setup. I am currently working on 
some video-related experiments involving streaming H.264-encoded video using 
UDP.

My setup:

OS: Ubuntu 18.04.4 LTS (reproduced on Ubuntu 20.04 LTS as well)
Ffmpeg version: N-98617-g533d603 (reproduced with 4.3 as well)
Configuration settings:  --prefix=/home/trenton-windows/ffmpeg_build 
--pkg-config-flags=--static 
--extra-cflags=-I/home/trenton-windows/ffmpeg_build/include 
--extra-ldflags=-L/home/trenton-windows/ffmpeg_build/lib 
--extra-libs='-lpthread -lm' --bindir=/home/trenton-windows/bin --enable-gpl 
--enable-gnutls --enable-libaom --enable-libass --enable-libfdk-aac 
--enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis 
--enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree 
--enable-debug=3 --disable-optimizations --disable-stripping
​    libavutil      56. 57.100 / 56. 57.100
    libavcodec     58. 99.100 / 58. 99.100
    libavformat    58. 49.100 / 58. 49.100                                      
                     libavdevice    58. 11.101 / 58. 11.101                     
                                        libavfilter     7. 87.100 /  7. 87.100  
                                                         libswscale      5.  
8.100 /  5.  8.100                                                             
libswresample   3.  8.100 /  3.  8.100                                          
                 libpostproc    55.  8.100 / 55.  8.100

Problem Description:

On the same machine, I run the following two commands:

Client side:  ffmpeg -y -rtsp_flags listen -timeout 10 -i 
rtsp://localhost:12345/live.sdp -c copy test.mp4

Server side: ​ffmpeg -re -i 
TVs_Best_Kisses_Top_50_\(52_to_41\)_kiss_h_nm_np2_le_goo_1.avi -vcodec libx264 
-strict 2 -f rtsp -rtsp_transport udp rtsp://localhost:12345/live.sdp

​This works without a hitch on ffmpeg 3.4.8-0ubuntu0.2 (installed via apt-get), 
and I can open test.mp4 in a media player to view a streamed copy of the input 
video file. However, I have since upgraded to the most recent version because I 
need to use the -stream_loop functionality, which was buggy in older versions 
of ffmpeg. When I run the same commands as above in the updated version, 
however, the client side hangs indefinitely. However, it works when I switch 
protocol to TCP (using '-rtsp_transport tcp'). This happens regardless of the 
input file that I use. When I Ctrl-C the client, I see a file called test.mp4, 
but it's unplayable, which I can tell because ffprobe outputs the following:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x562e3d718e80] moov atom not found
test.mp4: Invalid data found when processing input

Logs and descriptions

The following files are all hosted at 
https://drive.google.com/drive/folders/1oQnh-kAL4x6Zm-kaRDP_9aZgLH9YG2ub?usp=sharing.

ffmpeg-20200803-170914.log: Using ffmpeg version N-98617-g533d603, client-side 
command run with addition arguments -report -loglevel 99 -v 9 . This command 
hangs.
ffmpeg-20200803-170915.log: Using ffmpeg version N-98617-g533d603, server-side 
command run with addition arguments -report -loglevel 99 -v 9 . This works 
without a problem.
ffmpeg-20200803-172801.log: Using ffmpeg version 3.4.8-0ubuntu0.2, client-side 
command run with addition arguments -report -loglevel 99 -v 9 . This works 
without a problem.
ffmpeg-20200803-172802.log: Using ffmpeg version 3.4.8-0ubuntu0.2, server-side 
command run with addition arguments -report -loglevel 99 -v 9 . This works 
without a problem.
gdb.txt: ffmpeg_g log for the client; with SIGINT at the point where it hangs 
(seems like it waits for a packet forever).
TVs_Best_Kisses_Top_50_(52_to_41)_kiss_h_nm_np2_le_goo_1: Input video file for 
the commands in these logs, for completeness. The problem I'm describing 
happens regardless of which video file I try to stream.

What I've tried (all of these have failed):

  *   Messed with the client buffer size, by appending buffer_size and 
fifo_size arguments to the client-side input URL like so: 
'rtsp://localhost:12345/live.sdp?buffer_size=10000000?fifo_size=100000'
  *   In response to warnings about PTS/DTS issues on the client-side, I added 
the options -fflags +genpts+igndts to the client-side command. I also tried 
just -fflags +genpts.
  *   Tried adding -vsync 0 to the server side command as an output option.
  *   Removed -vcodec libx264 -strict 2 on the server side.
  *   Removed the -re real-time streaming option on the server side.
  *   Changed port no. from 12345.
  *   Tried streaming raw UDP w/o RTSP (still hangs, same issue).
     *   Client-side command: ffmpeg -y -i udp://localhost:12345/ -c copy 
test.mp4
     *   Server-side command: ffmpeg -y -re -i 
TVs_Best_Kisses_Top_50_\(52_to_41\)_kiss_h_nm_np2_le_goo_1.avi -vcodec libx264 
-strict 2 -f mpegts udp://localhost:12345/
  *   Tried using RTP protocol, results in error "[rtp @ 0x561525b9e680] Unable 
to receive RTP payload type 96 without an SDP file describing it"
     *   Client-side command: ffmpeg -i rtp://localhost:12345 -c copy test.mp4
     *   Server-side command: ffmpeg -y -re -i 
TVs_Best_Kisses_Top_50_\(52_to_41\)_kiss_h_nm_np2_le_goo_1.avi -vcodec libx264 
-strict 2 -f rtp rtp://localhost:12345/

Networking/systems is certainly not my area of expertise, so I'd appreciate any 
help here. Please let me know if there's other logs or information that you'd 
find helpful. Thank you in advance.

Best,


Trenton Chang

M.S. Candidate in Computer Science

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

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to