Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ffmpeg error when processing input media #7

Open
drodz11 opened this issue Dec 15, 2023 · 1 comment
Open

ffmpeg error when processing input media #7

drodz11 opened this issue Dec 15, 2023 · 1 comment

Comments

@drodz11
Copy link

drodz11 commented Dec 15, 2023

[Posting this on Dec. 15, which is likely when many of us are going on Winter Break. Please do not feel obligated to respond until after the holidays!]

Hello,

Interested in the CLAMS apps generally, and trying to do some basic testing and getting some processes off ground and running into an error. Providing the basic info below, please let me know if you need anything additional to help with this.

OS: Mac Ventura 13.6

Docker: v4.15.0

Steps I am taking:

  1. Making "empty" MMIF file of source media with:
    clams source video:/Users/dwr16/clams/filmist.mp4 > filmist.mmif

  2. Built container from pre-built image: ghcr.io/clamsproject/app-brandeis-acs-wrapper:v2

  3. Launching container with:
    docker run -v /Users/dwr16/clams:/data -p 8086:5000 20360113afdbbb1de0a4773b67a43a4d28ecc28c060bdbc18c7199f9958d9d66

  4. curl-ing with:
    curl -H "Accept: application/json" -X POST [email protected] -s http://localhost:8086 > output.mmif

The result of the curl command creates an output.mmif file with an error from ffmepg (copied below in full). The first issue seems to be that the specified input media can't be found (see: Users/dwr16/clams/filmist.mp4: No such file or directory). Is there an issue with the way I am mapping my ports in the docker run command, or is something else going on here? Thanks for your help! Excited to learn more about these very cool apps.

{
"metadata": {
"mmif": "http://mmif.clams.ai/1.0.0"
},
"documents": [
{
"@type": "http://mmif.clams.ai/vocabulary/VideoDocument/v1",
"properties": {
"mime": "video",
"id": "d1",
"location": "file:///Users/dwr16/clams/filmist.mp4"
}
}
],
"views": [
{
"id": "v_0",
"metadata": {
"timestamp": "2023-12-15T20:00:41.494418",
"app": "http://apps.clams.ai/inaspeechsegmenter-wrapper/v1.1",
"error": {
"message": "<class 'AssertionError'>: b'ffmpeg version 4.1.11-0+deb10u1 Copyright (c) 2000-2023 the FFmpeg developers\n built with gcc 8 (Debian 8.3.0-6)\n configuration: --prefix=/usr --extra-version=0+deb10u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared\n libavutil 56. 22.100 / 56. 22.100\n libavcodec 58. 35.100 / 58. 35.100\n libavformat 58. 20.100 / 58. 20.100\n libavdevice 58. 5.100 / 58. 5.100\n libavfilter 7. 40.101 / 7. 40.101\n libavresample 4. 0. 0 / 4. 0. 0\n libswscale 5. 3.100 / 5. 3.100\n libswresample 3. 3.100 / 3. 3.100\n libpostproc 55. 3.100 / 55. 3.100\n/Users/dwr16/clams/filmist.mp4: No such file or directory\n'",
"stackTrace": " File "/usr/local/lib/python3.8/site-packages/clams/restify/init.py", line 146, in post\n return self.json_to_response(self.cla.annotate(raw_data, **self.annotate_param_caster.cast(raw_params)))\n\t\n File "/usr/local/lib/python3.8/site-packages/clams/app/init.py", line 116, in annotate\n annotated = self._annotate(mmif, **runtime_params)\n\t\n File "app.py", line 30, in _annotate\n segments = ina(filename)\n\t\n File "/usr/local/lib/python3.8/site-packages/inaSpeechSegmenter/segmenter.py", line 278, in call\n mspec, loge, difflen = media2feats(medianame, tmpdir, start_sec, stop_sec, self.ffmpeg)\n\t\n File "/usr/local/lib/python3.8/site-packages/inaSpeechSegmenter/features.py", line 94, in media2feats\n assert p.returncode == 0, error\n"
}
},
"annotations": []
}
]
}

@clams-bot clams-bot added this to apps Dec 15, 2023
@github-project-automation github-project-automation bot moved this to Todo in apps Dec 15, 2023
@keighrim
Copy link
Member

keighrim commented Dec 15, 2023

So the short answer is the input MMIF you are passing to the app (via curl) is pointing to /Users/dwr16/clams/filmist.mp4 as the source video, of which I have no doubt being a real file, while inside the docker container, there's no such file (Not all "host" file system is automatically "synchronized" to the internals of containers, and so should be given security consideration)

Concretely, with the docker command you're using, you're mapping you host's /Users/dwr16/clams to be container's /data. Hence your /Users/dwr16/clams/filmist.mp4 is placed as /data/filmist.mp4 inside the container where the app is actually running. There could be two solutions;

  1. change the input MMIF so that source video file to be /data/filmist.mp4
clams source video:/data/filmist.mp4 > filmist.mmif
  1. change the directory mapping when you run the container
docker run -v /Users/dwr16/clams:/Users/dwr16/clams -p 8086:5000 ghcr.io/clamsproject/app-brandeis-acs-wrapper:v2
# or 
docker run -v /Users/dwr16:/Users/dwr16 -p 8086:5000 ghcr.io/clamsproject/app-brandeis-acs-wrapper:v2
# or 
docker run -v /Users:/Users -p 8086:5000 ghcr.io/clamsproject/app-brandeis-acs-wrapper:v2

Hope this helps clearing up any confusion!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

2 participants