Recherche avancée

Médias (91)

Autres articles (50)

  • 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

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (9333)

  • MP4 file starts from a non-key frame [closed]

    1er octobre 2023, par userDtrm

    I have used the following ffprobe command to analyse a .mp4 file.

    


    


    ffprobe -i <input /> -show_frames - select_streams v:0 -print_format flat &amp;> save_to_file.text

    &#xA;

    &#xA;

    It produces the following output.

    &#xA;

    &#xA;&#xA;    ffprobe version 5.1.3 Copyright (c) 2007-2022 the FFmpeg developers&#xA;      built with gcc 13 (GCC)&#xA;      configuration : —prefix=/home/thanuja/ffmpeg_build —pkg-config-flags=—static —extra-cflags=-I/home/thanuja/ffmpeg_build/include —extra-ldflags=-L/home/thanuja/ffmpeg_build/lib —extra-libs=-lpthread —extra-libs=-lm —bindir=/home/thanuja/bin —enable-gpl —enable-libfdk_aac —enable-libfreetype —enable-libmp3lame —enable-libopus —enable-libvpx —enable-libx264 —enable-libx265 —enable-nonfree —enable-openssl —enable-demuxer=spdif —enable-decoder=dolby_e —enable-decoder=ac3 —enable-decoder=eac3 —enable-indev=alsa —enable-outdev=alsa —enable-shared&#xA;      libavutil      57. 28.100 / 57. 28.100&#xA;      libavcodec     59. 37.100 / 59. 37.100&#xA;      libavformat    59. 27.100 / 59. 27.100&#xA;      libavdevice    59.  7.100 / 59.  7.100&#xA;      libavfilter     8. 44.100 /  8. 44.100&#xA;      libswscale      6.  7.100 /  6.  7.100&#xA;      libswresample   4.  7.100 /  4.  7.100&#xA;      libpostproc    56.  6.100 / 56.  6.100&#xA;    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'FTV267StoS.mp4' :&#xA;      Metadata :&#xA;        major_brand : mp42&#xA;        minor_version : 1&#xA;        compatible_brands : isommp41mp42&#xA;        creation_time : 2023-04-02T23:52:12.000000Z&#xA;      Duration : 00:04:47.84, start : 0.000000, bitrate : 7374 kb/s&#xA;      Stream #0:0[0x1](und) : Video : h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/unknown/bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 7198 kb/s, 59.94 fps, 59.94 tbr, 90k tbn (default)&#xA;        Metadata :&#xA;          creation_time : 2023-04-02T23:52:12.000000Z&#xA;          handler_name : Core Media Video&#xA;          vendor_id : [0][0][0][0]&#xA;      Stream #0:1[0x2](eng) : Audio : aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)&#xA;        Metadata :&#xA;          creation_time : 2023-04-02T23:52:12.000000Z&#xA;          handler_name : Core Media Audio&#xA;          vendor_id : [0][0][0][0]&#xA;    frames.frame.0.media_type="video"&#xA;    frames.frame.0.stream_index=0&#xA;    frames.frame.0.key_frame=0&#xA;    frames.frame.0.pts=34536&#xA;    frames.frame.0.pts_time="0.383733"&#xA;    frames.frame.0.pkt_dts=34536&#xA;    frames.frame.0.pkt_dts_time="0.383733"&#xA;    frames.frame.0.best_effort_timestamp=34536&#xA;    frames.frame.0.best_effort_timestamp_time="0.383733"&#xA;    frames.frame.0.pkt_duration=1501&#xA;    frames.frame.0.pkt_duration_time="0.016678"&#xA;    frames.frame.0.pkt_pos="1834827"&#xA;    frames.frame.0.pkt_size="14917"&#xA;    frames.frame.0.width=1920&#xA;    frames.frame.0.height=1080&#xA;    frames.frame.0.pix_fmt="yuv420p"&#xA;    frames.frame.0.sample_aspect_ratio="1:1"&#xA;    frames.frame.0.pict_type="P"&#xA;    frames.frame.0.coded_picture_number=120&#xA;    frames.frame.0.display_picture_number=0&#xA;    frames.frame.0.interlaced_frame=0&#xA;    frames.frame.0.top_field_first=0&#xA;    frames.frame.0.repeat_pict=0&#xA;    frames.frame.0.color_range="tv"&#xA;    frames.frame.0.color_space="bt709"&#xA;    frames.frame.0.color_primaries="unknown"&#xA;    frames.frame.0.color_transfer="bt709"&#xA;    frames.frame.0.chroma_location="left"&#xA;    frames.frame.0.tags.timecode="20:18:26:50"&#xA;    frames.frame.0.side_data_list.side_data.0.side_data_type="H.26[45] User Data Unregistered SEI message"&#xA;    frames.frame.0.side_data_list.side_data.1.side_data_type="H.26[45] User Data Unregistered SEI message"&#xA;    frames.frame.0.side_data_list.side_data.2.side_data_type="SMPTE 12-1 timecode"&#xA;    frames.frame.0.side_data_list.side_data.2.timecodes.timecode.0.value="20:18:26:50"&#xA;    frames.frame.1.media_type="video"&#xA;    frames.frame.1.stream_index=0&#xA;    frames.frame.1.key_frame=0&#xA;    frames.frame.1.pts=36036&#xA;    frames.frame.1.pts_time="0.400400"&#xA;    frames.frame.1.pkt_dts=36036&#xA;    frames.frame.1.pkt_dts_time="0.400400"&#xA;    frames.frame.1.best_effort_timestamp=36036&#xA;    frames.frame.1.best_effort_timestamp_time="0.400400"&#xA;    frames.frame.1.pkt_duration=1501&#xA;    frames.frame.1.pkt_duration_time="0.016678"&#xA;    frames.frame.1.pkt_pos="1857434"&#xA;    frames.frame.1.pkt_size="14472"&#xA;    frames.frame.1.width=1920&#xA;    frames.frame.1.height=1080&#xA;    frames.frame.1.pix_fmt="yuv420p"&#xA;    frames.frame.1.sample_aspect_ratio="1:1"&#xA;    frames.frame.1.pict_type="P"&#xA;&#xA;

    &#xA;

    As seen in this output, the 1st frame appears to be a P frame. I'm curious as to how will the decoder decode this frame without a preceding I frame (key frame) ? The P frame will not have enough information to reconstruct the image from its residual data without the key frame.

    &#xA;

  • FFmpeg 6.0 won't work because the header files can't connect or interact with each other. How do I fix the files ?

    11 septembre 2023, par Señor Tonto

    I am creating a win32 API C++ application with Microsoft Visual Studio 2022 in a .sln file. I've got quite far in basic functionalities & decided to try out video decoding & playing ; I've practiced this before but not with C++. So, I looked to see good libraries & found FFmpeg. Of course, I thought this would be quite straightforward - just import the headers & code, right ? No. Firstly, the FFmpeg I'm using is one of the pre-built binaries. The 'ffmpeg-master-latest-win64-gpl-shared.zip' From the BtbN Github repository. I decompressed it with WinRar & placed the files in Program Files (x86). Later on, I realised my mistake of placing it with 32-bit programs since it's a 64-bit build. So I transferred it to Program Files. Even after this though my issue persists. The issue being that the .h files of FFmpeg cannot communicate with each other. For some reason, they can't navigate to where the header files are. I am quite sure the reason for this may have something to do with where I save the files, the directory. Nowhere on the FFmpeg website can I see where you're expected to have the file directory at. I am sure there's a preset file path that is expected. Maybe I've named the FFmpeg folder incorrectly ? Or maybe it's not meant to go in Program Files ? The current directory for the FFmpeg folder for me is : C :\Program Files\FFmpeg. Below I will provide pictures of the errors I get where the code can't connect to other .h files as well as the file path. I'll also provide my code.

    &#xA;

    #include  //imports the main win32 API library&#xA;#include  //imports macros for handling Unicode &amp; ASCII char sets&#xA;#include  //defines the common control classes&#xA;#include  //imports the standard C library&#xA;#include &#xA;#include &#xA;#include <iostream>&#xA;#include <fstream>&#xA;#include <string>&#xA;&#xA;extern "C"&#xA;{&#xA;#include &#xA;#include &#xA;#include &#xA;#include &#xA;}&#xA;&#xA;#pragma comment(lib, "Comctl32.lib") //tells the linker to include Comctl32.lib in the .exe&#xA;#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avcodec.lib")&#xA;#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avformat.lib")&#xA;#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avutil.lib")&#xA;#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\swscale.lib")&#xA;&#xA;#define EDIT_CONTROL 1&#xA;#define OPEN_FILE_BTN 2&#xA;#define SAVE_FILE_BTN 3&#xA;#define EMBOLDEN_BTN 4&#xA;#define ITALICISE_BTN 5&#xA;#define SCROLL_CONTAINER 6&#xA;#define FILEMENU_OPEN_FILE_BTN 7&#xA;#define ADD_ROW_BTN 8&#xA;#define CELL_1_ID 9&#xA;#define CELL_2_ID 10&#xA;#define CELL_3_ID 11&#xA;#define SCROLL_CONTAINER_TBL 12&#xA;// 946 0759 0609 | 163 739&#xA;&#xA;HINSTANCE g_hInstance;&#xA;HWND g_hWndMain, g_hWndTabs, openFileBtn, saveFileBtn, hOpenFileEdit, hScrollContainer, hEditControl, tabHandle, emboldenBtn, italiciseBtn, FilemenuOpenFileBtn, tableContainer, tblHeaderOne,&#xA;tblHeaderTwo, tblHeaderThree, addRowBtn, hAddRowDialogue, hWnd, hWndCell1Label, hWndCell1Edit, hWndCell2Label, hWndCell2Edit, hWndCell3Label, hWndCell3Edit, hWndOkButton, hWndCancelButton, hRow, hCell1, hCell2, hCell3,&#xA;hWMP, OpenMp4Btn, hWMPContainer, hPlayBtn;&#xA;HMENU  hMenu, hSubMenu;&#xA;bool isBold = false, isItalic = false;&#xA;&#xA;&#xA;const int startX = 0;&#xA;const int startY = 60;&#xA;const int ROW_HEIGHT = 20;&#xA;const int CELL_WIDTH = 110;&#xA;static int numRows = 1;&#xA;static int numCols = 3;&#xA;&#xA;LRESULT CALLBACK WindowProcessMessages(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);&#xA;INT_PTR CALLBACK AddRowDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);&#xA;&#xA;int WINAPI wWinMain(&#xA;    _In_ HINSTANCE currentInstance,&#xA;    _In_opt_ HINSTANCE previousInstance,&#xA;    _In_ LPWSTR cmdLine,&#xA;    _In_ int cmdCount)&#xA;{&#xA;    const wchar_t* CLASS_NAME = L"Windows App";&#xA;    WNDCLASS wc{};&#xA;    wc.hInstance = currentInstance;&#xA;    wc.lpszClassName = CLASS_NAME;&#xA;    wc.hCursor = LoadCursor(nullptr, IDC_ARROW);&#xA;    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;&#xA;    wc.lpfnWndProc = WindowProcessMessages;&#xA;    RegisterClass(&amp;wc);&#xA;&#xA;    g_hWndMain = CreateWindow(CLASS_NAME, L"Windows App",&#xA;        WS_OVERLAPPEDWINDOW,&#xA;        CW_USEDEFAULT, CW_USEDEFAULT,&#xA;        800, 600,&#xA;        nullptr, nullptr, nullptr, nullptr);&#xA;&#xA;    if (g_hWndMain == NULL) {&#xA;        return 0;&#xA;    }&#xA;&#xA;    // Initialize common controls&#xA;    INITCOMMONCONTROLSEX icex;&#xA;    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);&#xA;    icex.dwICC = ICC_TAB_CLASSES;&#xA;    InitCommonControlsEx(&amp;icex);&#xA;&#xA;    // Create tab control&#xA;    g_hWndTabs = CreateWindow(WC_TABCONTROL, L"",&#xA;        WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | TCS_SINGLELINE,&#xA;        0, 0, 800, 600,&#xA;        g_hWndMain, nullptr, currentInstance, nullptr);&#xA;&#xA;    if (g_hWndTabs == NULL) {&#xA;        return 0;&#xA;    }&#xA;&#xA;    // Add tabs to tab control, seperate tab later&#xA;    TCITEM tcitem;&#xA;    tcitem.mask = TCIF_TEXT;&#xA;&#xA;    wchar_t buf1[] = L"Table View";&#xA;    tcitem.pszText = buf1;&#xA;    TabCtrl_InsertItem(g_hWndTabs, 0, &amp;tcitem);&#xA;&#xA;    wchar_t buf2[] = L"Text Files";&#xA;    tcitem.pszText = buf2;&#xA;    TabCtrl_InsertItem(g_hWndTabs, 1, &amp;tcitem);&#xA;&#xA;    wchar_t buf3[] = L"mp4 Files";&#xA;    tcitem.pszText = buf3;&#xA;    TabCtrl_InsertItem(g_hWndTabs, 2, &amp;tcitem);&#xA;&#xA;&#xA;&#xA;    //original location of button intitialisation&#xA;&#xA;&#xA;    ShowWindow(g_hWndMain, SW_SHOWDEFAULT);&#xA;    UpdateWindow(g_hWndMain);&#xA;&#xA;    MSG msg{};&#xA;    while (GetMessage(&amp;msg, nullptr, 0, 0)) {&#xA;        TranslateMessage(&amp;msg);&#xA;        DispatchMessage(&amp;msg);&#xA;    }&#xA;    return 0;&#xA;}&#xA;&#xA;</string></fstream></iostream>

    &#xA;

    I severely doubt my code has anything to do with the issue though. It's probably directory-based. I just placed wWinmain here to keep with the character limit.

    &#xA;

    The .h files can't find each other&#xA;The file path for the FFmpeg files

    &#xA;

  • FFmpegKit : "Operation not permitted" in many android devices [closed]

    26 août 2023, par Mrm

    I'm using FFmpegKit 5.1.LTS in my application. A lot of my users have reported that they cannot edit videos (10%). When I tried to obtain their logs, I noticed that many of them are encountering an 'Operation not permitted' error. My users have granted all the necessary storage permissions (READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE).

    &#xA;

    Here is an example :

    &#xA;

    User device :

    &#xA;

    Manufacturer : Sony
    &#xA;Model : SOG05
    &#xA;ABI : [arm64-v8a, armeabi-v7a, armeabi]
    &#xA;Android SDK : 33

    &#xA;

    Command :&#xA;ffmpeg -y -ss 12.789 -to 32.654  -i "/storage/emulated/0/Movies/lts/lts_20230824_100739.mp4" -filter_complex "[0:v:0] scale=1080:2520,setsar=1/1[v0];[0:a:0]atempo=1.0,volume=1.0[a0]; [v0] [a0] concat=n=1:v=1:a=1[conv][cona];[conv] drawtext=fontfile=/system/fonts/Roboto-Regular.ttf:text=lts edit:x=(w-text_w-69.55932):y=(h-text_h-36.61017):fontsize=84:fontcolor=white:shadowcolor=black:shadowx=5.4915257:shadowy=5.4915257[conv]" -map "[conv]" -map "[cona]"  -c:v libx264 -force_key_frames &#x27;expr:gte(t,n_forced*1)&#x27; -preset ultrafast  -r 30  -shortest /storage/emulated/0/Movies/lts/lts_20230826_092915_edited.mp4

    &#xA;

    And the full log :

    &#xA;

    ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers&#xA;  built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)&#xA;&#xA;  configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64-lts/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --ar=aarch64-linux-android-ar --cc=aarch64-linux-android21-clang --cxx=aarch64-linux-android21-clang&#x2B;&#x2B; --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs=&#x27;-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64-lts/cpu-features/lib -lndk_compat&#x27; --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libdav1d --enable-libkvazaar --enable-libx264 --enable-libxvid --enable-libx265 --enable-libvidstab --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-libzimg --disable-openssl --enable-zlib --enable-mediacodec --enable-gpl&#xA;&#xA;  libavutil      57. 28.100 / 57. 28.100&#xA;  libavcodec     59. 37.100 / 59. 37.100&#xA;  libavformat    59. 27.100 / 59. 27.100&#xA;  libavdevice    59.  7.100 / 59.  7.100&#xA;  libavfilter     8. 44.100 /  8. 44.100&#xA;  libswscale      6.  7.100 /  6.  7.100&#xA;  libswresample   4.  7.100 /  4.  7.100&#xA;&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/storage/emulated/0/Movies/lts/lts_20230824_100739.mp4&#x27;:&#xA;&#xA;  Metadata:&#xA;    major_brand     : mp42&#xA;    minor_version   : 0&#xA;    compatible_brands: isommp42&#xA;    creation_time   : 2023-08-24T01:08:17.000000Z&#xA;    com.android.version: 13&#xA;  Duration: 00:00:34.27, start: 0.000000, bitrate: 16316 kb/s&#xA;  Stream #0:0[0x1](eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt470bg/bt470bg/smpte170m, progressive), 1080x2520, 16181 kb/s, 59.11 fps, 90k tbr, 90k tbn (default)&#xA;    Metadata:&#xA;      creation_time   : 2023-08-24T01:08:17.000000Z&#xA;      handler_name    : VideoHandle&#xA;      vendor_id       : [0][0][0][0]&#xA;&#xA;  Stream #0:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default)&#xA;    Metadata:&#xA;      creation_time   : 2023-08-24T01:08:17.000000Z&#xA;      handler_name    : SoundHandle&#xA;      vendor_id       : [0][0][0][0]&#xA;&#xA;/storage/emulated/0/Movies/lts/lts_20230826_092915_edited.mp4: Operation not permitted&#xA;

    &#xA;