
Recherche avancée
Autres articles (22)
-
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 (...) -
Taille des images et des logos définissables
9 février 2011, parDans beaucoup d’endroits du site, logos et images sont redimensionnées pour correspondre aux emplacements définis par les thèmes. L’ensemble des ces tailles pouvant changer d’un thème à un autre peuvent être définies directement dans le thème et éviter ainsi à l’utilisateur de devoir les configurer manuellement après avoir changé l’apparence de son site.
Ces tailles d’images sont également disponibles dans la configuration spécifique de MediaSPIP Core. La taille maximale du logo du site en pixels, on permet (...) -
Gestion de la ferme
2 mars 2010, parLa ferme est gérée dans son ensemble par des "super admins".
Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
Dans un premier temps il utilise le plugin "Gestion de mutualisation"
Sur d’autres sites (4972)
-
FFMPEG concat demuxer - how to make file formats compatible ?
10 avril 2015, par user206481I need to automate mp4 concatenation server-side and I’m using FFMPEG. I will get uploads of mp4 files and I want to attach a Title.mp4 and End.mp4 to each one. I am also overlaying a soundtrack (the input videos do not have sound) There is a potential high server load so I’d like to do it as efficiently as possible using ffmpeg’s concat demuxer to avoid re-encoding the video.
After receiving samples of each file, I am not successful and I believe it is due to mismatched file formats. My result has good Title.mp4 and audio, then when the sample uploaded mp4 is supposed to play there is garbled green/pink/red pixels on the top half of the video, then the End.mp4 plays fine. Here is my ffmpeg command and output :
$ ffmpeg -f concat -i <(printf "file '%s'\n" Title.mp4 Sample.mp4 End.mp4) -i SoundTrack.wav -c:v copy -strict -2 -y Out.mp4
ffmpeg version 2.6.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.1.2 (GCC) 20080704 (Red Hat 4.1.2-55)
configuration: --prefix=/home/dpmsmobi/ffmpeg_build --extra-cflags=-I/home/dpmsmobi/ffmpeg_build/include --extra-ldflags=-L/home/dpmsmobi/ffmpeg_build/lib --bindir=/home/dpmsmobi/bin --enable-gpl --enable-nonfree --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, concat, from '/dev/fd/63':
Duration: N/A, start: 0.000000, bitrate: 1810 kb/s
Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 768x512 [SAR 1:1 DAR 3:2], 1810 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc
Guessed Channel Layout for Input Stream #1.0 : stereo
Input #1, wav, from 'SoundTrack.wav':
Metadata:
encoded_by : Adobe Premiere Pro CC 2014 (Maci
encoder : Adobe Premiere Pro CC 2014 (Macintosh)
date : 2015-04-07
creation_time : 11:12:10
time_reference : 0
Duration: 00:00:15.06, bitrate: 1551 kb/s
Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, 2 channels, s16, 1536 kb/s
Output #0, mp4, to 'Out.mp4':
Metadata:
encoder : Lavf56.25.101
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 768x512 [SAR 1:1 DAR 3:2], q=2-31, 1810 kb/s, 30 fps, 30 tbr, 30k tbn, 30k tbc
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc56.26.100 aac
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
Press [q] to stop, [?] for help
[concat @ 0x1dedc20] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[concat @ 0x1dedc20] DTS 69750 < 91000 out of order
[mp4 @ 0x1f75060] Non-monotonous DTS in output stream 0:0; previous: 91000, current: 69750; changing to 91001. This may result in incorrect timestamps in the output file.
<----- many more Non-monotonous DTS messages omitted here ---->
frame= 427 fps=0.0 q=-1.0 Lsize= 4123kB time=00:00:15.06 bitrate=2242.5kbits/s
video:3873kB audio:236kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.344173%I can successfully concatenate the Title.mp4 to the End.mp4, and I can successfully concatenate two Sample.mp4 files, so I know I’ve got the ffmpeg command right. I can also successfully concat the files using the following ffmpeg command with filter_complex instead of concat demuxer (this takes considerably longer due to re-encoding) :
ffmpeg -i Title.mp4 -i Sample.mp4 -i End.mp4 -i SoundTrack.wav -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=1 [v]' -map '[v]' -map 3:0 -crf 20 -strict -2 -y Out2.mp4
Here is the MediaInfo output for each type of mp4 file :
$ mediainfo Title.mp4
General
Complete name : Title.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 693 KiB
Duration : 3s 100ms
Overall bit rate mode : Variable
Overall bit rate : 1 831 Kbps
Encoded date : UTC 2015-04-07 19:15:03
Tagged date : UTC 2015-04-07 19:15:03
©TIM : 00:00:00:00
©TSC : 30
©TSZ : 1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 3s 100ms
Bit rate mode : Variable
Bit rate : 1 811 Kbps
Maximum bit rate : 3 000 Kbps
Width : 768 pixels
Height : 512 pixels
Display aspect ratio : 3:2
Frame rate mode : Constant
Frame rate : 30.000 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.154
Stream size : 685 KiB (99%)
Language : English
Encoded date : UTC 2015-04-07 19:15:03
Tagged date : UTC 2015-04-07 19:15:03
Color range : Limited
$ mediainfo Sample.mp4
General
Complete name : Sample.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 2.93 MiB
Duration : 7s 9ms
Overall bit rate : 3 505 Kbps
Encoded date : UTC 1970-01-01 00:00:00
Tagged date : UTC 1970-01-01 00:00:00
Writing application : Lavf52.64.2
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L3.1
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Format settings, GOP : M=1, N=30
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 7s 9ms
Bit rate : 3 500 Kbps
Width : 768 pixels
Height : 512 pixels
Display aspect ratio : 3:2
Frame rate mode : Variable
Frame rate : 30.250 fps
Minimum frame rate : 23.462 fps
Maximum frame rate : 296.053 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.294
Stream size : 2.92 MiB (100%)
Language : English
Encoded date : UTC 1970-01-01 00:00:00
Tagged date : UTC 1970-01-01 00:00:00I’m pretty sure it’s the mp42 vs isom Codec ID’s, and potentially the constant vs variable frame rates. I can’t change the input mp4’s but I know their format will stay the same. How can I reformat the Title and End mp4’s to match the input mp4 files so I can use ffmpeg concat demux ?
-
Stream map '0:4' matches no streams
17 juillet 2022, par HughWhen concat vob files to mkv with -map 0:4 I get this error. if I replace it with -map 0:4 ? the output contains no subtitles because the subtitle track I want doesn't start until further into the file. If I include -map 0:3 I just get the wrong subtitle track.


ffmpeg -version
ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
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


ffmpeg -analyzeduration 9000M -probesize 9000M -f concat -fflags +genpts -i mylist.txt -map 0:1 -map 0:2 -map 0:4? -metadata:s:s:0 language=eng -metadata:s:s:0 title="English" -c:s copy -c:v copy -c:a copy 'output.mkv'
...
Input #0, concat, from 'mylist.txt':
 Duration: N/A, start: 0.000000, bitrate: N/A
 Stream #0:0: Data: dvd_nav_packet
 Stream #0:1: Video: mpeg2video (Main), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn
 Side data:
 cpb: bitrate max/min/avg: 7000000/0/0 buffer size: 1835008 vbv_delay: N/A
 Stream #0:2: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
 Stream #0:3: Subtitle: dvd_subtitle
Output #0, matroska, to 'output.mkv':
 Metadata:
 encoder : Lavf59.16.100
 Stream #0:0: Video: mpeg2video (Main) (mpg2 / 0x3267706D), yuv420p(tv, top first), 720x576 [SAR 64:45 DAR 16:9], q=2-31, 25 fps, 25 tbr, 1k tbn
 Side data:
 cpb: bitrate max/min/avg: 7000000/0/0 buffer size: 1835008 vbv_delay: N/A
 Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, fltp, 192 kb/s
Stream mapping:
 Stream #0:1 -> #0:0 (copy)
 Stream #0:2 -> #0:1 (copy)
Press [q] to stop, [?] for help
[concat @ 0x555af2e17000] New subtitle stream 0:4 at pos:3141646 and DTS:10.96s 0x



...
Any ideas ?


-
Why is the FindClass/JNI function behaving differently on nexus 5 and Honor Play ?
17 août 2020, par OwlMobileFFmpeg v4.3.1LTS works on Honor Play, but doesn't work on Nexus 5. Why ?


The build for Honor Play and nexus 5 is the same ->armeabi-v7a




https://github.com/tanersener/mobile-ffmpeg/releases/tag/v4.3.1.LTS


Nexus5 :enter image description here


HonorPlay :enter image description here






NDK = ndk-r14b






JDK = jdk1.8.0_77




I will ask the question immediately in English stackoverflow. Developing a game in
Unreal Engine 4 v24.3
. In the code itself there are only 2 lines that relate to MobileFFmpeg :

Enabling the function :


extern "C"
{
 int ffmpeg_execute(int argc, char** argv);
}



Calling a function with ffmpeg parameters


ffmpeg_execute(arg.size(), arg.data());



Without mobile FFmpeg, the app on nexus 5 starts and works stably. When I start with FFmpeg, an error immediately appears and the app crashes :




The FindClass function does not work, the call itself is declared in mobile ffmpeg.c :


/** Full name of the Config class */
const char *configClassName = "com/arthenica/mobileffmpeg/Config";



...


/**
 * Called when 'mobileffmpeg' native library is loaded.
 *
 * @param vm pointer to the running virtual machine
 * @param reserved reserved
 * @return JNI version needed by 'mobileffmpeg' library
 */
jint JNI_OnLoad(JavaVM *vm, void *reserved) {
 JNIEnv *env;
 if ((*vm)->GetEnv(vm, (void**)(&env), JNI_VERSION_1_6) != JNI_OK) {
 LOGE("OnLoad failed to GetEnv for class %s.\n", configClassName);
 return JNI_FALSE;
 }

 jclass localConfigClass = (*env)->FindClass(env, configClassName);
 if (localConfigClass == NULL) {
 LOGE("OnLoad failed to FindClass %s.\n", configClassName);
 return JNI_FALSE;
 }
...



I can't see what the FindClass(C++) function returns, Android Studio doesn't want to stop on the JNI_OnLoad(C++) function during debug.


What are the assumptions why FindClass behavior is different on two phones ?