Recherche avancée

Médias (91)

Autres articles (7)

  • Supporting all media types

    13 avril 2011, par

    Unlike 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 (...)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • List of compatible distributions

    26 avril 2011, par

    The 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 (...)

Sur d’autres sites (3575)

  • Error converting .flv to .avi with ffmpeg

    5 juillet 2012, par user1504396

    When i try the 2d code, with a 5 minutes 7 second video, I get a 28 minutes 29 seconds video, What did I do wrong ?

    Here is the ffmpeg output :

    [Me@Hewlett-Packard Downloads]$ ffmpeg -i "0042473.flv" -s 400x240 -aspect 2:1 -r 20 -vcodec mjpeg -qscale 1 -acodec adpcm_ima_wav -ac 2 "VID_0001.AVI"
    ffmpeg version 0.8.10, Copyright © 2000-2011 the FFmpeg developers
    built on Feb 29 2012 16:30:44 with gcc 4.6.2 20111027 (Red Hat 4.6.2-1)
    configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
    libavutil 51. 9. 1 / 51. 9. 1
    libavcodec 53. 8. 0 / 53. 8. 0
    libavformat 53. 5. 0 / 53. 5. 0
    libavdevice 53. 1. 1 / 53. 1. 1
    libavfilter 2. 23. 0 / 2. 23. 0
    libswscale 2. 0. 0 / 2. 0. 0
    libpostproc 51. 2. 0 / 51. 2. 0
    [flv @ 0x2165600] Estimating duration from bitrate, this may be inaccurate

    Seems stream 0 codec frame rate differs from container frame rate: 59.94 (2997/50) -> 29.97 (30000/1001)
    Input #0, flv, from '0042473.flv':
    Metadata:
    minor_version : 1
    stereo : true
    videocodecid : 7
    audiodatarate : 62
    audiosamplerate : 44100
    audiosize : 2476815
    canSeekToEnd : true
    creation_time : 2011-05-01 18:06:43
    copyright :
    compatible_brands: isomavc1
    datasize : 16589374
    duration : 308
    copyright-eng :
    encoder : Lavf52.104.0
    videodatarate : 351
    hasAudio : true
    hasCuePoints : false
    hasKeyframes : true
    hasMetadata : true
    hasVideo : true
    width : 480
    lasttimestamp : 308
    audiocodecid : 10
    metadatacreator : flvtool++ (Facebook, Motion project, dweatherford)
    major_brand : isom
    audiosamplesize : 16
    totalframes : 9225
    framerate : 30
    height : 272
    videosize : 13863389
    filesize : 16587742
    Duration: 00:05:07.94, start: 0.000000, bitrate: 423 kb/s
    Stream #0.0: Video: h264 (High), yuv420p, 480x272 [PAR 1:1 DAR 30:17], 359 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 63 kb/s
    Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting format 'yuvj420p'
    [buffer @ 0x216b180] w:480 h:272 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
    [scale @ 0x216bf40] w:480 h:272 fmt:yuv420p -> w:400 h:240 fmt:yuvj420p flags:0x4
    Output #0, avi, to 'VID_0001.AVI':
    Metadata:
    minor_version : 1
    stereo : true
    videocodecid : 7
    audiodatarate : 62
    audiosamplerate : 44100
    audiosize : 2476815
    canSeekToEnd : true
    creation_time : 2011-05-01 18:06:43
    ICOP :
    compatible_brands: isomavc1
    datasize : 16589374
    duration : 308
    copyright-eng :
    filesize : 16587742
    videodatarate : 351
    hasAudio : true
    hasCuePoints : false
    hasKeyframes : true
    hasMetadata : true
    hasVideo : true
    width : 480
    lasttimestamp : 308
    audiocodecid : 10
    metadatacreator : flvtool++ (Facebook, Motion project, dweatherford)
    major_brand : isom
    audiosamplesize : 16
    totalframes : 9225
    framerate : 30
    height : 272
    videosize : 13863389
    ISFT : Lavf53.5.0
    Stream #0.0: Video: mjpeg, yuvj420p, 400x240 [PAR 6:5 DAR 2:1], q=2-31, 200 kb/s, 20 tbn, 20 tbc
    Stream #0.1: Audio: adpcm_ima_wav, 44100 Hz, stereo, s16, 352 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop, [?] for help
    frame= 43 fps= 0 q=1.0 size= 1330kB time=00:00:02.12 bitrate=5135.7kbits/sframe= 87 fps= 86 q=1.0 size= 2712kB time=00:00:04.35 bitrate=5097.2kbits/sframe= 135 fps= 89 q=1.0 size= 3579kB time=00:00:06.78 bitrate=4324.9kbits/sframe= 185 fps= 92 q=1.0 size= 4307kB time=00:00:09.27 bitrate=3805.9kbits/sframe= 231 fps= 92 q=1.0 size= 5208kB time=00:00:11.55 bitrate=3692.4kbits/sframe= 276 fps= 91 q=1.0 size= 6129kB time=00:00:13.83 bitrate=3628.5kbits/sframe= 318 fps= 90 q=1.0 size= 6978kB time=00:00:15.91 bitrate=3592.6kbits/sframe= 366 fps= 91 q=1.0 size= 7990kB time=00:00:18.33 bitrate=3570.2kbits/sframe= 408 fps= 90 q=1.0 size= 8912kB time=00:00:20.43 bitrate=3573.2kbits/sframe= 451 fps= 90 q=1.0 size= 9831kB time=00:00:22.55 bitrate=3570.9kbits/sframe= 495 fps= 89 q=1.0 size= 10827kB time=00:00:24.74 bitrate=3584.4kbits/sframe= 539 fps= 89 q=1.0 size= 11845kB time=00:00:26.91 bitrate=3605.5kbits/sframe= 583 fps= 89 q=1.0 size= 12939kB time=00:00:29.14 bitrate=3636.2kbits/sframe= 630 fps= 89 q=1.0 size= 13790kB time=00:00:31.52 bitrate=3583.5kbits/sframe= 676 fps= 89 q=1.0 size= 14710kB time=00:00:33.80 bitrate=3564.4kbits/sframe= 723 fps= 90 q=1.0 size= 15651kB time=00:00:36.16 bitrate=3545.7kbits/sframe= 767 fps= 90 q=1.0 size= 16589kB time=00:00:38.35 bitrate=3543.6kbits/sframe= 809 fps= 89 q=1.0 size= 17576kB time=00:00:40.42 bitrate=3561.7kbits/sframe= 852 fps= 89 q=1.0 size= 18598kB time=00:00:42.61 bitrate=3575.0kbits/sframe= 898 fps= 89 q=1.0 size= 19548kB time=00:00:44.90 bitrate=3566.6kbits/sframe= 940 fps= 89 q=1.0 size= 20666kB time=00:00:46.97 bitrate=3603.9kbits/sframe= 982 fps= 89 q=1.0 size= 21739kB time=00:00:49.12 bitrate=3625.5kbits/sframe= 1024 fps= 88 q=1.0 size= 22711kB time=00:00:51.25 bitrate=3630.2kbits/sframe= 1070 fps= 88 q=1.0 size= 23769kB time=00:00:53.47 bitrate=3640.9kbits/sframe= 1118 fps= 89 q=1.0 size= 24935kB time=00:00:55.90 bitrate=3654.2kbits/sframe= 1165 fps= 89 q=1.0 size= 26047kB time=00:00:58.22 bitrate=3664.3kbits/sframe= 1213 fps= 89 q=1.0 size= 27187kB time=00:01:00.62 bitrate=3673.5kbits/sframe= 1265 fps= 90 q=1.0 size= 27935kB time=00:01:03.23 bitrate=3619.0kbits/sframe= 1315 fps= 90 q=1.0 size= 28590kB time=00:01:05.79 bitrate=3559.7kbits/sframe= 1366 fps= 90 q=1.0 size= 29229kB time=00:01:08.30 bitrate=3505.3kbits/sframe= 1415 fps= 91 q=1.0 size= 29928kB time=00:01:10.75 bitrate=3465.2kbits/sframe= 1464 fps= 91 q=1.0 size= 30612kB time=00:01:13.25 bitrate=3423.5kbits/sframe= 1512 fps= 91 q=1.0 size= 31309kB time=00:01:15.64 bitrate=3390.8kbits/sframe= 1561 fps= 91 q=1.0 size= 31997kB time=00:01:18.06 bitrate=3357.8kbits/sframe= 1608 fps= 91 q=1.0 size= 32760kB time=00:01:20.36 bitrate=3339.3kbits/sframe= 1654 fps= 91 q=1.0 size= 33563kB time=00:01:22.69 bitrate=3324.7kbits/sframe= 1700 fps= 91 q=1.0 size= 34318kB time=00:01:24.98 bitrate=3308.2kbits/sframe= 1745 fps= 91 q=1.0 size= 35041kB time=00:01:27.24 bitrate=3290.4kbits/sframe= 1791 fps= 91 q=1.0 size= 35749kB time=00:01:29.56 bitrate=3269.6kbits/sframe= 1837 fps= 91 q=1.0 size= 36442kB time=00:01:31.85 bitrate=3250.1kbits/sframe= 1884 fps= 91 q=1.0 size= 37121kB time=00:01:34.20 bitrate=3228.0kbits/sframe= 1931 fps= 91 q=1.0 size= 37840kB time=00:01:36.53 bitrate=3211.1kbits/sframe= 1978 fps= 91 q=1.0 size= 38561kB time=00:01:38.90 bitrate=3193.8kbits/sframe= 2025 fps= 91 q=1.0 size= 39279kB time=00:01:41.28 bitrate=3176.9kbits/sframe= 2072 fps= 91 q=1.0 size= 40005kB time=00:01:43.59 bitrate=3163.6kbits/sframe= 2117 fps= 91 q=1.0 size= 40833kB time=00:01:45.87 bitrate=3159.5kbits/sframe= 2158 fps= 91 q=1.0 size= 41561kB time=00:01:47.90 bitrate=3155.3kbits/sframe= 2202 fps= 91 q=1.0 size= 42407kB time=00:01:50.14 bitrate=3154.1kbits/sframe= 2248 fps= 91 q=1.0 size= 43201kB time=00:01:52.42 bitrate=3147.9kbits/sframe= 2295 fps= 91 q=1.0 size= 43975kB time=00:01:54.75 bitrate=3139.3kbits/sframe= 2342 fps= 91 q=1.0 size= 44739kB time=00:01:57.10 bitrate=3129.7kbits/sframe= 2388 fps= 91 q=1.0 size= 45532kB time=00:01:59.43 bitrate=3123.0kbits/sframe= 2435 fps= 91 q=1.0 size= 46306kB time=00:02:01.80 bitrate=3114.5kbits/sframe= 2481 fps= 91 q=1.0 size= 47095kB time=00:02:04.02 bitrate=3110.7kbits/sframe= 2530 fps= 91 q=1.0 size= 47778kB time=00:02:06.49 bitrate=3094.3kbits/sframe= 2578 fps= 91 q=1.0 size= 48507kB time=00:02:08.91 bitrate=3082.5kbits/sframe= 2622 fps= 91 q=1.0 size= 49169kB time=00:02:11.08 bitrate=3072.9kbits/sframe= 2670 fps= 91 q=1.0 size= 49851kB time=00:02:13.54 bitrate=3057.9kbits/sframe= 2718 fps= 91 q=1.0 size= 50531kB time=00:02:15.92 bitrate=3045.5kbits/sframe= 2764 fps= 91 q=1.0 size= 51242kB time=00:02:18.18 bitrate=3037.8kbits/sframe= 2810 fps= 92 q=1.0 size= 51959kB time=00:02:20.51 bitrate=3029.3kbits/sframe= 2835 fps= 90 q=1.0 size= 52376kB time=00:02:21.78 bitrate=3026.2kbits/sframe= 2879 fps= 90 q=1.0 size= 53093kB time=00:02:23.94 bitrate=3021.5kbits/sframe= 2923 fps= 90 q=1.0 size= 53853kB time=00:02:26.18 bitrate=3017.8kbits/sframe= 2968 fps= 90 q=1.0 size= 54594kB time=00:02:28.39 bitrate=3013.7kbits/sframe= 3012 fps= 90 q=1.0 size= 55444kB time=00:02:30.63 bitrate=3015.2kbits/sframe= 3056 fps= 90 q=1.0 size= 56495kB time=00:02:32.78 bitrate=3029.2kbits/sframe= 3098 fps= 90 q=1.0 size= 57463kB time=00:02:34.90 bitrate=3039.0kbits/sframe= 3141 fps= 90 q=1.0 size= 58433kB time=00:02:37.04 bitrate=3048.0kbits/sframe= 3186 fps= 90 q=1.0 size= 59457kB time=00:02:39.33 bitrate=3057.0kbits/sframe= 3232 fps= 90 q=1.0 size= 60471kB time=00:02:41.59 bitrate=3065.6kbits/sframe= 3277 fps= 90 q=1.0 size= 61485kB time=00:02:43.82 bitrate=3074.5kbits/sframe= 3322 fps= 90 q=1.0 size= 62297kB time=00:02:46.11 bitrate=3072.3kbits/sframe= 3365 fps= 90 q=1.0 size= 63043kB time=00:02:48.27 bitrate=3069.0kbits/sframe= 3409 fps= 90 q=1.0 size= 63752kB time=00:02:50.46 bitrate=3063.7kbits/sframe= 3455 fps= 90 q=1.0 size= 64529kB time=00:02:52.75 bitrate=3060.0kbits/sframe= 3499 fps= 90 q=1.0 size= 65306kB time=00:02:54.96 bitrate=3057.7kbits/sframe= 3545 fps= 90 q=1.0 size= 66070kB time=00:02:57.24 bitrate=3053.6kbits/sframe= 3594 fps= 90 q=1.0 size= 66804kB time=00:02:59.71 bitrate=3045.1kbits/sframe= 3644 fps= 90 q=1.0 size= 67554kB time=00:03:02.18 bitrate=3037.6kbits/sframe= 3690 fps= 90 q=1.0 size= 68436kB time=00:03:04.48 bitrate=3038.8kbits/sframe= 3740 fps= 90 q=1.0 size= 69121kB time=00:03:07.00 bitrate=3028.0kbits/sframe= 3787 fps= 90 q=1.0 size= 69953kB time=00:03:09.33 bitrate=3026.7kbits/sframe= 3832 fps= 90 q=1.0 size= 70857kB time=00:03:11.59 bitrate=3029.7kbits/sframe= 3878 fps= 90 q=1.0 size= 71622kB time=00:03:13.92 bitrate=3025.6kbits/sframe= 3925 fps= 90 q=1.0 size= 72343kB time=00:03:16.25 bitrate=3019.8kbits/sframe= 3973 fps= 90 q=1.0 size= 73100kB time=00:03:18.64 bitrate=3014.5kbits/sframe= 4021 fps= 90 q=1.0 size= 73867kB time=00:03:21.07 bitrate=3009.5kbits/sframe= 4070 fps= 90 q=1.0 size= 74643kB time=00:03:23.53 bitrate=3004.2kbits/sframe= 4119 fps= 90 q=1.0 size= 75363kB time=00:03:25.95 bitrate=2997.6kbits/sframe= 4167 fps= 90 q=1.0 size= 76077kB time=00:03:28.35 bitrate=2991.1kbits/sframe= 4216 fps= 91 q=1.0 size= 76751kB time=00:03:30.77 bitrate=2983.0kbits/sframe= 4263 fps= 91 q=1.0 size= 77432kB time=00:03:33.15 bitrate=2975.9kbits/sframe= 4315 fps= 91 q=1.0 size= 78087kB time=00:03:35.73 bitrate=2965.1kbits/sframe= 4367 fps= 91 q=1.0 size= 78795kB time=00:03:38.34 bitrate=2956.3kbits/sframe= 4418 fps= 91 q=1.0 size= 79475kB time=00:03:40.90 bitrate=2947.2kbits/sframe= 4469 fps= 91 q=1.0 size= 80174kB time=00:03:43.46 bitrate=2939.1kbits/sframe= 4519 fps= 91 q=1.0 size= 80865kB time=00:03:45.90 bitrate=2932.4kbits/sframe= 4567 fps= 91 q=1.0 size= 81621kB time=00:03:48.32 bitrate=2928.4kbits/sframe= 4611 fps= 91 q=1.0 size= 82613kB time=00:03:50.56 bitrate=2935.2kbits/sframe= 4655 fps= 91 q=1.0 size= 83653kB time=00:03:52.80 bitrate=2943.7kbits/sframe= 4699 fps= 91 q=1.0 size= 84646kB time=00:03:54.97 bitrate=2951.1kbits/sframe= 4743 fps= 91 q=1.0 size= 85543kB time=00:03:57.20 bitrate=2954.3kbits/sframe= 4789 fps= 91 q=1.0 size= 86344kB time=00:03:59.42 bitrate=2954.3kbits/sframe= 4836 fps= 91 q=1.0 size= 87090kB time=00:04:01.79 bitrate=2950.6kbits/sframe= 4883 fps= 91 q=1.0 size= 87821kB time=00:04:04.17 bitrate=2946.4kbits/sframe= 4930 fps= 91 q=1.0 size= 88571kB time=00:04:06.50 bitrate=2943.5kbits/sframe= 4977 fps= 91 q=1.0 size= 89318kB time=00:04:08.85 bitrate=2940.3kbits/sframe= 5024 fps= 91 q=1.0 size= 90014kB time=00:04:11.18 bitrate=2935.7kbits/sframe= 5070 fps= 91 q=1.0 size= 90743kB time=00:04:13.55 bitrate=2931.8kbits/sframe= 5120 fps= 91 q=1.0 size= 91438kB time=00:04:16.00 bitrate=2926.0kbits/sframe= 5165 fps= 91 q=1.0 size= 92265kB time=00:04:18.28 bitrate=2926.4kbits/sframe= 5211 fps= 91 q=1.0 size= 93079kB time=00:04:20.56 bitrate=2926.3kbits/sframe= 5258 fps= 91 q=1.0 size= 93913kB time=00:04:22.87 bitrate=2926.6kbits/sframe= 5304 fps= 91 q=1.0 size= 94739kB time=00:04:25.20 bitrate=2926.4kbits/sframe= 5351 fps= 91 q=1.0 size= 95565kB time=00:04:27.60 bitrate=2925.5kbits/sframe= 5398 fps= 91 q=1.0 size= 96368kB time=00:04:29.90 bitrate=2924.9kbits/sframe= 5444 fps= 91 q=1.0 size= 97176kB time=00:04:32.16 bitrate=2924.9kbits/sframe= 5490 fps= 91 q=1.0 size= 98049kB time=00:04:34.54 bitrate=2925.6kbits/sframe= 5538 fps= 91 q=1.0 size= 98914kB time=00:04:36.91 bitrate=2926.1kbits/sframe= 5587 fps= 91 q=1.0 size= 99817kB time=00:04:39.36 bitrate=2927.0kbits/sframe= 5636 fps= 91 q=1.0 size= 100709kB time=00:04:41.83 bitrate=2927.3kbits/sframe= 5682 fps= 91 q=1.0 size= 101490kB time=00:04:44.11 bitrate=2926.3kbits/sframe= 5732 fps= 91 q=1.0 size= 102230kB time=00:04:46.60 bitrate=2922.0kbits/sframe= 5781 fps= 91 q=1.0 size= 102991kB time=00:04:49.07 bitrate=2918.6kbits/sframe= 5827 fps= 91 q=1.0 size= 103918kB time=00:04:51.35 bitrate=2921.8kbits/sframe= 5874 fps= 92 q=1.0 size= 104873kB time=00:04:53.73 bitrate=2924.9kbits/sframe= 5921 fps= 92 q=1.0 size= 105844kB time=00:04:56.08 bitrate=2928.5kbits/sframe= 5970 fps= 92 q=1.0 size= 106670kB time=00:04:58.50 bitrate=2927.4kbits/sframe= 6028 fps= 92 q=1.0 size= 108198kB time=00:05:01.43 bitrate=2940.5kbits/sframe= 6080 fps= 91 q=1.0 size= 109527kB time=00:05:03.99 bitrate=2951.5kbits/sframe= 6138 fps= 92 q=1.0 size= 110623kB time=00:05:06.85 bitrate=2953.3kbits/sframe= 6156 fps= 92 q=1.0 Lsize= 111017kB time=00:05:07.85 bitrate=2954.2kbits/s dup=0 drop=3067

    video:97193kB audio:13354kB global headers:0kB muxing overhead 0.425158%

    Where is my problem ?

  • FFMpeg video thumbnail frame extraction

    30 mars 2012, par Simone Margaritelli

    i'm trying to extract a thumbnail from a video with ffmpeg, therefore i'm using the command line :

    ffmpeg -i video.mp4 -vframes 1 -an -f image2 -y thumbmail.png 2>&1

    But in most cases, the first frame is completely black.
    So, what i'm doing is :

    for( $i = 1; $i < MAX_FRAME_CHECKING; $i++ )
    {
     $cmd = sprintf( 'ffmpeg -i video.mp4 -vframes 1 -an -vf select="eq(n\,%d)"-f image2 -y thumbmail.png 2>&1', $i );

     @exec( $cmd, $aOutput, $iReturnValue );

     if( self::isGoodKeyFrame( 'thumbmail.png' ) )
       break;
    }

    Where the isGoodKeyFrame method is defined as :

    private static function isGoodKeyFrame( $sImagePath )
    {
     if( class_exists('Imagick') )
     {
       $hImagick = new Imagick();

       try
       {
         if ( $hImagick->readImage($sImagePath) && $hImagick->valid() )
         {
           $hQuantized = @$hImagick->clone( );
           $hQuantized->quantizeImage( 255, Imagick::COLORSPACE_RGB, 0, TRUE, FALSE );

           return count( $hQuantized->getImageHistogram() ) > self::HISTOGRAM_SIZE_THRESHOLD;
         }
         else
           error_log( "'$sImagePath' is not a valid image." );
       }
       catch( Exception $e )
       {
         error_log( $e->getMessage() );
       }

       $hImagick->clear( );
       $hImagick->destroy( );

     }
     else
       error_log( 'Imagick not installed.' );

     return TRUE;
    }

    So basically what i'm doing is capture 1 to MAX_FRAME_CHECKING frames, check their color histogram and when i find something with much colors than my minimum threshold i break the loop and return that frame.

    Is there a way to do this natively with ffmpeg ?

    Thanks

  • how to decode wmp3 video using libavcodec ? (ffmpeg)

    13 mars 2012, par Renan Elias

    I'm developing an application that reads a live tv stream from the internet and I need to play it on my ipad application.

    I've compiled the ffmpeg into my ipad application to use the libavcodec lib, but I've not been able to use it in this lib...

    I know how to get the stream packets, read if it is an audio or video packet, but I don't know how to use the lib to convert the original packet codecs to h264 and mp3 codec...

    I need to convert an stream packet wmv3 to h264 and save it on a file.

    My code is below...

    AVFormatContext* pFormatCtx = avformat_alloc_context();
    int             i, videoStream, audioStream;
    AVCodecContext  *pCodecCtx;
    AVCodecContext *aCodecCtx;
    AVCodec         *pCodec;
    AVCodec         *aCodec;
    AVFrame         *pFrame;
    AVFrame         *pFrameRGB;
    AVPacket        packet;
    int             frameFinished;
    int             numBytes;
    uint8_t         *buffer;

    static struct SwsContext *img_convert_ctx;


    // Register all formats and codecs
    av_register_all();
    avcodec_register_all();
    avformat_network_init();

    // Open video file
    if(avformat_open_input(&pFormatCtx, [objURL cStringUsingEncoding:NSASCIIStringEncoding] ,NULL,NULL) != 0){
       return -1;
    }

    // Retrieve stream information
    if(avformat_find_stream_info(pFormatCtx, NULL)<0)
       return -1; // Couldn't find stream information

    // Dump information about file onto standard error
    av_dump_format(pFormatCtx, 0, [objURL cStringUsingEncoding:NSASCIIStringEncoding], 0);

    // Find the first video stream
    videoStream=-1;
    audioStream=-1;
    for(i=0; i < pFormatCtx->nb_streams; i++) {
       if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO && videoStream < 0) {
           videoStream=i;
       }
       if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO && audioStream < 0) {
           audioStream=i;
       }
    }
    if(videoStream==-1)
       return -1; // Didn't find a video stream
    if(audioStream==-1)
       return -1;

    // Get a pointer to the codec context for the video stream
    pCodecCtx=pFormatCtx->streams[videoStream]->codec;

    // Find the decoder for the video stream
    pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
    if(pCodec==NULL) {
       fprintf(stderr, "Unsupported codec!\n");
       return -1; // Codec not found
    }

    // Open codec
    if(avcodec_open2(pCodecCtx, pCodec, NULL)<0)
       return -1; // Could not open codec

    // Get a pointer to the codec context for the audio stream
    aCodecCtx=pFormatCtx->streams[audioStream]->codec;

    // Find the decoder for the audio stream
    aCodec = avcodec_find_decoder(aCodecCtx->codec_id);
    if(!aCodec) {
       fprintf(stderr, "Unsupported codec!\n");
       return -1; // Codec not found
    }

    // Open codec
    if(avcodec_open2(aCodecCtx, aCodec, NULL)<0)
       return -1; // Could not open codec

    // Allocate video frame
    pFrame=avcodec_alloc_frame();

    // Allocate an AVFrame structure
    pFrameRGB=avcodec_alloc_frame();
    if(pFrameRGB==NULL)
       return -1;

    // Determine required buffer size and allocate buffer
    numBytes=avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,
                               pCodecCtx->height);
    buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));

    // Assign appropriate parts of buffer to image planes in pFrameRGB
    // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
    // of AVPicture
    avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24,
                  pCodecCtx->width, pCodecCtx->height);

    // Read frames and save first five frames to disk
    i=0;
    while(av_read_frame(pFormatCtx, &packet)>=0) {
       // Is this a packet from the video stream?
       if(packet.stream_index==audioStream) {
           NSLog(@"Audio.. i'll solve the video first...");
       } else if(packet.stream_index==videoStream) {

           /// HOW CONVERT THIS VIDEO PACKET TO H264 and save on a file? :(
       }

       // Free the packet that was allocated by av_read_frame
       av_free_packet(&packet);
    }

    // Free the RGB image
    av_free(buffer);
    av_free(pFrameRGB);

    // Free the YUV frame
    av_free(pFrame);

    // Close the codec
    avcodec_close(pCodecCtx);

    // Close the video file
    avformat_close_input(&pFormatCtx);

    return 0;