This is probably an easy question, but I haven’t figured it out yet. I’m trying to stream an H264 1080p60 source from the TK1 to my desktop. The TK1 pipeline is…
The problem is now just the smoothness of the video…it’s very choppy at 1080p60 and somewhat choppy at 720p. At 1080p the cpu is only at 18% which is great, but the choppy video could be deal breaker.
I will continue to play with it…thoughts are always welcome!
one potential issue leading to “choppy” video is that you set your videosink to sync=false. This means that it will spit out any frame as soon as it is received and not consider a regular timing (1/60Hz) or discard frames that arive too late. You might consider adding timestamps to the frames (e.g. in the v4l2src with do-timestamp=true) and setting your sink to sync=true.
Also you are using some software-plugins that could be replaced with hardware-accelerated plugins, like: videoconvert → nvvidconv, avdec_h264 → omxh264dec, xvimagesink → nvhdmioverlaysink
For comparison, I have used the following pipelines:
Thanks for your suggestions kamm. I tried messing with the timestamp and sync settings you brought up, but I didn’t see any noticeable improvement.
The hardware vs software plugins is where my concern is. First of all the receiving pipeline is running on my PC so I have no way to accelerate that, but I’m pretty confident that my CPU should be able to handle it.
On the sending side I’m using videoconvert instead of nvvidconv because my video source is YUV or RGB and nvvidconv doesn’t seem to support those formats. It’s kinda looking like my video source format is the problem.
On the other hand, the following test pipelines definitely aren’t smooth either…
(Sorry for the late answer)
First of all the topic of using nvvidconv, if you have UYVY (which is a YUV422 format Best Online Casinos - Four Countries Casinos) on your input, you could still use nvvidconv. I am using it with a v4l2-source:
In order to improve performance, you could also try to change the io-mode property of your v4l2src. Depending on your V4L2-driver, the element after the vl42src and the GStreamer version you are using, you could try different modes. We are seeing good results with the Userptr mode for capturing a video and showing it on the screen using xvimagesink.
Lastly about the testing pipelines with videotestsrc: Be aware that the videotestsource runs on the CPU and for high resolutions and framerates it may be too slow and cause stuttering. To test this you can just view the test source directly on the output.