VLC not working on L4T R27.0.1?

Hi,

I’ve installed vlc through apt (vlc/xenial-updates,now 2.2.2-5ubuntu0.16.04.1 arm64) on my TX2 with R27.0.1, but it fails for many things.
The GUI is ok.
I can play sound (wav files at least).

But trying to play a video is not working:

cvlc /home/ubuntu/VisionWorks-SFM-0.90-Samples/data/sfm/parking_sfm.mp4 
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[000000000052a440] dummy interface: using the dummy interface module...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingBus error (core dumped)

and with dmesg I can see:

[  748.070461] vlc[3531]: PC Alignment exception: pc=00000000000000a5 sp=0000007f99cf2ac0

With another avi file I get the same.

If I try to play another file (not sure about its format, frames number, nor correctness):

vlc /home/ubuntu/nvcamtest_2393_s00_00000.mp4 
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[0000000000415160] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f64c4a4a0] moov atom not found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f64002330] moov atom not found
[0000007f64003c80] avformat demux error: Could not open /home/ubuntu/nvcamtest_2393_s00_00000.mp4: Unknown error 1094995529

About avformat, I have these installed:

sudo apt search libavformat |grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libavformat-dev/xenial-updates,xenial-security,now 7:2.8.11-0ubuntu0.16.04.1 arm64 [installed]
libavformat-ffmpeg56/xenial-updates,xenial-security,now 7:2.8.11-0ubuntu0.16.04.1 arm64 [installed,automatic]
libavutil-dev/xenial-updates,xenial-security,now 7:2.8.11-0ubuntu0.16.04.1 arm64 [installed]
libavutil-ffmpeg54/xenial-updates,xenial-security,now 7:2.8.11-0ubuntu0.16.04.1 arm64 [installed,automatic]

If I try from GUI to go to video capture, select “vi-output, ov5693 2-0036”, I get:

Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[0000007f50001920] v4l2 demux error: cannot get streaming parameters: Inappropriate ioctl for device
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[0000007f5c000fb0] core input error: Invalid PCR value in ES_OUT_SET_(GROUP_)PCR !
[00000000004fcc20] core playlist: stopping playback
QObject::~QObject: Timers cannot be stopped from another thread

and with dmesg:

[ 1171.019261] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1172.023266] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1173.027219] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1174.031296] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1175.035309] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1176.039251] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1177.043332] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1178.047376] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1179.051362] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1180.055377] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1181.059388] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1182.063396] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1183.067462] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1184.071443] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1185.075461] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1186.079470] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1187.083412] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1188.087492] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1189.091515] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1190.095529] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1191.099535] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
[ 1192.103546] tegra-vi4 15700000.vi: ATOMP_FE syncpt timeout!

I have libvdpau 1.1.1 installed:

sudo apt search libvdpau |grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libvdpau1/xenial,now 1.1.1-3ubuntu1 arm64 [installed]
vdpau-driver-all/xenial,now 1.1.1-3ubuntu1 arm64 [installed,automatic]

but no file libvdpau_nvidia.so.

I have tried

vlc --reset-config --reset-plugins-cache

without improvment.

Anyone got it working ? Is it better with R27.1 ?

Thanks

some links you might find useful:
http://elinux.org/Jetson/Graphics_Performance
https://devtalk.nvidia.com/default/topic/763308/jetson-tk1-vlc-hardware-accelerated-decoding-/
https://devtalk.nvidia.com/default/topic/751272/very-poor-jetson-support/
https://devtalk.nvidia.com/default/topic/751842/jetson-tk1/jetson-tk1-should-vlc-player-from-ubuntu-14-04-work-out-of-the-box-/
https://devtalk.nvidia.com/default/topic/865701/tk1-vlc-vs-gstreamer/?offset=3
Does mplayer play videos?

Hi Patouceul,
We don’t have HW acceleration integrated with vlc(based on ffmpeg). Please try gstreamer or MM APIs.

How to play .ts file with gst-launch-1.0 ?

gst-launch-1.0 filesrc location=/home/nvidia/Downloads/test.ts ! qtdemux name=demux ! h264parse ! omxh264dec ! nvoverlaysink -e 
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:demux: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(699): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:demux:
atom has bogus size 1195376657
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

checked the above with a different file taken from there : http://www.w6rz.net/

gst-launch-1.0 filesrc location=ed24p_10.ts ! qtdemux name=demux ! h264parse ! omxh264dec ! nvoverlaysink -e 
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:demux: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(699): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:demux:
atom has bogus size 1191194906
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
gst-launch-1.0 filesrc location=ed24p_10.ts ! qtdemux name=demux ! h264parse ! omxh264dec ! nveglglessink -e 
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:demux: This file is invalid and cannot be played.
Additional debug info:
qtdemux.c(699): gst_qtdemux_pull_atom (): /GstPipeline:pipeline0/GstQTDemux:demux:
atom has bogus size 1191194906
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
gst-launch-1.0 filesrc location=ed24p_11.ts ! h265parse ! omxh265dec ! nvoverlaysink
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstH265Parse:h265parse0: GStreamer encountered a general stream error.
Additional debug info:
gstbaseparse.c(3599): gst_base_parse_loop (): /GstPipeline:pipeline0/GstH265Parse:h265parse0:
streaming stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

Is there an easy way to convert .ts file to .mkv to play it with “Videos” ?

gst-launch-1.0 -v uridecodebin uri=file:///home/nvidia/Downloads/ed24p_11.ts ! videoconvert ! omxh265enc ! matroskamux ! filesink location=test11.mkv
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and Mjstreaming/GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: source = "\(GstFileSrc\)\ source"
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = "video/mpegts\,\ systemstream\=\(boolean\)true\,\ packetsize\=\(int\)188"
Missing element: MPEG-2 Transport Stream demuxer
WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/mpegts, systemstream=(boolean)true, packetsize=(int)188'.
Additional debug info:
gsturidecodebin.c(939): unknown_type_cb (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
gsturidecodebin.c(1006): no_more_pads_full (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0:
no suitable plugins found:
gstdecodebin2.c(4565): gst_decode_bin_expose (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: MPEG-2 Transport Stream (video/mpegts, systemstream=(boolean)true, packetsize=(int)188)

ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
/GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = "NULL"
Freeing pipeline ...

References:
http://developer2.download.nvidia.com/embedded/L4T/r24_Release_v2.0/Docs/L4T_Tegra_X1_Multimedia_User_Guide_Release_24.2.pdf
https://devtalk.nvidia.com/default/topic/1001784/jetson-tx1/accelerated-gstreamer-user-guide-results/
https://devtalk.nvidia.com/default/topic/1002327/jetson-tx1/hardware-accelerated-video-encoding-with-gstreamer/post/5122103/#5122103

Hi Andrey, please try ‘decodebin’

gst-launch-1.0 filesrc location= test.ts ! decodebin ! nvoverlaysink

ty

gst-launch-1.0 filesrc location=/home/nvidia/Desktop/newmobcal1920_12mbps.ts ! decodebin ! nvoverlaysink
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
Missing element: MPEG-2 Transport Stream demuxer
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in.
Additional debug info:
gstdecodebin2.c(4565): gst_decode_bin_expose (): /GstPipeline:pipeline0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: MPEG-2 Transport Stream (video/mpegts, systemstream=(boolean)true, packetsize=(int)188)

ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

perhaps I should refer to How to install GStreamer plugin having "MPEG-2 Transport Stream demuxer" element on windows - Stack Overflow;
perhaps installation of gst-plugins-bad will resolve the issue;
rather of gstreamer1.0-plugins-bad;
It does play now!
“Videos” now plays ts files.
Thank you.

Is there a chance to specify an audio track in the totem somehow?

Hi Andrey, do you mean to do video playback along with audio?

Exactly! In case a video has in mkv file two audio tracks e.g in different languages - is there any way to specify a track?

Hi Andrey, It is a pure gstreamer question. Please make a post in gstreamer forum.
http://gstreamer-devel.966125.n4.nabble.com/

Indeed, http://gstreamer-devel.966125.n4.nabble.com/how-to-switch-audio-tracks-in-totem-for-a-mkv-file-with-two-streams-td4683033.html .

I would actually suggest flashing R27.1 due to a number of reliability issues with R27.0.1. Your problems with vlc could just go away…a number of other bugs would be fixed even if vlc isn’t fixed.

Thank you, linuxdev.
It turned out that I have 27.1 and vlc seems to be installible with: sudo apt-get install vlc

vlc seems to be installible with: sudo apt-get install vlc

Yes, but it will not support the Jetson acceleration magic (unless VLC now comes with gstreamer support?)
It might work on CPU only; it would just use more system resources in that case.

I bought the Jetson Nano for various reasons but I really wanted to use it to watch videos as well ;-)
So I tried to use VLC, but as you have probably noticed it crashed as soon as you load a video ;-(
Yes, I know about gstreamer but just try to explain to my wife how to use it, good luck! She already knows VLC so let’s try again…
I downloaded the sources vlc-3.0.8.tar.xz from the videolan site, I builded it and, surprise, it works from the build directory. But, … I tried to install it and it does not work anymore.
So I compared the two runs with --verbose=4 and I noticed that the installed version was trying to use the libomxil plugin. I don’t know exactly what the problem is with it but if you delete or rename the file “/usr/lib/aarch64-linux-gnu/vlc/plugins/codec/libomxil_plugin.so” everything should work.
So in the end, just run “sudo apt install vlc” and “sudo mv /usr/lib/aarch64-linux-gnu/vlc/plugins/codec/libomxil_plugin.so /usr/lib/aarch64-linux-gnu/vlc/plugins/codec/libomxil_plugin.so.old”.
No hardware acceleration but most of my videos are on H264 so the CPU can cope at 1280x720… including .ass subtitles (you might have to tune your fonts!)
I am using R32.4.2.

1 Like

@megardd,

Thanks for your investigation and sharing. This is really useful. Indeed,

sudo mv /usr/lib/aarch64-linux-gnu/vlc/plugins/codec/libomxil_plugin.so /usr/lib/aarch64-linux-gnu/vlc/plugins/codec/libomxil_plugin.so.old

fixed it on my Xavier R32.4.2.
Best wishes to your wife with Nano ;-)

3 Likes

@megardd, Thanks for the solution. It worked on my Nano

@megardd, thanks for the solution ! It works perfectly with my Jetson Xavier NX !

Alain