
Recherche avancée
Médias (1)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
Autres articles (43)
-
Publier sur MédiaSpip
13 juin 2013Puis-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 -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 is the first MediaSPIP stable release.
Its official release date is June 21, 2013 and is announced here.
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
HTML5 audio and video support
13 avril 2011, parMediaSPIP 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 (4788)
-
FFmpegKit : "Operation not permitted" in many android devices [closed]
26 août 2023, par MrmI'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).


Here is an example :


User device :


Manufacturer : Sony

Model : SOG05

ABI : [arm64-v8a, armeabi-v7a, armeabi]

Android SDK : 33

Command :

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 'expr:gte(t,n_forced*1)' -preset ultrafast -r 30 -shortest /storage/emulated/0/Movies/lts/lts_20230826_092915_edited.mp4


And the full log :


ffmpeg version n5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
 built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)

 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++ --ranlib=aarch64-linux-android-ranlib --strip=aarch64-linux-android-strip --nm=aarch64-linux-android-nm --extra-libs='-L/home/taner/Projects/ffmpeg-kit/prebuilt/android-arm64-lts/cpu-features/lib -lndk_compat' --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

 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Movies/lts/lts_20230824_100739.mp4':

 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2023-08-24T01:08:17.000000Z
 com.android.version: 13
 Duration: 00:00:34.27, start: 0.000000, bitrate: 16316 kb/s
 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)
 Metadata:
 creation_time : 2023-08-24T01:08:17.000000Z
 handler_name : VideoHandle
 vendor_id : [0][0][0][0]

 Stream #0:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-08-24T01:08:17.000000Z
 handler_name : SoundHandle
 vendor_id : [0][0][0][0]

/storage/emulated/0/Movies/lts/lts_20230826_092915_edited.mp4: Operation not permitted



-
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 TontoI 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.


#include //imports the main win32 API library
#include //imports macros for handling Unicode & ASCII char sets
#include //defines the common control classes
#include //imports the standard C library
#include 
#include 
#include <iostream>
#include <fstream>
#include <string>

extern "C"
{
#include 
#include 
#include 
#include 
}

#pragma comment(lib, "Comctl32.lib") //tells the linker to include Comctl32.lib in the .exe
#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avcodec.lib")
#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avformat.lib")
#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\avutil.lib")
#pragma comment(lib, "C:\\Program Files\\FFmpeg\\lib\\swscale.lib")

#define EDIT_CONTROL 1
#define OPEN_FILE_BTN 2
#define SAVE_FILE_BTN 3
#define EMBOLDEN_BTN 4
#define ITALICISE_BTN 5
#define SCROLL_CONTAINER 6
#define FILEMENU_OPEN_FILE_BTN 7
#define ADD_ROW_BTN 8
#define CELL_1_ID 9
#define CELL_2_ID 10
#define CELL_3_ID 11
#define SCROLL_CONTAINER_TBL 12
// 946 0759 0609 | 163 739

HINSTANCE g_hInstance;
HWND g_hWndMain, g_hWndTabs, openFileBtn, saveFileBtn, hOpenFileEdit, hScrollContainer, hEditControl, tabHandle, emboldenBtn, italiciseBtn, FilemenuOpenFileBtn, tableContainer, tblHeaderOne,
tblHeaderTwo, tblHeaderThree, addRowBtn, hAddRowDialogue, hWnd, hWndCell1Label, hWndCell1Edit, hWndCell2Label, hWndCell2Edit, hWndCell3Label, hWndCell3Edit, hWndOkButton, hWndCancelButton, hRow, hCell1, hCell2, hCell3,
hWMP, OpenMp4Btn, hWMPContainer, hPlayBtn;
HMENU hMenu, hSubMenu;
bool isBold = false, isItalic = false;


const int startX = 0;
const int startY = 60;
const int ROW_HEIGHT = 20;
const int CELL_WIDTH = 110;
static int numRows = 1;
static int numCols = 3;

LRESULT CALLBACK WindowProcessMessages(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
INT_PTR CALLBACK AddRowDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(
 _In_ HINSTANCE currentInstance,
 _In_opt_ HINSTANCE previousInstance,
 _In_ LPWSTR cmdLine,
 _In_ int cmdCount)
{
 const wchar_t* CLASS_NAME = L"Windows App";
 WNDCLASS wc{};
 wc.hInstance = currentInstance;
 wc.lpszClassName = CLASS_NAME;
 wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
 wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
 wc.lpfnWndProc = WindowProcessMessages;
 RegisterClass(&wc);

 g_hWndMain = CreateWindow(CLASS_NAME, L"Windows App",
 WS_OVERLAPPEDWINDOW,
 CW_USEDEFAULT, CW_USEDEFAULT,
 800, 600,
 nullptr, nullptr, nullptr, nullptr);

 if (g_hWndMain == NULL) {
 return 0;
 }

 // Initialize common controls
 INITCOMMONCONTROLSEX icex;
 icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
 icex.dwICC = ICC_TAB_CLASSES;
 InitCommonControlsEx(&icex);

 // Create tab control
 g_hWndTabs = CreateWindow(WC_TABCONTROL, L"",
 WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE | TCS_SINGLELINE,
 0, 0, 800, 600,
 g_hWndMain, nullptr, currentInstance, nullptr);

 if (g_hWndTabs == NULL) {
 return 0;
 }

 // Add tabs to tab control, seperate tab later
 TCITEM tcitem;
 tcitem.mask = TCIF_TEXT;

 wchar_t buf1[] = L"Table View";
 tcitem.pszText = buf1;
 TabCtrl_InsertItem(g_hWndTabs, 0, &tcitem);

 wchar_t buf2[] = L"Text Files";
 tcitem.pszText = buf2;
 TabCtrl_InsertItem(g_hWndTabs, 1, &tcitem);

 wchar_t buf3[] = L"mp4 Files";
 tcitem.pszText = buf3;
 TabCtrl_InsertItem(g_hWndTabs, 2, &tcitem);



 //original location of button intitialisation


 ShowWindow(g_hWndMain, SW_SHOWDEFAULT);
 UpdateWindow(g_hWndMain);

 MSG msg{};
 while (GetMessage(&msg, nullptr, 0, 0)) {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
 }
 return 0;
}

</string></fstream></iostream>


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.






-
MP4 file starts from a non-key frame [closed]
1er octobre 2023, par userDtrmI have used the following ffprobe command to analyse a .mp4 file.




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




It produces the following output.




 ffprobe version 5.1.3 Copyright (c) 2007-2022 the FFmpeg developers
 built with gcc 13 (GCC)
 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
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'FTV267StoS.mp4' :
 Metadata :
 major_brand : mp42
 minor_version : 1
 compatible_brands : isommp41mp42
 creation_time : 2023-04-02T23:52:12.000000Z
 Duration : 00:04:47.84, start : 0.000000, bitrate : 7374 kb/s
 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)
 Metadata :
 creation_time : 2023-04-02T23:52:12.000000Z
 handler_name : Core Media Video
 vendor_id : [0][0][0][0]
 Stream #0:1[0x2](eng) : Audio : aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 125 kb/s (default)
 Metadata :
 creation_time : 2023-04-02T23:52:12.000000Z
 handler_name : Core Media Audio
 vendor_id : [0][0][0][0]
 frames.frame.0.media_type="video"
 frames.frame.0.stream_index=0
 frames.frame.0.key_frame=0
 frames.frame.0.pts=34536
 frames.frame.0.pts_time="0.383733"
 frames.frame.0.pkt_dts=34536
 frames.frame.0.pkt_dts_time="0.383733"
 frames.frame.0.best_effort_timestamp=34536
 frames.frame.0.best_effort_timestamp_time="0.383733"
 frames.frame.0.pkt_duration=1501
 frames.frame.0.pkt_duration_time="0.016678"
 frames.frame.0.pkt_pos="1834827"
 frames.frame.0.pkt_size="14917"
 frames.frame.0.width=1920
 frames.frame.0.height=1080
 frames.frame.0.pix_fmt="yuv420p"
 frames.frame.0.sample_aspect_ratio="1:1"
 frames.frame.0.pict_type="P"
 frames.frame.0.coded_picture_number=120
 frames.frame.0.display_picture_number=0
 frames.frame.0.interlaced_frame=0
 frames.frame.0.top_field_first=0
 frames.frame.0.repeat_pict=0
 frames.frame.0.color_range="tv"
 frames.frame.0.color_space="bt709"
 frames.frame.0.color_primaries="unknown"
 frames.frame.0.color_transfer="bt709"
 frames.frame.0.chroma_location="left"
 frames.frame.0.tags.timecode="20:18:26:50"
 frames.frame.0.side_data_list.side_data.0.side_data_type="H.26[45] User Data Unregistered SEI message"
 frames.frame.0.side_data_list.side_data.1.side_data_type="H.26[45] User Data Unregistered SEI message"
 frames.frame.0.side_data_list.side_data.2.side_data_type="SMPTE 12-1 timecode"
 frames.frame.0.side_data_list.side_data.2.timecodes.timecode.0.value="20:18:26:50"
 frames.frame.1.media_type="video"
 frames.frame.1.stream_index=0
 frames.frame.1.key_frame=0
 frames.frame.1.pts=36036
 frames.frame.1.pts_time="0.400400"
 frames.frame.1.pkt_dts=36036
 frames.frame.1.pkt_dts_time="0.400400"
 frames.frame.1.best_effort_timestamp=36036
 frames.frame.1.best_effort_timestamp_time="0.400400"
 frames.frame.1.pkt_duration=1501
 frames.frame.1.pkt_duration_time="0.016678"
 frames.frame.1.pkt_pos="1857434"
 frames.frame.1.pkt_size="14472"
 frames.frame.1.width=1920
 frames.frame.1.height=1080
 frames.frame.1.pix_fmt="yuv420p"
 frames.frame.1.sample_aspect_ratio="1:1"
 frames.frame.1.pict_type="P"




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.