
Recherche avancée
Autres articles (14)
-
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...) -
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Submit enhancements and plugins
13 avril 2011If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone.
Sur d’autres sites (2094)
-
Revision d21070a538 : multi-res : disable intra on forced ref frames If a reference frame is forced be
9 octobre 2012, par John KoleszarChanged Paths : Modify /vp8/encoder/pickinter.c multi-res : disable intra on forced ref frames If a reference frame is forced because of low dissimilarity, then shut off the search of intra modes. This change has mixed results. On one clip (QVGA), it hurt quality by 1.5% with negligible speed (...)
-
Greed is Good ; Greed Works
25 novembre 2010, par Multimedia Mike — VP8Greed, for lack of a better word, is good ; Greed works. Well, most of the time. Maybe.
Picking Prediction Modes
VP8 uses one of 4 prediction modes to predict a 16x16 luma block or 8x8 chroma block before processing it (for luma, a block can also be broken into 16 4x4 blocks for individual prediction using even more modes).So, how to pick the best predictor mode ? I had no idea when I started writing my VP8 encoder. I did not read any literature on the matter ; I just sat down and thought of a brute-force approach. According to the comments in my code :
// naive, greedy algorithm : // residual = source - predictor // mean = mean(residual) // residual -= mean // find the max diff between the mean and the residual // the thinking is that, post-prediction, the best block will // be comprised of similar samples
After removing the predictor from the macroblock, individual 4x4 subblocks are put through a forward DCT and quantized. Optimal compression in this scenario results when all samples are the same since only the DC coefficient will be non-zero. Failing that, when the input samples are at least similar to each other, few of the AC coefficients will be non-zero, which helps compression. When the samples are all over the scale, there aren’t a whole lot of non-zero coefficients unless you crank up the quantizer, which results in poor quality in the reconstructed subblocks.
Thus, my goal was to pick a prediction mode that, when applied to the input block, resulted in a residual in which each element would feature the least deviation from the mean of the residual (relative to other prediction choices).
Greedy Approach
I realized that this algorithm falls into the broad general category of "greedy" algorithms— one that makes locally optimal decisions at each stage. There are most likely smarter algorithms. But this one was good enough for making an encoder that just barely works.Compression Results
I checked the total file compression size on my usual 640x360 Big Buck Bunny logo image while forcing prediction modes vs. using my greedy prediction picking algorithm. In this very simple test, DC-only actually resulted in slightly better compression than the greedy algorithm (which says nothing about overall quality).prediction mode quantizer index = 0 (minimum) quantizer index = 10 greedy 286260 98028 DC 280593 95378 vertical 297206 105316 horizontal 295357 104185 TrueMotion 311660 113480 As another data point, in both quantizer cases, my greedy algorithm selected a healthy mix of prediction modes :
- quantizer index 0 : DC = 521, VERT = 151, HORIZ = 183, TM = 65
- quantizer index 10 : DC = 486, VERT = 167, HORIZ = 190, TM = 77
Size vs. Quality
Again, note that this ad-hoc test only measures one property (a highly objective one)— compression size. It did not account for quality which is a far more controversial topic that I have yet to wade into. -
Playing videos using HTML5 Tag
20 novembre 2012, par Haja MohaideenI am creating a website where videos need to be streamed. The content creator uploads .mov file to the server. Upon uploading, I convert to the following formats using FFMPEG, .mp4, .webm, and .ogg.
I am now trying to allow the video to be viewed from multiple browsers and handheld devices. The code is as follow :
<code class="echappe-js"><script> <br />
var video = document.getElementById(&#39;video&#39;);<br />
video.addEventListener(&#39;click&#39;,function(){<br />
video.play();<br />
},false);<br />
</script><script type="text/javascript" src="http://stackoverflow.com/feeds/tag/jwplayer.js"></script>
<script type="text/javascript"><br />
jwplayer("video").setup({<br />
modes: [<br />
{ type: &#39;html5&#39; },<br />
{ type: &#39;flash&#39;, src: &#39;player.swf&#39; }<br />
]<br />
});<br />
</script>The video works on all browsers. But, it is refusing to play on Android. When I click the play button, it shows as loading only.
I am testing on 4.0.3.
FFMPEG conversion codes :
webm
exec("ffmpeg -y -i file.mov -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 output.webm", $command_output, $result);
ogg
exec("ffmpeg -y -i file.mov -acodec libvorbis -ac 2 -ab 96k -ar 44100 -b 345k -s 640x360 output.ogv", $command_output, $result);
flv
exec("ffmpeg -y -i file.mov -ar 44100 -ab 96 -f flv output.flv", $command_output, $result);
For MP4 :
sudo ffmpeg -i file.mov -s 320x240 -c:v libx264 -pix_fmt yuv420p -profile:v baseline -preset slow -acodec aac -strict experimental -ac 2 -r 15 -ab 44100 -aspect 16:9 output.mp4
ffmpeg version git-2012-10-11-492b8ec Copyright (c) 2000-2012 the FFmpeg developers
built on Oct 11 2012 19:59:50 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3
libavutil 51. 74.100 / 51. 74.100
libavcodec 54. 65.100 / 54. 65.100
libavformat 54. 31.100 / 54. 31.100
libavdevice 54. 3.100 / 54. 3.100
libavfilter 3. 19.102 / 3. 19.102
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 16.100 / 0. 16.100
libpostproc 52. 1.100 / 52. 1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x23f3220] Stream #1: not enough frames to estimate rate; consider increasing probesize
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x23f3220] Stream #2: not enough frames to estimate rate; consider increasing probesize
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-09-07 11:10:10
Duration: 00:01:41.83, start: 0.000000, bitrate: 186917 kb/s
Stream #0:0(eng): Video: qtrle (rle / 0x20656C72), rgb24, 1920x1080, 185371 kb/s, SAR 1920:1920 DAR 16:9, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc
Metadata:
creation_time : 2012-09-07 11:10:10
handler_name : Apple Alias Data Handler
timecode : 00:00:00;03
Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s
Metadata:
creation_time : 2012-09-07 11:10:10
handler_name : Apple Alias Data Handler
timecode : 00:00:00;03
Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
Metadata:
creation_time : 2012-09-07 11:31:37
handler_name : Apple Alias Data Handler
timecode : 00:00:00;03
File 'output.mp4' already exists. Overwrite ? [y/N] y
using SAR=4/3
[libx264 @ 0x240bf60] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x240bf60] profile Constrained Baseline, level 1.2
[libx264 @ 0x240bf60] 264 - core 128 r2 198a7ea - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 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=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=50 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 'output.mp4':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
encoder : Lavf54.31.100
Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 320x240 [SAR 4:3 DAR 16:9], q=-1--1, 15360 tbn, 15 tbc
Metadata:
creation_time : 2012-09-07 11:10:10
handler_name : Apple Alias Data Handler
timecode : 00:00:00;03
Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 44 kb/s
Metadata:
creation_time : 2012-09-07 11:10:10
handler_name : Apple Alias Data Handler
timecode : 00:00:00;03
Stream mapping:
Stream #0:0 -> #0:0 (qtrle -> libx264)
Stream #0:1 -> #0:1 (pcm_s16le -> aac)
Press [q] to stop, [?] for help
frame= 25 fps=0.0 q=0.0 size= 0kB time=00:00:01.32 bitrate= 0.frame= 47 fps= 47 q=0.0 size= 0kB time=00:00:02.68 bitrate= 0.frame= 67 fps= 44 q=27.0 size= 12kB time=00:00:04.05 bitrate= 23frame= 88 fps= 44 q=27.0 size= 23kB time=00:00:05.41 bitrate= 34frame= 108 fps= 43 q=27.0 size= 35kB time=00:00:06.78 bitrate= 42frame= 128 fps= 42 q=27.0 size= 47kB time=00:00:08.14 bitrate= 47frame= 150 fps= 43 q=27.0 size= 64kB time=00:00:09.51 bitrate= 54frame= 172 fps= 43 q=27.0 size= 81kB time=00:00:10.88 bitrate= 61frame= 193 fps= 43 q=27.0 size= 106kB time=00:00:12.24 bitrate= 70frame= 214 fps= 42 q=27.0 size= 119kB time=00:00:13.61 bitrate= 71frame= 235 fps= 42 q=27.0 size= 127kB time=00:00:14.97 bitrate= 69frame= 254 fps= 42 q=27.0 size= 144kB time=00:00:16.34 bitrate= 72frame= 272 fps= 41 q=27.0 size= 157kB time=00:00:17.70 bitrate= 72frame= 289 fps= 41 q=27.0 size= 174kB time=00:00:19.07 bitrate= 74frame= 309 fps= 41 q=27.0 size= 183kB time=00:00:20.28 bitrate= 73frame= 329 fps= 41 q=27.0 size= 191kB time=00:00:20.77 bitrate= 75frame= 349 fps= 41 q=27.0 size= 200kB time=00:00:22.08 bitrate= 74frame= 369 fps= 41 q=27.0 size= 215kB time=00:00:23.38 bitrate= 75frame= 389 fps= 41 q=27.0 size= 225kB time=00:00:24.72 bitrate= 74frame= 408 fps= 40 q=27.0 size= 235kB time=00:00:26.02 bitrate= 74frame= 428 fps= 40 q=27.0 size= 247kB time=00:00:27.32 bitrate= 73frame= 448 fps= 40 q=27.0 size= 256kB time=00:00:28.65 bitrate= 73frame= 468 fps= 40 q=27.0 size= 264kB time=00:00:30.01 bitrate= 72frame= 489 fps= 40 q=27.0 size= 273kB time=00:00:31.38 bitrate= 71frame= 507 fps= 40 q=27.0 size= 299kB time=00:00:32.72 bitrate= 74frame= 527 fps= 40 q=27.0 size= 317kB time=00:00:34.09 bitrate= 76frame= 547 fps= 40 q=27.0 size= 336kB time=00:00:35.45 bitrate= 77frame= 565 fps= 40 q=27.0 size= 344kB time=00:00:36.82 bitrate= 76frame= 586 fps= 40 q=27.0 size= 352kB time=00:00:38.18 bitrate= 75frame= 607 fps= 40 q=27.0 size= 361kB time=00:00:39.55 bitrate= 74frame= 627 fps= 40 q=27.0 size= 370kB time=00:00:40.91 bitrate= 74frame= 647 fps= 40 q=27.0 size= 384kB time=00:00:42.28 bitrate= 74frame= 665 fps= 40 q=27.0 size= 408kB time=00:00:43.64 bitrate= 76frame= 684 fps= 40 q=27.0 size= 418kB time=00:00:45.01 bitrate= 76frame= 704 fps= 40 q=27.0 size= 427kB time=00:00:46.37 bitrate= 75frame= 721 fps= 40 q=27.0 size= 453kB time=00:00:47.74 bitrate= 77frame= 741 fps= 40 q=27.0 size= 463kB time=00:00:49.10 bitrate= 77frame= 761 fps= 40 q=27.0 size= 472kB time=00:00:50.47 bitrate= 76frame= 784 fps= 40 q=27.0 size= 481kB time=00:00:51.84 bitrate= 76frame= 804 fps= 40 q=27.0 size= 498kB time=00:00:53.20 bitrate= 76frame= 822 fps= 40 q=27.0 size= 518kB time=00:00:54.57 bitrate= 77frame= 843 fps= 40 q=27.0 size= 529kB time=00:00:55.93 bitrate= 77frame= 862 fps= 40 q=27.0 size= 547kB time=00:00:57.30 bitrate= 78frame= 882 fps= 40 q=27.0 size= 558kB time=00:00:58.13 bitrate= 78frame= 903 fps= 40 q=27.0 size= 568kB time=00:00:58.98 bitrate= 78frame= 923 fps= 40 q=27.0 size= 578kB time=00:01:00.35 bitrate= 78frame= 943 fps= 40 q=27.0 size= 588kB time=00:01:01.67 bitrate= 78frame= 964 fps= 40 q=27.0 size= 598kB time=00:01:03.06 bitrate= 77frame= 984 fps= 40 q=27.0 size= 607kB time=00:01:04.42 bitrate= 77frame= 1004 fps= 40 q=27.0 size= 626kB time=00:01:05.72 bitrate= 78frame= 1026 fps= 40 q=27.0 size= 638kB time=00:01:07.20 bitrate= 77frame= 1047 fps= 40 q=27.0 size= 655kB time=00:01:09.58 bitrate= 77frame= 1069 fps= 40 q=27.0 size= 670kB time=00:01:10.95 bitrate= 77frame= 1089 fps= 40 q=27.0 size= 691kB time=00:01:12.32 bitrate= 78frame= 1108 fps= 40 q=27.0 size= 710kB time=00:01:12.64 bitrate= 80frame= 1126 fps= 40 q=27.0 size= 731kB time=00:01:13.85 bitrate= 81frame= 1142 fps= 40 q=27.0 size= 759kB time=00:01:15.05 bitrate= 82frame= 1157 fps= 39 q=27.0 size= 787kB time=00:01:16.41 bitrate= 84frame= 1174 fps= 39 q=27.0 size= 796kB time=00:01:17.78 bitrate= 83frame= 1192 fps= 39 q=27.0 size= 806kB time=00:01:19.14 bitrate= 83frame= 1209 fps= 39 q=27.0 size= 821kB time=00:01:19.38 bitrate= 84frame= 1227 fps= 39 q=27.0 size= 831kB time=00:01:20.59 bitrate= 84frame= 1248 fps= 39 q=27.0 size= 840kB time=00:01:21.96 bitrate= 84frame= 1267 fps= 39 q=27.0 size= 848kB time=00:01:23.24 bitrate= 83frame= 1289 fps= 39 q=27.0 size= 857kB time=00:01:24.73 bitrate= 82frame= 1309 fps= 39 q=24.0 size= 877kB time=00:01:26.03 bitrate= 83frame= 1329 fps= 39 q=27.0 size= 892kB time=00:01:27.40 bitrate= 83frame= 1351 fps= 39 q=27.0 size= 901kB time=00:01:28.85 bitrate= 83frame= 1372 fps= 39 q=27.0 size= 912kB time=00:01:30.28 bitrate= 82frame= 1394 fps= 39 q=27.0 size= 925kB time=00:01:32.52 bitrate= 81frame= 1418 fps= 39 q=27.0 size= 936kB time=00:01:34.16 bitrate= 81frame= 1441 fps= 40 q=27.0 size= 947kB time=00:01:35.53 bitrate= 81frame= 1464 fps= 40 q=27.0 size= 957kB time=00:01:36.89 bitrate= 80frame= 1488 fps= 40 q=27.0 size= 969kB time=00:01:38.26 bitrate= 80frame= 1509 fps= 40 q=27.0 size= 981kB time=00:01:39.62 bitrate= 80frame= 1526 fps= 40 q=27.0 size= 993kB time=00:01:41.90 bitrate= 79frame= 1530 fps= 40 q=27.0 Lsize= 1038kB time=00:01:42.00 bitrate= 83.4kbits/s dup=0 drop=1522
video:406kB audio:590kB subtitle:0 global headers:0kB muxing overhead 4.258083%
[libx264 @ 0x240bf60] frame I:15 Avg QP:16.30 size: 2928
[libx264 @ 0x240bf60] frame P:1515 Avg QP:22.12 size: 245
[libx264 @ 0x240bf60] mb I I16..4: 72.9% 0.0% 27.1%
[libx264 @ 0x240bf60] mb P I16..4: 3.9% 0.0% 0.7% P16..4: 3.2% 1.1% 0.5% 0.0% 0.0% skip:90.5%
[libx264 @ 0x240bf60] coded y,uvDC,uvAC intra: 12.1% 38.2% 14.8% inter: 1.2% 2.7% 0.9%
[libx264 @ 0x240bf60] i16 v,h,dc,p: 29% 23% 4% 44%
[libx264 @ 0x240bf60] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 30% 6% 8% 8% 5% 6% 3%
[libx264 @ 0x240bf60] i8c dc,h,v,p: 50% 27% 18% 5%
[libx264 @ 0x240bf60] ref P L0: 80.0% 8.9% 6.1% 2.7% 2.3%
[libx264 @ 0x240bf60] kb/s:32.58I decided to remote debug to see what is happening. I realised that the video status is pending.