Recherche avancée

Médias (91)

Autres articles (40)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

Sur d’autres sites (6300)

  • how the packuswb instruction works ? (in low level bit operation)

    17 avril 2019, par MaikonNascimento

    Studying ffmpeg convertion from yuv to rgb , I came across the equation being implemented in assembly, yuv2rgb_template.c located in ffmpeg/libswscale/x86.

    I want to know how the instruction packuswb works ? Google says it :

    Converts 4 signed word integers from mm and 4 signed word integers from mm/m64 into 8 unsigned byte integers in mm using unsigned saturation.

       DEST[7:0] ← SaturateSignedWordToUnsignedByte DEST[15:0];
       DEST[15:8] ← SaturateSignedWordToUnsignedByte DEST[31:16];
       DEST[23:16] ← SaturateSignedWordToUnsignedByte DEST[47:32];
       DEST[31:24] ← SaturateSignedWordToUnsignedByte DEST[63:48];
       DEST[39:32] ← SaturateSignedWordToUnsignedByte SRC[15:0];
       DEST[47:40] ← SaturateSignedWordToUnsignedByte SRC[31:16];
       DEST[55:48] ← SaturateSignedWordToUnsignedByte SRC[47:32];
       DEST[63:56] ← SaturateSignedWordToUnsignedByte SRC[63:48];

    Since I dont know Assembly x86, it is even hard to simulate it or debug the current code.

    I want to know how they fit 16 bits in 8 bits ?

  • ffmpeg error : could not get mpeg2 profile and level av_interleaved_write_frame() : Operation not permitted

    24 septembre 2019, par A Person

    Getting a weird error
    could not get mpeg2 profile and level av_interleaved_write_frame() : Operation not permitted
    and i do not understand how to fix it

    ffmpeg -i video.mpeg -i audio.wav -c copy -map 0:0 -map 1:0 out.mxf

    ffmpeg version N-94821-g976617c7d2 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 9.1.1 (GCC) 20190807
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
     libavutil      56. 35.100 / 56. 35.100
     libavcodec     58. 56.101 / 58. 56.101
     libavformat    58. 32.104 / 58. 32.104
     libavdevice    58.  9.100 / 58.  9.100
     libavfilter     7. 58.102 /  7. 58.102
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    Input #0, mpegvideo, from 'video.mpeg':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: mpeg2video (High), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, wav, from 'audio.wav':
     Duration: 00:07:36.16, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
    Output #0, mxf, to 'out.mxf':
     Metadata:
       encoder         : Lavf58.32.104
       Stream #0:0: Video: mpeg2video (High), yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 25 tbn, 25 tbc
       Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [mxf @ 000001b5e48f9680] could not get mpeg2 profile and level
    av_interleaved_write_frame(): Operation not permitted
  • using ffmpeg in XCode : Operation not permitted

    23 octobre 2019, par NCrusher

    In an effort to try to get to the bottom of the problem I discussed here, I decided to try to get what I was doing closer to the example I borrowed from when writing my code, which is described here.

    So instead of formatting my filters in another methods, I tried to code them directly into the method to run the conversion. Unfortunately this results in a very repetitive method, because I have to handle the switch statement for the different conversion choices here as well.

    So this is what my method looks like now :

    func ffmpegConvert() {
       guard let launchPath = Bundle.main.path(forResource: "ffmpeg", ofType: "") else { return }
       do {
           let conversionChoice = conversionOptionsPopup.indexOfSelectedItem
           switch conversionChoice {
               case 1 :
                   let convertTask: Process = Process()
                   convertTask.launchPath = launchPath
                   convertTask.arguments = [
                       "-y",
                       "-i", "\(inputFilePath)",
                       "-c:a", "libmp3lame",
                       "-ac", "1",
                       "-ar", "22050",
                       "-q:a", "9",
                       "\(outputFilePath)"
                   ]
                   convertTask.standardInput = FileHandle.nullDevice
                   convertTask.launch()
                   convertTask.waitUntilExit()
               case 2 :
                   let convertTask: Process = Process()
                   convertTask.launchPath = launchPath
                   convertTask.arguments = [
                       "-y",
                       "-i", "\(inputFilePath)",
                       "-c:a", "libmp3lame",
                       "-ac", "2",
                       "-ar", "44100",
                       "-q:a", "5",
                       "\(outputFilePath)"
                   ]
                   convertTask.standardInput = FileHandle.nullDevice
                   convertTask.launch()
                   convertTask.waitUntilExit()
               case 3 :
                   let convertTask: Process = Process()
                   convertTask.launchPath = launchPath
                   convertTask.arguments = [
                       "-y",
                       "-i", "\(inputFilePath)",
                       "-c:a", "libmp3lame",
                       "-ac", "1",
                       "-ar", "22050",
                       "-b:a", "32k",
                       "\(outputFilePath)"
                   ]
                   convertTask.standardInput = FileHandle.nullDevice
                   convertTask.launch()
                   convertTask.waitUntilExit()
               case 4 :
                   let convertTask: Process = Process()
                   convertTask.launchPath = launchPath
                   convertTask.arguments = [
                       "-y",
                       "-i", "\(inputFilePath)",
                       "-c:a", "flac",
                       "\(outputFilePath)"
                   ]
                   convertTask.standardInput = FileHandle.nullDevice
                   convertTask.launch()
                   convertTask.waitUntilExit()
               default :
                   let convertTask: Process = Process()
                   convertTask.launchPath = launchPath
                   convertTask.arguments = [
                       "-y",
                       "-i", "\(inputFilePath)",
                       "-c", "copy",
                       "\(outputFilePath)"
                   ]
                   convertTask.standardInput = FileHandle.nullDevice
                   convertTask.launch()
                   convertTask.waitUntilExit()
           }
       }
    }

    The good news is : I didn’t get the same errors I was getting before.

    The bad news is : I got a different one. "Operation not permitted."

    I assume this has something to do with the permissions granted to processes running in XCode when testing them out. Is there a way to get around it ?

    My project is really dead in the water until I get the ffmpeg implementation worked out, because everything else I’m going to want it to do—such as rechaptering audiobooks and/or editing metadata—is going to rely upon ffmpeg as well. But I’ve only been doing this a few weeks and whatever is going on here is outside my ability to troubleshoot.

    EDIT : I managed to get around this by turning the sandbox option in the permissions file off. But I’m leaving this question up because I’m not at all sure that was the right thing to do.