
Recherche avancée
Autres articles (55)
-
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
-
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)
Sur d’autres sites (4910)
-
ffmpeg converting JPG slideshow to MKV
17 décembre 2018, par pholI am trying to convert a set of jpg files to a slideshow with varying durations using ffconcat
output.txt contents :
ffconcat version 1.0
file slide_0001.jpg
duration 0.163
file slide_0002.jpg
duration 0.533
file slide_0003.jpg
duration 1.067
file slide_0004.jpg
duration 0.533
file slide_0005.jpg
etc.FFmpeg command :
ffmpeg -i output.txt output.mkv
I also tried :
ffmpeg -i output.txt -c:v copy output.mkv
However, when converting, the colours of the images become skewed.
White becomes pink / purple and dark green becomes light green.
The same happens when choosing different codecs and containers.
Is there a way to solve this ?EDIT :
I performed the same conversion again. I attached the log output as requested.
However, in the meantime I have figured out that converting without ffconcat duration and then altering timecodes with mp4fpsmod is more efficient in terms of storage (3 vs 40 MB) and gives less issues in different players. The result is nonetheless the same : colours are still wrong, both on my workstation (Ubuntu 18.04) and laptop (macOS Mojave).I tried to alter things with
pix_fmt
and-vf format
as can be seen in the second log output. This did not solve the problem.Background info :
The input jpg files are from a lecture recording made with MediaSite, which has both a video stream for the room as well as this slideshow stream for the slides.Example of input :
Example of output :
log output MKV conversion :$ ffmpeg -i outputnew.txt output12345.mkv
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, concat, from 'outputnew.txt':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1280x720, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x7fb284802800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fb284802800] profile High 4:4:4 Predictive, level 3.1, 4:4:4 8-bit
[libx264 @ 0x7fb284802800] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, matroska, to 'output12345.mkv':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuvj444p(pc), 1280x720, q=-1--1, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc58.35.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[mjpeg @ 0x7fb284061200] EOI missing, emulating=00:02:12.96 bitrate= 491.3kbits/s speed=14.3x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 487.2kbits/s speed=14.3x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 333.0kbits/s speed=22.3x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 338.8kbits/s speed=22.7x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 164.7kbits/s speed=41.6x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 122.7kbits/s speed=55.7x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 111.2kbits/s speed=60.5x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 105.3kbits/s speed=64.4x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 82.2kbits/s speed=82.7x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 79.7kbits/s speed=85.8x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 59.7kbits/s speed= 114x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 53.8kbits/s speed= 127x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 54.7kbits/s speed= 124x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 47.1kbits/s speed= 143x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 47.0kbits/s speed= 144x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 44.6kbits/s speed= 151x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 34.4kbits/s speed= 194x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 32.9kbits/s speed= 204x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 32.8kbits/s speed= 203x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 32.6kbits/s speed= 202x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 28.8kbits/s speed= 229x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 27.9kbits/s speed= 236x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 27.9kbits/s speed= 233x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 23.9kbits/s speed= 274x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 24.2kbits/s speed= 273x
Last message repeated 2 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 24.2kbits/s speed= 274x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 24.0kbits/s speed= 276x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 24.2kbits/s speed= 273x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 23.6kbits/s speed= 278x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 23.7kbits/s speed= 279x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 23.6kbits/s speed= 279x
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 24.0kbits/s speed= 276x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 23.5kbits/s speed= 281x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 20.4kbits/s speed= 325x
[mjpeg @ 0x7fb28502a000] EOI missing, emulating
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 20.1kbits/s speed= 329x
Last message repeated 1 times
[matroska @ 0x7fb284812e00] Starting new cluster due to timestampte= 20.1kbits/s speed= 330x
frame= 635 fps= 14 q=-1.0 Lsize= 37389kB time=04:22:06.76 bitrate= 19.5kbits/s speed= 343x
video:37378kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.029620%
[libx264 @ 0x7fb284802800] frame I:16 Avg QP:11.98 size:154224
[libx264 @ 0x7fb284802800] frame P:184 Avg QP:13.30 size: 79029
[libx264 @ 0x7fb284802800] frame B:435 Avg QP:13.19 size: 48887
[libx264 @ 0x7fb284802800] consecutive B-frames: 6.0% 4.4% 10.9% 78.7%
[libx264 @ 0x7fb284802800] mb I I16..4: 55.7% 0.0% 44.3%
[libx264 @ 0x7fb284802800] mb P I16..4: 32.4% 0.0% 21.5% P16..4: 13.3% 15.1% 11.3% 0.0% 0.0% skip: 6.4%
[libx264 @ 0x7fb284802800] mb B I16..4: 17.8% 0.0% 7.2% B16..8: 19.1% 19.4% 6.5% direct:14.6% skip:15.3% L0:47.0% L1:38.9% BI:14.1%
[libx264 @ 0x7fb284802800] coded y,u,v intra: 63.7% 26.1% 56.3% inter: 46.5% 24.6% 43.5%
[libx264 @ 0x7fb284802800] i16 v,h,dc,p: 19% 18% 58% 4%
[libx264 @ 0x7fb284802800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 35% 20% 25% 4% 4% 3% 3% 3% 3%
[libx264 @ 0x7fb284802800] Weighted P-Frames: Y:5.4% UV:5.4%
[libx264 @ 0x7fb284802800] ref P L0: 43.2% 4.4% 30.8% 21.4% 0.2%
[libx264 @ 0x7fb284802800] ref B L0: 64.1% 27.3% 8.6%
[libx264 @ 0x7fb284802800] ref B L1: 85.3% 14.7%
[libx264 @ 0x7fb284802800] kb/s:19.25Log output mp4 conversion :
$ ffmpeg -i slide_%04d.jpg -vf format=rgba -pix_fmt yuv420p -vcodec libx264 -movflags +faststart -preset veryslow output12345.mp4
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gpl --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-opencl --enable-videotoolbox
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, image2, from 'slide_%04d.jpg':
Duration: 00:00:25.36, start: 0.000000, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 1280x720, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'output12345.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x7fb7e280b000] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x7fb7e1803c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 0x7fb7e1803c00] profile High, level 5.0
[libx264 @ 0x7fb7e1803c00] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=10 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output12345.mp4':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720, q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.35.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
[mp4 @ 0x7fb7e1801800] Starting second pass: moving the moov atom to the beginning of the file
frame= 634 fps=8.5 q=-1.0 Lsize= 2252kB time=00:00:25.24 bitrate= 731.0kbits/s speed=0.337x
video:2245kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.307448%
[libx264 @ 0x7fb7e1803c00] frame I:5 Avg QP:19.12 size: 49393
[libx264 @ 0x7fb7e1803c00] frame P:131 Avg QP:22.18 size: 9379
[libx264 @ 0x7fb7e1803c00] frame B:498 Avg QP:23.78 size: 1652
[libx264 @ 0x7fb7e1803c00] consecutive B-frames: 3.2% 1.6% 3.3% 29.7% 7.9% 16.1% 7.7% 16.4% 14.2%
[libx264 @ 0x7fb7e1803c00] mb I I16..4: 45.7% 37.9% 16.4%
[libx264 @ 0x7fb7e1803c00] mb P I16..4: 6.0% 5.3% 1.3% P16..4: 19.9% 1.9% 3.7% 0.3% 0.1% skip:61.5%
[libx264 @ 0x7fb7e1803c00] mb B I16..4: 0.3% 0.4% 0.1% B16..8: 17.5% 1.0% 0.2% direct: 0.3% skip:80.2% L0:52.3% L1:46.9% BI: 0.8%
[libx264 @ 0x7fb7e1803c00] 8x8 transform intra:43.0% inter:48.9%
[libx264 @ 0x7fb7e1803c00] direct mvs spatial:99.2% temporal:0.8%
[libx264 @ 0x7fb7e1803c00] coded y,uvDC,uvAC intra: 16.9% 25.8% 16.6% inter: 1.1% 1.9% 1.2%
[libx264 @ 0x7fb7e1803c00] i16 v,h,dc,p: 61% 28% 6% 6%
[libx264 @ 0x7fb7e1803c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 9% 50% 3% 4% 3% 3% 3% 5%
[libx264 @ 0x7fb7e1803c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 23% 19% 5% 7% 6% 6% 5% 10%
[libx264 @ 0x7fb7e1803c00] i8c dc,h,v,p: 46% 40% 13% 1%
[libx264 @ 0x7fb7e1803c00] Weighted P-Frames: Y:5.3% UV:5.3%
[libx264 @ 0x7fb7e1803c00] ref P L0: 33.2% 3.1% 11.6% 7.3% 8.8% 6.4% 6.5% 3.1% 3.2% 2.6% 2.4% 2.5% 2.8% 2.8% 2.3% 1.4%
[libx264 @ 0x7fb7e1803c00] ref B L0: 42.0% 15.1% 12.0% 5.4% 4.9% 4.3% 4.0% 1.9% 2.0% 1.8% 1.7% 1.8% 1.7% 1.1% 0.5%
[libx264 @ 0x7fb7e1803c00] ref B L1: 83.5% 16.5%
[libx264 @ 0x7fb7e1803c00] kb/s:725.10Player :
QuickTime, VLC and Kodi on both Linux and Mac.EDIT 2 :
Input files : https://drive.google.com/open?id=1kbBkSDSwe6ywgQ8lkjqkh-MKCzGA4bj8 -
How to split a mp4 file into multiple .m4s chunks with one init.mp4 file
29 novembre 2018, par JAVA CoderI am trying to split one audio.mp4 into multiple chunks(each of 10 seconds) with file format of .m4s or .mpd and one init.mp4 .
1>I have successfully made chunks of 10 secs with one m3u8 file by this command-
ffmpeg -i song.mp3 -c:a aac -b:a 64k -vn -hls_time 10 -hls_list_size 0 abc.m3u8
2>Tried this command also
MP4Box -dash 10000 -frag 1000 -rap -segment-name myDash -subsegs-per-sidx 5 -url-template test.mp4
But not able to make .m4s chunks with one init.mp4.
-
OpenCV's VideoCapture::open Video Source Dialog
13 novembre 2015, par swtdrgnIn my current project, when I call VideoCapture::open(
camera device index
) and the camera is in used by another program, it shows aVideo Source
dialog and returns true when I select a device that is already in use.However, in my [previous] experiment project, when I called VideoCapture::open(
camera device index
), it doesn’t show this dialog.I want to know what is causing the
Video Source
dialog to show and the program to behave differently from the experimental project.This is the source code to the experiment project :
int main (int argc, char *argv[])
{
//vars
time_duration td, td1;
ptime nextFrameTimestamp, currentFrameTimestamp, initialLoopTimestamp, finalLoopTimestamp;
int delayFound = 0;
int totalDelay= 0;
// initialize capture on default source
VideoCapture capture;
std::cout << "capture.open(0): " << capture.open(0) << std::endl;
std::cout << "NOOO" << std::endl;
namedWindow("video", 1);
// set framerate to record and capture at
int framerate = 15;
// Get the properties from the camera
double width = capture.get(CV_CAP_PROP_FRAME_WIDTH);
double height = capture.get(CV_CAP_PROP_FRAME_HEIGHT);
// print camera frame size
//cout << "Camera properties\n";
//cout << "width = " << width << endl <<"height = "<< height << endl;
// Create a matrix to keep the retrieved frame
Mat frame;
// Create the video writer
VideoWriter video("capture.avi",0, framerate, cvSize((int)width,(int)height) );
// initialize initial timestamps
nextFrameTimestamp = microsec_clock::local_time();
currentFrameTimestamp = nextFrameTimestamp;
td = (currentFrameTimestamp - nextFrameTimestamp);
// start thread to begin capture and populate Mat frame
boost::thread captureThread(captureFunc, &frame, &capture);
// loop infinitely
for(bool q=true;q;)
{
if(frame.empty()){continue;}
//if(cvWaitKey( 5 ) == 'q'){ q=false; }
// wait for X microseconds until 1second/framerate time has passed after previous frame write
while(td.total_microseconds() < 1000000/framerate){
//determine current elapsed time
currentFrameTimestamp = microsec_clock::local_time();
td = (currentFrameTimestamp - nextFrameTimestamp);
if(cvWaitKey( 5 ) == 'q'){
std::cout << "B" << std::endl;
q=false;
boost::posix_time::time_duration timeout = boost::posix_time::milliseconds(0);
captureThread.timed_join(timeout);
break;
}
}
// determine time at start of write
initialLoopTimestamp = microsec_clock::local_time();
// Save frame to video
video << frame;
imshow("video", frame);
//write previous and current frame timestamp to console
cout << nextFrameTimestamp << " " << currentFrameTimestamp << " ";
// add 1second/framerate time for next loop pause
nextFrameTimestamp = nextFrameTimestamp + microsec(1000000/framerate);
// reset time_duration so while loop engages
td = (currentFrameTimestamp - nextFrameTimestamp);
//determine and print out delay in ms, should be less than 1000/FPS
//occasionally, if delay is larger than said value, correction will occur
//if delay is consistently larger than said value, then CPU is not powerful
// enough to capture/decompress/record/compress that fast.
finalLoopTimestamp = microsec_clock::local_time();
td1 = (finalLoopTimestamp - initialLoopTimestamp);
delayFound = td1.total_milliseconds();
cout << delayFound << endl;
//output will be in following format
//[TIMESTAMP OF PREVIOUS FRAME] [TIMESTAMP OF NEW FRAME] [TIME DELAY OF WRITING]
if(!q || cvWaitKey( 5 ) == 'q'){
std::cout << "C" << std::endl;
q=false;
boost::posix_time::time_duration timeout = boost::posix_time::milliseconds(0);
captureThread.timed_join(timeout);
break;
}
}
// Exit
return 0;
}