cta-wave / dpctf-deploy

WAVE Streaming Media Test Suite – Devices: This is the repository to install and deploy this test suite. Please read the README.md file for installation information.
https://www.cta.tech/Resources/Standards/WAVE-Project/WAVE-Streaming-Media-Test-Suite-Devices
Other
2 stars 5 forks source link

Failure at Frame 110 in observations #55

Closed gitwjr closed 8 months ago

gitwjr commented 9 months ago

When running cfhd_15_30_60 Local I always fails at Frame 110. Several other runs(e.g. chdf_12.5_25_50) also fail at Frame 110. After the runs end Powershell show (for the cfhd 15... local): … Checking frame 110... INFO QR code area for full scan is set to left half of image for mezzanine QR code. INFO QR code area for full scan is set to right half of image for test status QR code. INFO QR code area for full scan is set to [0, 0, 960, 1080] for mezzanine QR code, and [960, 0, 1920, 1080] for test status QR code. INFO Analysing 'C:\Users\brose\dpctf-deploy\device-observation-framework-main\GOPR5355.MP4'... INFO Extracting audio from 'C:\Users\brose\dpctf-deploy\device-observation-framework-main\GOPR5355.MP4' and save it to a wav file... ERROR Serious error is detected! [WinError 2] The system cannot find the file specified: Traceback (most recent call last): File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework.py", line 584, in main run( File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework.py", line 438, in run observation_framework.extract_and_read_audio_data(input_video_path_str, i) File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework_processor.py", line 213, in extract_and_read_audio_data input_audio_path_str = extract_audio_to_wav_file(input_video_path_str) File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\audio_file_reader.py", line 101, in extract_audio_to_wav_file result =subprocess.call( File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64qbz5n2kfra8p0\lib\subprocess.py", line 349, in call with Popen(*popenargs, **kwargs) as p: File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64qbz5n2kfra8p0\lib\subprocess.py", line 951, in init self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1420, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] The system cannot find the file specified Traceback (most recent call last): File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework.py", line 584, in main run( File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework.py", line 438, in run observation_framework.extract_and_read_audio_data(input_video_path_str, i) File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\observation_framework_processor.py", line 213, in extract_and_read_audio_data input_audio_path_str = extract_audio_to_wav_file(input_video_path_str) File "C:\Users\brose\dpctf-deploy\device-observation-framework-main\audio_file_reader.py", line 101, in extract_audio_to_wav_file result =subprocess.call( File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64qbz5n2kfra8p0\lib\subprocess.py", line 349, in call with Popen(*popenargs, **kwargs) as p: File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64qbz5n2kfra8p0\lib\subprocess.py", line 951, in init self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.3568.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1420, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] The system cannot find the file specified INFO Device Observation Framework has finished analysing all selected recordings, Device Observation Framework is exiting.

Results: a9361bee-cfhd_15_30_60-local-Ch120.json

gitwjr commented 8 months ago

I initially loaded Python 12 when setting up my system prior to loading the Test Suite. I built the TR with that installed. When building the OF I found it failed. I then uninstalled Python 12 and installed Python 9 (from Microsoft Store). The OF loaded fine and ran. Is it possible building the TR with Python 12 installed and the OF with Python 9 that is causing the above errors? I did not rebuild the TR after the change from Python 12 to 9. Both are running under python 9 so Paths are fine. It also appears I installed Docker under Python 12 as well. It seems to run fine under Python 9 and I haven't rebuilt the container since building the TR under Python 12. .

jpiesing commented 8 months ago

I used a python virtual environment to get the correct version for the OF. I don't know if that's possible on Windows and if it's easy.

louaybassbouss commented 8 months ago

@gitwjr are you using the docker OF build (as described in https://github.com/cta-wave/dpctf-deploy/blob/master/QUICK_START.md#phase-3-analyse-recording-using-device-observation-framework)? the OF runs in this case inside the docker and it doesn't matter which version of Python your host system is running. The docker installs the right version. PS: @FritzHeiden and I are working on removing the Python dependency on the host system. Python will be only used within the docker container and you don't need to care about how and which version to install. Docker will do this for you.

gitwjr commented 8 months ago

I downloaded the zip file from the dpctf-deploy - device OF github Code so I assume it was the right one. When I went to build the OF it failed. That's when I saw the Python 6-9 note and uninstalled 3.12 and installed 3.9 at which point it worked fine. Of course its possible I did something else that fixed it such as deleted/added Paths to 3.12 and to 3.9. I also cleaned up some remnants to the 3.9 version I installed last year which had been uninstalled leaving just the lib/script in the old folder.

gitwjr commented 8 months ago

Over the weekend I ran a test using chdf 12.5_... again. Same "frame 110" result in powershell on completion. Results: 2 tests passed. No failures or timeouts.

Test Files

  1. /chdf_12.5_25_50-local/sequential-track-playback__t20.html
Test Show/Hide Messages | Ch120 -- | -- /chdf_12.5_25_50-local/sequential-track-playback__t20.html | OK Test workflow | PASS video ended event fired | PASS
jpiesing commented 8 months ago

I would say the probability is 70% that there's an issue with the OF and only 30% that the python version has caused a problem. I recommend creating an issue in the OF repo and uploading the recording to something like wetransfter.com and sharing the URL with Yan.

gitwjr commented 8 months ago

@louaybassbouss @yanj-github You said Docker installs the right version of Python. Question: In Docker I have 1 container, DPCTF-DOCKER which has two images: DPCTF and Python. The Python image has tag 3.10 and says "Unused". Is that the version Docker installed? Is there something I need to do? As far as I know I don't have a copy of 3.10 on my machine and no paths to it.

Also, I ran the cfhd 12.5... again. My camera battery died before completing the test (GoPro battery can't run the entire test even fully charged). When I ran the OF on it I got the same failures after Frame 110. Results file shows 87 passed, 2 timed out. Do the results include the OF results? Or do the OF results not get stored due to the errors? NOTE: The errors seem to indicate the audio files can't be found. I know we are not testing audio but I thought we do test some spliced audio.

yanj-github commented 8 months ago

@gitwjr GoPro battery: I would suggest to record with cable connected with mains instead of using battery. For the OF issue, I guess it might be issue with locate file location. Did you give OF full path or relative path of the recording file when you run it to OF? Can you kindly let me know the full command that you run OF please?

gitwjr commented 8 months ago

python observation_framework.py --input C:\Users\brose\dpctf-deploy\device-observation-framework-main\GOPR5364.mp4

I run it with the directory set to C:\Users\brose\dpctf-deploy\device-observation-framework-main I did get several files in GOPRO when record. Do I need to combine them? For this recording they are 3.9GB (GOPR5364.mp4) and 3.6GB (GO15364). When I run the OF on the second one it fails immediately. The same thing (Frame 110 issue) happens with short tests where the battery has no problems. I only get a single file for those.

Thanks. I'll try to run the camera on USB power. I rigged something to let me mount it without the case which blocks the connector ports.

gitwjr commented 8 months ago

@yanj-github I have not downloaded the latest mezzanine content per https://github.com/cta-wave/device-observation-framework/blob/main/README.md. There are no instructions on doing it using WSL2 so I didn't worry about it on the assumption that we are not testing audio. However, since errors seem to indicate it fails when extracting audio is that perhaps the issue?

INFO Analysing 'C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\GOPR5369.MP4'... INFO Extracting audio from 'C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\GOPR5369.MP4' and save it to a wav file... ERROR Serious error is detected! [WinError 2] The system cannot find the file specified: Traceback (most recent call last): File "C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\observation_framework.py", line 584, in main run( File "C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\observation_framework.py", line 438, in run observation_framework.extract_and_read_audio_data(input_video_path_str, i) File "C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\observation_framework_processor.py", line 213, in extract_and_read_audio_data input_audio_path_str = extract_audio_to_wav_file(input_video_path_str) File "C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\audio_file_reader.py", line 101, in extract_audio_to_wav_file

yanj-github commented 8 months ago

python observation_framework.py --input C:\Users\brose\dpctf-deploy\device-observation-framework-main\GOPR5364.mp4

I run it with the directory set to C:\Users\brose\dpctf-deploy\device-observation-framework-main I did get several files in GOPRO when record. Do I need to combine them? For this recording they are 3.9GB (GOPR5364.mp4) and 3.6GB (GO15364). When I run the OF on the second one it fails immediately. The same thing (Frame 110 issue) happens with short tests where the battery has no problems. I only get a single file for those.

Thanks. I'll try to run the camera on USB power. I rigged something to let me mount it without the case which blocks the connector ports.

Thanks @gitwjr. Audio mezzanine is required for the audio testing. OF is doing audio testing regardless. When the same test saved as multiple files are multiple you can save them in a folder and give OF the folder directory, OF will go through them one after the other.

jpiesing commented 8 months ago

@yanj-github Is there any scope for improving the error messages when the audio mezzanine is needed and not present?

yanj-github commented 8 months ago

Thanks @jpiesing the audio mezzanine is downloaded part of docker deploy. But I think @gitwjr's case is run OF on windows which might caused the issue. There will be a way to improve the error message. We will take a look.

gitwjr commented 8 months ago

@yanj-github Is there any guidance as to how to download the Audio Mezzanine on a Windows WSL2 platform? I've tried both PowerShell import audio_mezzanine.bat and git bash sudo ./import_audio_mezzanine.sh after setting the directory to the audio mezz folder but both just return command not present/supported or responses to that effect.

Also, https://github.com/cta-wave/dpctf-deploy/blob/master/QUICK_START.md doesn't mention audio mezz. I assume that's because on non-windows installs it is automatically downloaded.

gitwjr commented 8 months ago

Yesterday I rebuilt the TR and OF in a new folder, dpctf-deploy-master (old folder dpctf-deploy) added the paths to the new folder and moved the paths ahead of the old folder. Worked fine but still shows the same frame 110 failure. Not surprising since the Audio Mezzanine folder is still empty except for the .download_mezzanine.py and import_audio_mezzanine.sh files.

gitwjr commented 8 months ago

@yanj-github @FritzHeiden I got the OF observation to complete on chdf_12.5...-Local. The problem appears to have ben ffmpeg not installed correctly. <y question now is, how do I know the results? It extracted the wav file and provided the following in powershell:
INFO Device Observation Framework analysis ended. INFO Device Observation Framework has finished analysing all selected recordings, Device Observation Framework is exiting.

I attached the log which still shows errors. events.log

yanj-github commented 8 months ago

@gitwjr Sorry for the delay in response. The OF will send result back to the test runner and you can view it on test runner result page. Or it also save the result locally with OF in results folder. I will need you know the session ID to find the right results.

yanj-github commented 8 months ago

@yanj-github Is there any guidance as to how to download the Audio Mezzanine on a Windows WSL2 platform? I've tried both PowerShell import audio_mezzanine.bat and git bash sudo ./import_audio_mezzanine.sh after setting the directory to the audio mezz folder but both just return command not present/supported or responses to that effect.

Also, https://github.com/cta-wave/dpctf-deploy/blob/master/QUICK_START.md doesn't mention audio mezz. I assume that's because on non-windows installs it is automatically downloaded.

Yes on docker installation the deploy script will download the audio mezzanine. Detailed instruction for manually download mezzanine is documented in OF readme file. required ffmpeg is also mentioned in OF readme. QUICK_START.md already contains link to the OF repo for user to get more detailed information.

gitwjr commented 8 months ago

Thanks Yan. It wasn't clear that the instructions were for Windows since the command shown is "sudo ./import_audio_mezzanine.sh" not .bat which is the extension for most of the windows instructons. When I run the command sudo ./import_audio_mezzanine.sh in powershell in directory C:\Users\brose\dpctf-deploy-master\device-observation-framework-main\audio_mezzanine> I got "sudo : The term 'sudo' is not recognized as the name of a cmdlet, function, script file, or operable program." Similar with git bash.

I managed to get it although I tried a number of things before I got the audio mezzanine (I don't remember which worked). Where does sudo work (or what am I doing wrong when using it)? I assume the instructions mean more to those with more software experience.

gitwjr commented 8 months ago

Close. Issue was solved by reloading Docker, TR, and the build.dof container. Windows git.bash opened from the Windows Search box doesn't appear to support sudo and some other commands.