
Recherche avancée
Médias (1)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
Autres articles (32)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (5683)
-
FFmpeg c api create encoder for AV_CODEC_ID_H264 crash on Windows
30 avril 2023, par Guanyuming HeI'm using ffmpeg (version 5.1.2) to clip a mp4 video per frame so I need to decode and encode it. However, when I'm creating the encoder for its video stream, the program always crashes at the call to
avio_open2()
, after H264 gives this error message :

[h264_mf @ 0000025C1EBC1900] could not set output type (80004005)





The configuration (time_base, pix_fmt, width, height) of the codec context of the encoder is copied from the decoder, and I checked if the pixel format is supported by finding if it's in
codec->pix_fmts
.

I find that the problem does not involve all my other pieces of code, because this minimal program can duplicate the same problem :


extern "C"
{
#include <libavcodec></libavcodec>avcodec.h>
}

int main()
{
 auto codec = avcodec_find_encoder(AV_CODEC_ID_H264);
 auto codec_ctx = avcodec_alloc_context3(codec);

 codec_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
 codec_ctx->width = 2560;
 codec_ctx->height = 1440;
 codec_ctx->time_base.num = 1; codec_ctx->time_base.den = 180000;

 avcodec_open2(codec_ctx, codec, NULL);

 return 0;
}



Then I suspect if it's a bug of ffmpeg. My environment is Windows 11 64-bit, Visual Studio 2022. The ffmpeg library is obtained from vcpkg, as shown in the following image :




-
When performing an overlay operation with ffmpeg, the video at the top becomes blurry
28 mars 2023, par LanceI have encountered a strange problem. When using ffmpeg provided in javacpp-presets to perform an overlay operation on two videos, if the video at the bottom is in motion, the video at the top becomes blurry. However, when I use locally compiled ffmpeg to execute the same command, there is no such problem. I have tried presets 5.x and 6.x, and the same problem occurs. Who can help me ?


command :


.javacpp/cache/ffmpeg-5.0-1.5.7-macosx-x86_64.jar/org/bytedeco/ffmpeg/macosx-x86_64/ffmpeg -y -f lavfi -i color=c=black:s=1920x1080 -i a.mp4 -i b.mp4 -i c.mp4 -filter_complex "[2:v][3:v]alphamerge[alphamerge0];[1:v]scale=1920x1080[out0];[0:v][out0]overlay=enable='between(t,0.0,40.141)':x=0.0:y=0.0[overlay0];[overlay0][alphamerge0]overlay=enable='between(t,0.0,40.141)':x=0.0:y=0.0[out]" -preset medium -t 00:00:40.141 -crf 20 -vcodec h264 -map "[out]" -profile:v high -force_key_frames "expr:gte(t,n_forced*8)" out.mp4


I have tried to change preset,crf,codec,profile and so on, nothing works.


blurry ffmpeg version :


.javacpp/cache/ffmpeg-5.0-1.5.7-macosx-x86_64.jar/org/bytedeco/ffmpeg/macosx-x86_64/ffmpeg -version
ffmpeg version 5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.29)
configuration: --prefix=.. --disable-iconv --disable-opencl --disable-sdl2 --disable-bzlib --disable-lzma --disable-linux-perf --disable-xlib --enable-shared --enable-version3 --enable-runtime-cpudetect --enable-zlib --enable-libmp3lame --enable-libspeex --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-openssl --enable-libopenh264 --enable-libvpx --enable-libfreetype --enable-libopus --enable-libxml2 --enable-libsrt --enable-libwebp --enable-pthreads --enable-indev=avfoundation --disable-libxcb --extra-cflags='-I../include/ -I../include/libxml2' --extra-ldflags=-L../lib/ --extra-libs='-lstdc++ -ldl -lz -lm'
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100



normal local version :


ffmpeg -version
ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 13.1.6 (clang-1316.0.21.2.5)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.0.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100
libpostproc 56. 3.100 / 56. 3.100



-
Layout Video Recording Like Instgram/ Ticktok Feature
21 mars 2023, par Amarchand KI'm try to do record video inn different layouts like Instagram in Flutter. For this feature I used ffmpeg_kit_flutter package. I refers this solution to do this. but output video is blank, any one helps me to solve this.
the video input and output path is valid, also show the bellow error while printing,


`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/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-android24-clang --cxx=aarch64-linux-android24-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/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-gmp --enable-gnutls --enable-iconv --disable-sdl2 --disable-openssl --enable-zlib --enable-mediacodec
 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
 -vsync is deprecated. Use -fps_mode
 Passing a number to -vsync is deprecated, use a string argument as described in the manual.
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/com.example.tuki_taki/cache/REC1453994379216336834.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2023-03-21T07:15:58.000000Z
 com.android.version: 12
 Duration: 00:00:03.77, start: 0.000000, bitrate: 2204 kb/s
 Stream #0:0[0x1](eng): Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt470bg/smpte170m/bt709, progressive, left), 640x480, 2199 kb/s, 29.61 fps, 29.58 tbr, 90k tbn (default)
 Metadata:
 creation_time : 2023-03-21T07:15:58.000000Z
 handler_name : VideoHandle
 vendor_id : [0][0][0][0]
 Side data:
 displaymatrix: rotation of -90.00 degrees
 Stream #0:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-03-21T07:15:58.000000Z
 handler_name : SoundHandle
 vendor_id : [0][0][0][0]
 Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/com.example.tuki_taki/cache/REC5972384708251368209.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2023-03-21T07:16:05.000000Z
 com.android.version: 12
 Duration: 00:00:02.84, start: 0.000000, bitrate: 2703 kb/s
 Stream #1:0[0x1](eng): Video: h264, 1 reference frame (avc1 / 0x31637661), yuv420p(tv, bt470bg/smpte170m/bt709, progressive, left), 640x480, 2801 kb/s, 29.61 fps, 29.58 tbr, 90k tbn (default)
 Metadata:
 creation_time : 2023-03-21T07:16:05.000000Z
 handler_name : VideoHandle
 vendor_id : [0][0][0][0]
 Side data:
 displaymatrix: rotation of -90.00 degrees
 Stream #1:1[0x2](eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 128 kb/s (default)
 Metadata:
 creation_time : 2023-03-21T07:16:05.000000Z
 handler_name : SoundHandle
 vendor_id : [0][0][0][0]
 Stream mapping:
 Stream #0:0 (h264) -> scale:default
 Stream #0:1 (aac) -> amix
 Stream #1:0 (h264) -> scale:default
 Stream #1:1 (aac) -> amix
 hstack:default -> Stream #0:0 (mpeg4)
 amix:default -> Stream #0:1 (aac)
 Press [q] to stop, [?] for help
 Output #0, mp4, to '/data/user/0/com.example.tuki_taki/cache/output.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 com.android.version: 12
 encoder : Lavf59.27.100
 Stream #0:0: Video: mpeg4, 1 reference frame (mp4v / 0x7634706D), yuv420p(progressive), 960x640 (0x0) [SAR 1:1 DAR 3:2], q=2-31, 200 kb/s, 29.58 fps, 11360 tbn
 Metadata:
 encoder : Lavc59.37.100 mpeg4
 Side data:
 cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
 Stream #0:1: Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, delay 1024, 69 kb/s
 Metadata:
 encoder : Lavc59.37.100 aac
 frame= 1 fps=0.0 q=4.3 size= 0kB time=00:00:00.23 bitrate= 1.5kbits/s speed=3.49x 



[mpeg4 @ 0xb400007122ebac50] Invalid pts (8) <= last (8)
Error submitting video frame to the encoder
[aac @ 0xb4000071232208c0] Qavg : 9911.349
[aac @ 0xb4000071232208c0] 2 frames left in the queue on closing
Conversion failed`


I'm tried


`Future<void> onLayoutDone() async {
try {
 final String outputPath = await _getTempPath(); 
 const String filter =
 "[0:v]scale=480:640,setsar=1[l];[1:v]scale=480:640,setsar=1[r];[l][r]hstack;[0][1]amix -vsync 0 "; 
 log("left path: ${layoutVideoPathList[0]} right : ${layoutVideoPathList[1]} $outputPath"); 
 final String command =" -y -i ${layoutVideoPathList[0]} -i ${layoutVideoPathList[1]} -filter_complex$filter$outputPath -loglevel verbose"; `these paths are valid` 
 
 await FFmpegKit.execute(command).then((value) async { 
 String? error = await value.getAllLogsAsString(); 
 log(error!); 
 final ReturnCode? returnCode = await value.getReturnCode(); 
 if (returnCode != null) {
 setVideo(videoPath: outputPath); 
 layoutVideoPathList.clear(); 
 }
 });
} catch (e) {
 log("error while combine -========-=-=-=-=-=-=-=-=- $e"); 
}`
</void>