Hi, I am getting an the following error for a video that Dali is saying has variable frame rate, but it does not. Is this indicative of something else?
(Also, unsure how to post the mp4 for ease of testing. Let me know if you would like that.)
Traceback (most recent call last):
File "video_dataset.py", line 63, in <module>
dali_iter = get_loader(opt, 'train')
File "video_dataset.py", line 55, in get_loader
pipes[0].build()
File "/private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/pipeline.py", line 305, in build
self._pipe.Build(self._names_and_devices)
RuntimeError: [/opt/dali/dali/pipeline/operators/reader/video_reader_op.h:60] [/opt/dali/dali/pipeline/operators/reader/loader/video_loader.cc:222] Assert on "file.frame_base_.num == 1" failed: Variable frame rate videos are unsupported. Check failed for file: /checkpoint/cinjon/spaceofmotion/sep052019/vids/-YxFfTFfRmo-_.mp4
Stacktrace (29 entries):
[frame 0]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0xc716e) [0x7f451f86416e]
[frame 1]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x18a8f8) [0x7f451f9278f8]
[frame 2]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1b7ed8) [0x7f451f954ed8]
[frame 3]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1b8dc2) [0x7f451f955dc2]
[frame 4]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(std::_Function_handler<std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (dali::OpSpec const&), std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (*)(dali::OpSpec const&)>::_M_invoke(std::_Any_data const&, dali::OpSpec const&)+0xc) [0x7f451f8c2d0c]
[frame 5]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1f2384) [0x7f451f98f384]
[frame 6]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::InstantiateOperator(dali::OpSpec const&)+0x34e) [0x7f451f98e7be]
[frame 7]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::OpGraph::InstantiateOperators()+0xb9) [0x7f451f88a679]
[frame 8]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::Pipeline::Build(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >)+0xd68) [0x7f451f9fe868]
[frame 9]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x2ceff) [0x7f4524d08eff]
[frame 10]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x1ff23) [0x7f4524cfbf23]
[frame 11]: python(_PyMethodDef_RawFastCallKeywords+0x254) [0x56540b8b3744]
[frame 12]: python(_PyCFunction_FastCallKeywords+0x21) [0x56540b8b3861]
[frame 13]: python(_PyEval_EvalFrameDefault+0x52f8) [0x56540b91f6e8]
[frame 14]: python(_PyFunction_FastCallKeywords+0xfb) [0x56540b8b2ccb]
[frame 15]: python(_PyEval_EvalFrameDefault+0x6a3) [0x56540b91aa93]
[frame 16]: python(_PyEval_EvalCodeWithName+0xac9) [0x56540b863d09]
[frame 17]: python(_PyFunction_FastCallKeywords+0x387) [0x56540b8b2f57]
[frame 18]: python(_PyEval_EvalFrameDefault+0x416) [0x56540b91a806]
[frame 19]: python(_PyEval_EvalCodeWithName+0x2f9) [0x56540b863539]
[frame 20]: python(PyEval_EvalCodeEx+0x44) [0x56540b864424]
[frame 21]: python(PyEval_EvalCode+0x1c) [0x56540b86444c]
[frame 22]: python(+0x22ab74) [0x56540b979b74]
[frame 23]: python(PyRun_FileExFlags+0xa1) [0x56540b983eb1]
[frame 24]: python(PyRun_SimpleFileExFlags+0x1c3) [0x56540b9840a3]
[frame 25]: python(+0x236195) [0x56540b985195]
[frame 26]: python(_Py_UnixMain+0x3c) [0x56540b9852bc]
[frame 27]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f45ee77bb97]
[frame 28]: python(+0x1db062) [0x56540b92a062]
Stacktrace (28 entries):
[frame 0]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0xc716e) [0x7f451f86416e]
[frame 1]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1b7c3c) [0x7f451f954c3c]
[frame 2]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1b8dc2) [0x7f451f955dc2]
[frame 3]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(std::_Function_handler<std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (dali::OpSpec const&), std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (*)(dali::OpSpec const&)>::_M_invoke(std::_Any_data const&, dali::OpSpec const&)+0xc) [0x7f451f8c2d0c]
[frame 4]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1f2384) [0x7f451f98f384]
[frame 5]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::InstantiateOperator(dali::OpSpec const&)+0x34e) [0x7f451f98e7be]
[frame 6]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::OpGraph::InstantiateOperators()+0xb9) [0x7f451f88a679]
[frame 7]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::Pipeline::Build(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >)+0xd68) [0x7f451f9fe868]
[frame 8]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x2ceff) [0x7f4524d08eff]
[frame 9]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x1ff23) [0x7f4524cfbf23]
[frame 10]: python(_PyMethodDef_RawFastCallKeywords+0x254) [0x56540b8b3744]
[frame 11]: python(_PyCFunction_FastCallKeywords+0x21) [0x56540b8b3861]
[frame 12]: python(_PyEval_EvalFrameDefault+0x52f8) [0x56540b91f6e8]
[frame 13]: python(_PyFunction_FastCallKeywords+0xfb) [0x56540b8b2ccb]
[frame 14]: python(_PyEval_EvalFrameDefault+0x6a3) [0x56540b91aa93]
[frame 15]: python(_PyEval_EvalCodeWithName+0xac9) [0x56540b863d09]
[frame 16]: python(_PyFunction_FastCallKeywords+0x387) [0x56540b8b2f57]
[frame 17]: python(_PyEval_EvalFrameDefault+0x416) [0x56540b91a806]
[frame 18]: python(_PyEval_EvalCodeWithName+0x2f9) [0x56540b863539]
[frame 19]: python(PyEval_EvalCodeEx+0x44) [0x56540b864424]
[frame 20]: python(PyEval_EvalCode+0x1c) [0x56540b86444c]
[frame 21]: python(+0x22ab74) [0x56540b979b74]
[frame 22]: python(PyRun_FileExFlags+0xa1) [0x56540b983eb1]
[frame 23]: python(PyRun_SimpleFileExFlags+0x1c3) [0x56540b9840a3]
[frame 24]: python(+0x236195) [0x56540b985195]
[frame 25]: python(_Py_UnixMain+0x3c) [0x56540b9852bc]
[frame 26]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f45ee77bb97]
[frame 27]: python(+0x1db062) [0x56540b92a062]
@cinjon DALI uses some heuristics to determine if the video is vfr. It may be not 100% accurate.
@a-sansanwal - maybe we can add this vfs detection optional and allow user to bypass it?
Hi, thanks for the question.
It looks like the old check for VFR fired for your video. What is your DALI version? Could you try newer version of DALI as this was addressed in #1242
@cinjon Try using the newer version of DALI, I fixed this issue recently.
If you still face an issue, point me to where you got the video from or maybe upload it to google drive, github or something. If you do build DALI yourself then its very easy to disable the check by removing the below lines.
https://github.com/NVIDIA/DALI/blob/703b2f5df7b31892530d4ef4411b91e752b4978e/dali/pipeline/operators/reader/loader/video_loader.cc#L272-L274
@JanuszL I'll add it to my to-do.
Hi, I had 0.14.0 installed, which was released more recently than when that PR (#1242) was accepted. It seems like that should have addressed it though because the frame rate according to ffmpeg is 30000/1001.
(I just tried to use the nightly-build to see if that helped but hit a snag because import nvidia.dali.ops as ops isn't found.)
@a-sansanwal Here's an uploaded copy of the video: https://drive.google.com/file/d/1W89mvxDeMxzBr0Hj5WAN5KIG86H8Ioix/view?usp=sharing
@cinjon I just tested it with the nightly build here https://docs.nvidia.com/deeplearning/sdk/dali-developer-guide/docs/quickstart.html#nightly-builds and it seems to work. Try again with the nightly it should work because looking at the video it does seem it has the issue which was addressed in #1242
@cinjon - which particular nightly build didn't work? Can you issue pip show nvidia-dali-nightly and provide the result?
I am not sure which one I used because I uninstalled it after to try something else with normal nvidia-dali. I do recall though that the error I was getting was that I could not import nvidia.dali.ops.
I just uninstalled nvidia-dali and nvidia-ml-py3 and installed nvidia-dali-nightly (0.16.0.dev20191014). After doing so, I ran it again and got the same error, but this time on a .mov. I checked and it's the same fps (3000/1001). Is it because it's a .mov?
Traceback (most recent call last):
File "video_dataset.py", line 63, in <module>
dali_iter = get_loader(opt, 'train')
File "video_dataset.py", line 55, in get_loader
pipes[0].build()
File "/private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/pipeline.py", line 313, in build
self._pipe.Build(self._names_and_devices)
RuntimeError: [/opt/dali/dali/pipeline/operators/reader/loader/video_loader.cc:274] Assert on "skip_vfr_check_ || almost_equal(av_q2d(file.frame_base_), pkt.duration * av_q2d(file.stream_base_), 2)" faile
d: Variable frame rate videos are unsupported. Check failed for file: /path/to/<file>.mov
Stacktrace (30 entries):
[frame 0]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1bb67e) [0x7fdbafa6a67e]
[frame 1]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2915fc) [0x7fdbafb405fc]
[frame 2]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x299252) [0x7fdbafb48252]
[frame 3]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2c11bf) [0x7fdbafb701bf]
[frame 4]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2c20b2) [0x7fdbafb710b2]
[frame 5]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(std::_Function_handler<std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (dali::OpSpec const&), std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (*)(dali::OpSpec const&)>::_M_invoke(std::_Any_data const&, dali::OpSpec const&)+0xc) [0x7fdbafad1cfc]
[frame 6]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x300ea4) [0x7fdbafbafea4]
[frame 7]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::InstantiateOperator(dali::OpSpec const&)+0x34e) [0x7fdbafbaf3de]
[frame 8]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::OpGraph::InstantiateOperators()+0xaf) [0x7fdbafa96cef]
[frame 9]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::Pipeline::Build(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >)+0xad8) [0x7fdbafc1fa68]
[frame 10]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x578af) [0x7fdbb81188af]
[frame 11]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x2c323) [0x7fdbb80ed323]
[frame 12]: python(_PyMethodDef_RawFastCallKeywords+0x254) [0x555728f97744]
[frame 13]: python(_PyCFunction_FastCallKeywords+0x21) [0x555728f97861]
[frame 14]: python(_PyEval_EvalFrameDefault+0x52f8) [0x5557290036e8]
[frame 15]: python(_PyFunction_FastCallKeywords+0xfb) [0x555728f96ccb]
[frame 16]: python(_PyEval_EvalFrameDefault+0x6a3) [0x555728ffea93]
[frame 17]: python(_PyEval_EvalCodeWithName+0xac9) [0x555728f47d09]
[frame 18]: python(_PyFunction_FastCallKeywords+0x387) [0x555728f96f57]
[frame 19]: python(_PyEval_EvalFrameDefault+0x416) [0x555728ffe806]
[frame 20]: python(_PyEval_EvalCodeWithName+0x2f9) [0x555728f47539]
[frame 21]: python(PyEval_EvalCodeEx+0x44) [0x555728f48424]
[frame 22]: python(PyEval_EvalCode+0x1c) [0x555728f4844c]
[frame 23]: python(+0x22ab74) [0x55572905db74]
[frame 24]: python(PyRun_FileExFlags+0xa1) [0x555729067eb1]
[frame 25]: python(PyRun_SimpleFileExFlags+0x1c3) [0x5557290680a3]
[frame 26]: python(+0x236195) [0x555729069195]
[frame 27]: python(_Py_UnixMain+0x3c) [0x5557290692bc]
[frame 28]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fdc81b63b97]
[frame 29]: python(+0x1db062) [0x55572900e062]
@a-sansanwal ?
@cinjon please upload the video.
Sorry for the delay - I was having some issues on another thread which made it difficult to address this. The video in question is quite large (1hr+) so I'd rather not use that. However, I did find that this problem is not localized to movs. Here is an mp4 (https://drive.google.com/open?id=1bf4sduonpG_3fCPT1EndT3HbefdH7BS1) which has a constant frame rate according to ffmpeg (ffmpeg -i /path/to/20190819_161256.mp4 -vf vfrdet -f null - --> VFR:0.000000 (0/1693). However, the returned error from Dali is about how it has a variable frame rate:
Traceback (most recent call last):
File "video_dataset.py", line 63, in <module>
dali_iter = get_loader(opt, 'train')
File "video_dataset.py", line 55, in get_loader
pipes[0].build()
File "/private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/pipeline.py", line 313, in build
self._pipe.Build(self._names_and_devices)
RuntimeError: [/opt/dali/dali/pipeline/operators/reader/loader/video_loader.cc:274] Assert on "skip_vfr_check_ || almost_equal(av_q2d(file.frame_base_), pkt.duration * av_q2d(file.stream_base_), 2)" failed: Variable frame rate videos are unsupported. Check failed for file: /path/to/20190819_161256.mp4
Stacktrace (30 entries):
[frame 0]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x1bb67e) [0x7ff42adcb67e]
[frame 1]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2915fc) [0x7ff42aea15fc]
[frame 2]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x299252) [0x7ff42aea9252]
[frame 3]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2c11bf) [0x7ff42aed11bf]
[frame 4]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x2c20b2) [0x7ff42aed20b2]
[frame 5]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(std::_Function_handler<std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (dali::OpSpec const&), std::unique_ptr<dali::OperatorBase, std::default_delete<dali::OperatorBase> > (*)(dali::OpSpec const&)>::_M_invoke(std::_Any_data const&, dali::OpSpec const&)+0xc) [0x7ff42ae32cfc]
[frame 6]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(+0x300ea4) [0x7ff42af10ea4]
[frame 7]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::InstantiateOperator(dali::OpSpec const&)+0x34e) [0x7ff42af103de]
[frame 8]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::OpGraph::InstantiateOperators()+0xaf) [0x7ff42adf7cef]
[frame 9]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/libdali.so(dali::Pipeline::Build(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >)+0xad8) [0x7ff42af80a68]
[frame 10]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x578af) [0x7ff4334798af]
[frame 11]: /private/home/cinjon/anaconda3/envs/onoff/lib/python3.7/site-packages/nvidia/dali/backend_impl.cpython-37m-x86_64-linux-gnu.so(+0x2c323) [0x7ff43344e323]
[frame 12]: python(_PyMethodDef_RawFastCallKeywords+0x254) [0x5584f5ab2744]
[frame 13]: python(_PyCFunction_FastCallKeywords+0x21) [0x5584f5ab2861]
[frame 14]: python(_PyEval_EvalFrameDefault+0x52f8) [0x5584f5b1e6e8]
[frame 15]: python(_PyFunction_FastCallKeywords+0xfb) [0x5584f5ab1ccb]
[frame 16]: python(_PyEval_EvalFrameDefault+0x6a3) [0x5584f5b19a93]
[frame 17]: python(_PyEval_EvalCodeWithName+0xac9) [0x5584f5a62d09]
[frame 18]: python(_PyFunction_FastCallKeywords+0x387) [0x5584f5ab1f57]
[frame 19]: python(_PyEval_EvalFrameDefault+0x416) [0x5584f5b19806]
[frame 20]: python(_PyEval_EvalCodeWithName+0x2f9) [0x5584f5a62539]
[frame 21]: python(PyEval_EvalCodeEx+0x44) [0x5584f5a63424]
[frame 22]: python(PyEval_EvalCode+0x1c) [0x5584f5a6344c]
[frame 23]: python(+0x22ab74) [0x5584f5b78b74]
[frame 24]: python(PyRun_FileExFlags+0xa1) [0x5584f5b82eb1]
[frame 25]: python(PyRun_SimpleFileExFlags+0x1c3) [0x5584f5b830a3]
[frame 26]: python(+0x236195) [0x5584f5b84195]
[frame 27]: python(_Py_UnixMain+0x3c) [0x5584f5b842bc]
[frame 28]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7ff4fcec4b97]
[frame 29]: python(+0x1db062) [0x5584f5b29062]
Quick investigation reveals that ffmpeg reports this video as a frame rate of 50820/1693 (30.0177200236267) not 30 fps. Looking at the timestamps however using ffprobe -show_frames 20190819_161256.mp4 reveals that the video should be 30 fps.
So this could be an issue with ffmpeg, or during transcoding the frame rate was incorrectly written.
You can use skip_vfr_check option to skip the check if you are using the latest nightly.
qq: What command did you do use to find that?
I'll try the skip_vr_check over the full dataset and report back tomorrow (flying today). Thanks so much for being so responsive gentlemen. It's super appreciated :).
@cinjon
ffprobe -show_frames 20190819_161256.mp4 shows frame information
ffmpeg -i 20190819_161256.mp4 -hide_banner for video stream information
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20190819_161256.mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 2019-08-22T22:02:53.000000Z
encoder : HandBrake 1.2.0 2018122200
Duration: 00:00:56.43, start: 0.000000, bitrate: 1018 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x620 [SAR 1:1 DAR 64:31], 1015 kb/s, 30.02 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2019-08-22T22:02:53.000000Z
handler_name : VideoHandler
At least one output file must be specified
FYI. Building a nightly mode as of today (nvidia.dali.__version__ returns 0.16.0dev.20191023) worked for me with video @29.97. Also, I could find nvidia.dali.ops under [path-to-python-packages]/nvidia/dali/ops.py.
Most helpful comment
@cinjon Try using the newer version of DALI, I fixed this issue recently.
If you still face an issue, point me to where you got the video from or maybe upload it to google drive, github or something. If you do build DALI yourself then its very easy to disable the check by removing the below lines.
https://github.com/NVIDIA/DALI/blob/703b2f5df7b31892530d4ef4411b91e752b4978e/dali/pipeline/operators/reader/loader/video_loader.cc#L272-L274
@JanuszL I'll add it to my to-do.