Recherche avancée

Médias (1)

Mot : - Tags -/ogg

Autres articles (111)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Soumettre bugs et patchs

    10 avril 2011

    Un logiciel n’est malheureusement jamais parfait...
    Si vous pensez avoir mis la main sur un bug, reportez le dans notre système de tickets en prenant bien soin de nous remonter certaines informations pertinentes : le type de navigateur et sa version exacte avec lequel vous avez l’anomalie ; une explication la plus précise possible du problème rencontré ; si possibles les étapes pour reproduire le problème ; un lien vers le site / la page en question ;
    Si vous pensez avoir résolu vous même le bug (...)

Sur d’autres sites (10920)

  • Problems with Python's azure.cognitiveservices.speech when installing together with FFmpeg in a Linux web app

    15 mai 2024, par Kakobo kakobo

    I need some help.
I'm building an web app that takes any audio format, converts into a .wav file and then passes it to 'azure.cognitiveservices.speech' for transcription.I'm building the web app via a container Dockerfile as I need to install ffmpeg to be able to convert non ".wav" audio files to ".wav" (as azure speech services only process wav files). For some odd reason, the 'speechsdk' class of 'azure.cognitiveservices.speech' fails to work when I install ffmpeg in the web app. The class works perfectly fine when I install it without ffpmeg or when i build and run the container in my machine.

    


    I have placed debug print statements in the code. I can see the class initiating, for some reason it does not buffer in the same when when running it locally in my machine. The routine simply stops without any reason.

    


    Has anybody experienced a similar issue with azure.cognitiveservices.speech conflicting with ffmpeg ?

    


    Here's my Dockerfile :

    


    # Use an official Python runtime as a parent imageFROM python:3.11-slim

#Version RunRUN echo "Version Run 1..."

Install ffmpeg

RUN apt-get update && apt-get install -y ffmpeg && # Ensure ffmpeg is executablechmod a+rx /usr/bin/ffmpeg && # Clean up the apt cache by removing /var/lib/apt/lists saves spaceapt-get clean && rm -rf /var/lib/apt/lists/*

//Set the working directory in the container

WORKDIR /app

//Copy the current directory contents into the container at /app

COPY . /app

//Install any needed packages specified in requirements.txt

RUN pip install --no-cache-dir -r requirements.txt

//Make port 80 available to the world outside this container

EXPOSE 8000

//Define environment variable

ENV NAME World

//Run main.py when the container launches

CMD ["streamlit", "run", "main.py", "--server.port", "8000", "--server.address", "0.0.0.0"]`and here's my python code:


    


    def transcribe_audio_continuous_old(temp_dir, audio_file, language):
    speech_key = azure_speech_key
    service_region = azure_speech_region

    time.sleep(5)
    print(f"DEBUG TIME BEFORE speechconfig")

    ran = generate_random_string(length=5)
    temp_file = f"transcript_key_{ran}.txt"
    output_text_file = os.path.join(temp_dir, temp_file)
    speech_recognition_language = set_language_to_speech_code(language)
    
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    speech_config.speech_recognition_language = speech_recognition_language
    audio_input = speechsdk.AudioConfig(filename=os.path.join(temp_dir, audio_file))
        
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input, language=speech_recognition_language)
    done = False
    transcript_contents = ""

    time.sleep(5)
    print(f"DEBUG TIME AFTER speechconfig")
    print(f"DEBUG FIle about to be passed {audio_file}")

    try:
        with open(output_text_file, "w", encoding=encoding) as file:
            def recognized_callback(evt):
                print("Start continuous recognition callback.")
                print(f"Recognized: {evt.result.text}")
                file.write(evt.result.text + "\n")
                nonlocal transcript_contents
                transcript_contents += evt.result.text + "\n"

            def stop_cb(evt):
                print("Stopping continuous recognition callback.")
                print(f"Event type: {evt}")
                speech_recognizer.stop_continuous_recognition()
                nonlocal done
                done = True
            
            def canceled_cb(evt):
                print(f"Recognition canceled: {evt.reason}")
                if evt.reason == speechsdk.CancellationReason.Error:
                    print(f"Cancellation error: {evt.error_details}")
                nonlocal done
                done = True

            speech_recognizer.recognized.connect(recognized_callback)
            speech_recognizer.session_stopped.connect(stop_cb)
            speech_recognizer.canceled.connect(canceled_cb)

            speech_recognizer.start_continuous_recognition()
            while not done:
                time.sleep(1)
                print("DEBUG LOOPING TRANSCRIPT")

    except Exception as e:
        print(f"An error occurred: {e}")

    print("DEBUG DONE TRANSCRIPT")

    return temp_file, transcript_contents


    


    The transcript this callback works fine locally, or when installed without ffmpeg in the linux web app. Not sure why it conflicts with ffmpeg when installed via container dockerfile. The code section that fails can me found on note #NOTE DEBUG"

    


  • ffmpeg concatenation with -filter_complex

    16 octobre 2018, par Igniter

    I’ve seen several similar questions but none of them actually helped in my case.
    Getting this error while trying to join 1 audio and 4 video files of different nature and resolutions.

    ffmpeg -i 0.mp3 -i 1.mp4 -i 2.mkv -i 3.mkv -i 4.webm \
       -filter_complex [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] \
       -map "[outv]" -map "[outa]" output.mp4

    All this gives the following error :

    Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.

    Straight concatenation -i "concat:0.mp3|1.mp4..." also doesn’t work as expected due to different resolutions and video formats. All methods syntax was taken from official documentation but there should be something that I’ve missed here.

    Full output log :

    ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Input #0, mp3, from 'mp3/10.mp3':
     Metadata:
       album_artist    : artist
       title           : title
       artist          : 10
       album           : 12
       track           : 1
       VideoKind       : 2
       date            : 2009
     Duration: 00:06:00.44, start: 0.025056, bitrate: 64 kb/s
       Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 64 kb/s
       Metadata:
         encoder         : LAME3.98r
       Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 200x200 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
       Metadata:
         comment         : Cover (front)
    Input #1, matroska,webm, from '1.mp4':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:53.05, start: 0.007000, bitrate: 2292 kb/s
       Stream #1:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:53.048000000
    Input #2, matroska,webm, from '2.mkv':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:02:08.09, start: 0.007000, bitrate: 1607 kb/s
       Stream #2:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:02:08.090000000
    Input #3, matroska,webm, from '3.mkv':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:37.05, start: 0.007000, bitrate: 3525 kb/s
       Stream #3:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:37.048000000
    Input #4, matroska,webm, from '4.webm':
     Metadata:
       MINOR_VERSION   : 0
       COMPATIBLE_BRANDS: iso6avc1mp41
       MAJOR_BRAND     : dash
       ENCODER         : Lavf57.83.100
     Duration: 00:01:45.13, start: 0.007000, bitrate: 3685 kb/s
       Stream #4:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
       Metadata:
         HANDLER_NAME    : VideoHandler
         DURATION        : 00:01:45.131000000
    Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.
  • Podcast Producer 2 REST api

    11 septembre 2009

    I’ve been working on documenting the REST api that PCP2 uses for client server communication as part of a new project. I thought it might be useful to other folks. Consider this a work in progress - I’ve only documented the workflow for doing a multisource recording so far. Follow the job for the info.

    Each section gives a sample command and a sample response.

    All pages are behind basic HTTP auth.

    General sequence of events

    * get workflow list
    * get cameras
    * request status for camera (including thumbnail)
    * start cameras
    * create recording enclosure
    * stop cameras, provide submission_UUID returned by above step, include title


    *URL : https://pcpserver:8170/podcastproducer/info

    *Type : GET

    *Content : version=2

    *Response :
    <pre>
    <podcast_producer_result>
    <action>index</action>
    <status>success</status>
    <plist version="1.0">
    <dict>
    <key>server_version</key>
    <string>2.0</string>
    <key>http_auth_type</key>
    <array>
    <string>basic</string>
    <string>digest</string>
    <string>kerberos</string>
    </array>
    <key>krb_service_principals</key>
    <array>
    <string>pcast/x101-186-103-dhcp.cla.umn.edu@X101-186-103-DHCP.CLA.UMN.EDU</string>
    </array>
    <key>server_uuid</key>
    <string>DB31DA49-10AE-472C-B3B9-86A8F8112399</string>
    <key>cluster_members</key>
    <dict>
    <key>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</key>
    <dict>
    <key>date_added</key>
    <string>Tue Sep 01 10:23:49 -0500 2009</string>
    <key>last_update</key>
    <string>Tue Sep 08 10:35:17 -0500 2009</string>
    <key>server_host</key>
    <string>x101-186-103-dhcp.cla.umn.edu</string>
    <key>server_port</key>
    <string>8170</string>
    <key>tunnel_agent_host</key>
    <string>x101-186-103-dhcp.cla.umn.edu</string>
    <key>tunnel_agent_port</key>
    <string>8175</string>
    <key>network_addrs</key>
    <array>
    <string>128.101.186.103</string>
    </array>
    </dict>
    </dict>
    </dict>
    </plist>
    </podcast_producer_result>
    </pre>


    * URL : https://pcpserver:8170/podcastproducer/workflows
    * Type : GET
    * Content : version=2&language=en
    * Response :
    <pre>
    <podcast_producer_result>
    <action>index</action>
    <status>success</status>
    <results>OK</results>
    <plist version="1.0">
    <dict>
    <key>user_fullname</key>
    <string>podcast</string>
    <key>user_shortname</key>
    <string>podcast</string>
    <key>workflows</key>
    <array>
    <dict>
    <key>name</key>
    <string>Montage</string>
    <key>title</key>
    <string>Montage</string>
    <key>description</key>
    <string>Montage workflow</string>
    <key>uuid</key>
    <string>F797D54D-1539-42AA-B6AC-3CB3A4C15EF5</string>
    <key>version</key>
    <string>2.0</string>
    <key>editor</key>
    <string>Podcast Composer</string>
    <key>sources</key>
    <array>
    <dict>
    <key>contentTypes</key>
    <array>
    <string>com.apple.quicktime-movie</string>
    <string>com.adobe.pdf</string>
    <string>com.apple.iwork.keynote.key</string>
    <string>com.apple.iwork.pages.pages</string>
    <string>org.openxmlformats.wordprocessingml.document</string>
    <string>com.microsoft.word.doc</string>
    <string>org.openxmlformats.presentationml.presentation</string>
    <string>com.microsoft.powerpoint.ppt</string>
    <string>com.microsoft.bmp</string>
    <string>com.compuserve.gif</string>
    <string>public.jpeg-2000</string>
    <string>public.jpeg</string>
    <string>com.adobe.pdf</string>
    <string>com.apple.pict</string>
    <string>public.png</string>
    <string>com.adobe.photoshop-image</string>
    <string>com.sgi.sgi-image</string>
    <string>com.truevision.tga-image</string>
    <string>public.tiff</string>
    </array>
    <key>description</key>
    <string>Any Document</string>
    <key>isFolder</key>
    <true/>
    <key>isOptional</key>
    <false/>
    <key>sourceTypes</key>
    <array>
    <string>File</string>
    </array>
    </dict>
    </array>
    <key>user_requirements</key>
    <array>
    <string>Title</string>
    <string>Description</string>
    </array>
    <key>access_control_entries</key>
    <array>
    </array>
    </dict>
    <dict>
    <key>name</key>
    <string>Single Source</string>
    <key>title</key>
    <string>Single Source</string>
    <key>description</key>
    <string>Single Source workflow</string>
    <key>uuid</key>
    <string>DEFA1587-A650-426E-92DA-01C5EB811705</string>
    <key>version</key>
    <string>2.0</string>
    <key>editor</key>
    <string>Podcast Composer</string>
    <key>sources</key>
    <array>
    <dict>
    <key>contentTypes</key>
    <array>
    <string>com.apple.quicktime-movie</string>
    </array>
    <key>description</key>
    <string>Any Video</string>
    <key>isFolder</key>
    <false/>
    <key>isOptional</key>
    <false/>
    <key>sourceTypes</key>
    <array>
    <string>Video</string>
    <string>Screen</string>
    <string>Audio</string>
    <string>File</string>
    </array>
    </dict>
    </array>
    <key>user_requirements</key>
    <array>
    <string>Title</string>
    <string>Description</string>
    </array>
    <key>access_control_entries</key>
    <array>
    </array>
    </dict>
    </array>
    </dict>
    </plist>
    </podcast_producer_result>
    </pre>
    ----

    * URL : https://pcpserver:8170/podcastproducer/cameras
    * Type : GET
    * Content : version=2
    * Response :
    <pre>
    <podcast_producer_result>
    <action>index</action>
    <status>success</status>
    <plist version="1.0">
    <dict>
    <key>cameras</key>
    <array>
    <dict>
    <key>name</key>
    <string>150-A Camera</string>
    <key>uuid</key>
    <string>307682A5-B552-4AFA-B7E2-3811D772C9A1</string>
    <key>connected_to_member_uuid</key>
    <string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
    <key>in_use</key>
    <string>false</string>
    <key>recording_status</key>
    <string>online</string>
    <key>preview_url</key>
    <string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
    <key>access_control_entries</key>
    <array>
    </array>
    </dict>
    <dict>
    <key>name</key>
    <string>150-A Epiphan</string>
    <key>uuid</key>
    <string>CE610AB0-CA50-49EB-8FFE-78E57CDCA550</string>
    <key>connected_to_member_uuid</key>
    <string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
    <key>in_use</key>
    <string>false</string>
    <key>recording_status</key>
    <string>online</string>
    <key>preview_url</key>
    <string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/CE610AB0-CA50-49EB-8FFE-78E57CDCA550.jpg</string> ;
    <key>access_control_entries</key>
    <array>
    </array>
    </dict>
    </array>
    </dict>
    </plist>
    </podcast_producer_result>
    </pre>


    * URL : https://pcpserver:8170/podcastproducer/cameras/start
    * Type : POST
    * Content : action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
    * Response :
    <pre>
    <podcast_producer_result>
    <action>start</action>
    <status>success</status>
    <results>OK</results>
    </podcast_producer_result>
    </pre>


    * URL : https://pcpserver:8170/podcastproducer/cameras/status
    * Type : POST
    * Content : delay=0&action=start&version=2&camera_name=150-A%20Epiphan&controller=cameras
    * Response :
    <pre><podcast_producer_result>
    <action>status</action>
    <status>success</status>
    <results>OK</results>
    <plist version="1.0">
    <dict>
    <key>preview</key>
    <string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
    <key>preview_image_data</key>
    <string>RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA</string>
    <key>recording_status</key>
    <string>online</string>
    <key>started_at</key>
    <string>Tue Sep 08 09:31:40 -0500 2009</string>
    <key>stopped_at</key>
    <string>Tue Sep 08 09:32:10 -0500 2009</string>
    <key>elapsed</key>
    <string>41</string>
    <key>last_error</key>
    <string>805306368</string>
    </dict>
    </plist>
    </podcast_producer_result>
    </pre>


    * URL : https://pcpserver:8170/podcastproducer/cameras/pause
    * Type : POST
    * Content : action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
    * Response :
    <pre><podcast_producer_result>
    <action>status</action>
    <status>success</status>
    <results>OK</results>
    <plist version="1.0">
    <dict>
    <key>preview</key>
    <string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
    <key>recording_status</key>
    <string>online</string>
    <key>started_at</key>
    <string>Tue Sep 08 09:31:40 -0500 2009</string>
    <key>stopped_at</key>
    <string>Tue Sep 08 09:32:10 -0500 2009</string>
    <key>elapsed</key>
    <string>41</string>
    <key>last_error</key>
    <string>805306368</string>
    </dict>
    </plist>
    </podcast_producer_result></pre>


    * URL : https://pcpserver:8170/podcastproducer/cameras/stop
    * Type : POST
    * Content : workflow_name=&UserMetadata_Description=&submission_uuid=7497E3AC-0A75-4C7C-8C66-26294C9274FE&action=stop&version=2&camera_name=150-A%20Epiphan&controller=cameras&UserMetadata_Title=Test123
    * Response :
    <pre><podcast_producer_result>
    <action>stop</action>
    <status>success</status>
    <results>OK</results>
    </podcast_producer_result>
    </pre>


    * URL : https://pcpserver:8170/podcastproducer/recordings/create
    * Type : POST
    * Content : version=2&workflow_uuid=C6EF52A7-04E3-477D-9F38-6B61F108D7B9
    * Response :
    <pre>
    <podcast_producer_result>
    <action>create</action>
    <status>success</status>
    <results>OK</results>
    <plist version="1.0">
    <dict>
    <key>workflow_uuid</key>
    <string>C6EF52A7-04E3-477D-9F38-6B61F108D7B9</string>
    <key>recording_uuid</key>
    <string>FD5A1459-F7CE-41FA-8155-049DF774298B</string>
    <key>submission_uuids</key>
    <array>
    <string>A626D8E4-E439-4E57-9982-DB4BD035CB41</string>
    <string>CFBCCB74-A41F-42D3-BEAA-58165B1116C6</string>
    </array>
    </dict>
    </plist>
    </podcast_producer_result>
    </pre>