Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (102)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (14067)

  • Is there any way to edit just the track data of an AVI file, like mkvpropedit does with MKV files ?

    20 juillet 2016, par hmj6jmh

    I am trying to swap the order of 2 audio tracks of an AVI file using ffmpeg.

    ffmpeg -i "infile.avi" -map 0:0 -map 0:2 -map 0:1 -c copy "outfile.avi"

    This works but the file is being re-encoded, not copied. It takes much longer than a straight copy to finish and the resulting file is larger than the original.

    Is there any way to edit just the track data of an AVI file, like mkvpropedit does with MKV files ? Command line tool preferred.

    General
    Complete name                            : infile.avi
    Format                                   : AVI
    Format/Info                              : Audio Video Interleave
    File size                                : 451 MiB
    Duration                                 : 43mn 11s
    Overall bit rate                         : 1 460 Kbps
    Writing application                      : VirtualDubMod 1.5.10.2 (build 2540/release)
    Writing library                          : VirtualDubMod build 2540/release

    Video
    ID                                       : 0
    Format                                   : MPEG-4 Visual
    Format profile                           : Advanced Simple@L5
    Format settings, BVOP                    : 3
    Format settings, QPel                    : No
    Format settings, GMC                     : No warppoints
    Format settings, Matrix                  : Default (MPEG)
    Muxing mode                              : Packed bitstream
    Codec ID                                 : XVID
    Codec ID/Hint                            : XviD
    Duration                                 : 43mn 11s
    Bit rate                                 : 1 190 Kbps
    Width                                    : 656 pixels
    Height                                   : 368 pixels
    Display aspect ratio                     : 16:9
    Frame rate                               : 23.976 fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Compression mode                         : Lossy
    Bits/(Pixel*Frame)                       : 0.206
    Stream size                              : 367 MiB (82%)
    Writing library                          : XviD 1.2.1 (UTC 2008-12-04)

    Audio #1
    ID                                       : 1
    Format                                   : MPEG Audio
    Format version                           : Version 1
    Format profile                           : Layer 3
    Codec ID                                 : 55
    Codec ID/Hint                            : MP3
    Duration                                 : 43mn 11s
    Bit rate mode                            : Constant
    Bit rate                                 : 128 Kbps
    Channel count                            : 2 channels
    Sampling rate                            : 48.0 KHz
    Compression mode                         : Lossy
    Stream size                              : 39.5 MiB (9%)
    Alignment                                : Aligned on interleaves
    Interleave, duration                     : 42 ms (1.00 video frame)
    Interleave, preload duration             : 504 ms
    Writing library                          : LAME3.98r
    Encoding settings                        : -m s -V 4 -q 2 -lowpass 17 -b 128

    Audio #2
    ID                                       : 2
    Format                                   : MPEG Audio
    Format version                           : Version 1
    Format profile                           : Layer 3
    Codec ID                                 : 55
    Codec ID/Hint                            : MP3
    Duration                                 : 43mn 11s
    Bit rate mode                            : Constant
    Bit rate                                 : 128 Kbps
    Channel count                            : 2 channels
    Sampling rate                            : 48.0 KHz
    Compression mode                         : Lossy
    Stream size                              : 39.5 MiB (9%)
    Alignment                                : Aligned on interleaves
    Interleave, duration                     : 42 ms (1.00 video frame)
    Interleave, preload duration             : 504 ms
    Writing library                          : LAME3.98r
    Encoding settings                        : -m s -V 4 -q 2 -lowpass 17 -b 128

    $ ffmpeg -i "infile.avi" -map 0:0 -map 0:2 -map 0:1 -c copy "outfile.avi"
    ffmpeg version 3.1.1 Copyright (c) 2000-2016 the FFmpeg developers
     built with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libxvid --enable-libsnappy --enable-libfontconfig --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libass --enable-ffplay --enable-libssh --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libsoxr --enable-libvidstab --enable-libx265 --enable-libwebp --enable-libbs2b --enable-librubberband --enable-libopenh264 --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5 --enable-nonfree --enable-vda
     libavutil      55. 28.100 / 55. 28.100
     libavcodec     57. 48.101 / 57. 48.101
     libavformat    57. 41.100 / 57. 41.100
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 47.100 /  6. 47.100
     libavresample   3.  0.  0 /  3.  0.  0
     libswscale      4.  1.100 /  4.  1.100
     libswresample   2.  1.100 /  2.  1.100
     libpostproc    54.  0.100 / 54.  0.100
    Input #0, avi, from 'infile.avi':
     Metadata:
       encoder         : VirtualDubMod 1.5.10.2 (build 2540/release)
     Duration: 00:44:03.10, start: 0.000000, bitrate: 1434 kb/s
       Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 656x368 [SAR 1:1 DAR 41:23], 1164 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
       Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
       Stream #0:2: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16p, 128 kb/s
    [avi @ 0x7f826b03d200] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
       Last message repeated 2 times
    Output #0, avi, to 'outfile.avi':
     Metadata:
       ISFT            : Lavf57.41.100
       Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 656x368 [SAR 1:1 DAR 41:23], q=2-31, 1164 kb/s, 23.98 fps, 23.98 tbr, 23.98 tbn, 23.98 tbc
       Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, 128 kb/s
       Stream #0:2: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, 128 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:2 -> #0:1 (copy)
     Stream #0:1 -> #0:2 (copy)
    Press [q] to stop, [?] for help
    [avi @ 0x7f826b03d200] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    frame=63371 fps=1830 q=-1.0 Lsize=  465060kB time=00:44:03.10 bitrate=1441.4kbits/s speed=76.3x    
    video:375760kB audio:82597kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.462486%

    infile.avi 474 MB

    outfile.avi 476.2 MB

  • Python cv2 script that scans a giant image to a video. Raises error : Unknown C++ exception from OpenCV code

    26 avril 2022, par Mahrarena

    I wrote a script that scans a giant image to make a video. Normally I just post my scripts straight to my Code Review account, but this script is ugly, needs to be refactored, implements only horizontal scrolling and contains a bug that I can't get rid of.

    


    It is working but not perfect, I can't get the last line at the bottom of the image, with height of image_height % 1080. If I ignore it, the code is working fine, if I try to fix it, it throws exceptions.

    


    Example :

    


    Original image (Google Drive)

    


    Video Output (Google Drive)

    


    As you can see from the video, everything is working properly except the fact that I can't get the bottom line.

    


    Full working code

    



    

    import cv2
import numpy as np
import random
import rpack
from fractions import Fraction
from math import prod

def resize_guide(image_size, target_area):
    aspect_ratio = Fraction(*image_size).limit_denominator()
    horizontal = aspect_ratio.numerator
    vertical = aspect_ratio.denominator
    unit_length = (target_area/(horizontal*vertical))**.5
    return (int(horizontal*unit_length), int(vertical*unit_length))

fourcc = cv2.VideoWriter_fourcc(*'h264')
FRAME = np.zeros((1080, 1920, 3), dtype=np.uint8)

def new_frame():
    return np.ndarray.copy(FRAME)

def center(image):
    frame = new_frame()
    h, w = image.shape[:2]
    yoff = round((1080-h)/2)
    xoff = round((1920-w)/2)
    frame[yoff:yoff+h, xoff:xoff+w] = image
    return frame

def image_scanning(file, fps=60, pan_increment=64, horizontal_increment=8, fast_decrement=256):
    image = cv2.imread(file)
    height, width = image.shape[:2]
    assert width*height >= 1920*1080
    video_writer = cv2.VideoWriter(file+'.mp4', fourcc, fps, (1920, 1080))
    fit_height = True
    if height < 1080:
        width = width*1080/height
        image = cv2.resize(image, (width, 1080), interpolation = cv2.INTER_AREA)
    aspect_ratio = width / height
    zooming_needed = False
    if 4/9 <= aspect_ratio <= 16/9:
        new_width = round(width*1080/height)
        fit = cv2.resize(image, (new_width, 1080), interpolation = cv2.INTER_AREA)
        zooming_needed = True
    
    elif 16/9 < aspect_ratio <= 32/9:
        new_height = round(height*1920/width)
        fit = cv2.resize(image, (1920, new_height), interpolation = cv2.INTER_AREA)
        fit_height = False
        zooming_needed = True
    
    centered = center(fit)
    for i in range(fps):
        video_writer.write(centered)
    if fit_height:
        xoff = round((1920 - new_width)/2)
        while xoff:
            if xoff - pan_increment >= 0:
                xoff -= pan_increment
            else:
                xoff = 0
            frame = new_frame()
            frame[0:1080, xoff:xoff+new_width] = fit
            video_writer.write(frame)
    else:
        yoff = round((1080 - new_height)/2)
        while yoff:
            if yoff - pan_increment >= 0:
                yoff -= pan_increment
            else:
                yoff = 0
            frame = new_frame()
            frame[yoff:yoff+new_height, 0:1920] = fit
            video_writer.write(frame)
    
    if zooming_needed:
        if fit_height:
            width_1, height_1 = new_width, 1080
        else:
            width_1, height_1 = 1920, new_height
        new_area = width_1 * height_1
        original_area = width * height
        area_diff = original_area - new_area
        unit_diff = area_diff / fps
        for i in range(1, fps+1):
            zoomed = cv2.resize(image, resize_guide((width_1, height_1), new_area+unit_diff*i), interpolation=cv2.INTER_AREA)
            zheight, zwidth = zoomed.shape[:2]
            zheight = min(zheight, 1080)
            zwidth = min(zwidth, 1920)
            frame = new_frame()
            frame[0:zheight, 0:zwidth] = zoomed[0:zheight, 0:zwidth]
            video_writer.write(frame)
    y, x = 0, 0
    completed = False
    while y != height - 1080:
        x = 0
        while x != width - 1920:
            if x + horizontal_increment + 1920 <= width:
                x += horizontal_increment
                frame = image[y:y+1080, x:x+1920]
                video_writer.write(frame)
            else:
                x = width - 1920
                frame = image[y:y+1080, x:x+1920]
                for i in range(round(fps/3)):
                    video_writer.write(frame)
                if y == height - 1080:
                    completed = True
        while x != 0:
            if x - fast_decrement - 1920 >= 0:
                x -= fast_decrement
            else:
                x = 0
            frame = image[y:y+1080, x:x+1920]
            video_writer.write(frame)
        if y + 2160 <= height:
            y += 1080
        else:
            y = height - 1080
    cv2.destroyAllWindows()
    video_writer.release()
    del video_writer


    


    The above the the code needed to produce the example video. It is working but the bottom line is missing.

    


    Now if I change the last few lines to this :

    


            if y + 2160 <= height:
            y += 1080
        else:
            y = height - 1080
            x = 0
            while x != width - 1920:
                if x + horizontal_increment + 1920 <= width:
                    x += horizontal_increment
                    frame = image[y:y+1080, x:x+1920]
                    video_writer.write(frame)
    cv2.destroyAllWindows()
    video_writer.release()
    del video_writer


    


    I expect it to include the bottom line, but it just throws exceptions instead :

    


    OpenCV: FFMPEG: tag 0x34363268/&#x27;h264&#x27; is not supported with codec id 27 and format &#x27;mp4 / MP4 (MPEG-4 Part 14)&#x27;&#xA;OpenCV: FFMPEG: fallback to use tag 0x31637661/&#x27;avc1&#x27;&#xA;---------------------------------------------------------------------------&#xA;error                                     Traceback (most recent call last)&#xA; in <module>&#xA;----> 1 image_scanning("D:/collages/91f53ebcea2a.png")&#xA;&#xA; in image_scanning(file, fps, pan_increment, horizontal_increment, fast_decrement)&#xA;    122                     x &#x2B;= horizontal_increment&#xA;    123                     frame = image[y:y&#x2B;1080, x:x&#x2B;1920]&#xA;--> 124                     video_writer.write(frame)&#xA;    125     cv2.destroyAllWindows()&#xA;    126     video_writer.release()&#xA;&#xA;error: Unknown C&#x2B;&#x2B; exception from OpenCV code&#xA;</module>

    &#xA;

    (If you can't get the example code working I can't help you, but I am using Python 3.9.10 x64 on Windows 10, and I have this file : "C :\Windows\System32\openh264-1.8.0-win64.dll", the '.avi' format generates video files with Gibibytes (binary unit, not SI Gigabyte) of size)

    &#xA;

    How to get rid of the exception ?

    &#xA;


    &#xA;

    Okay I yield, I admit the tone of the original post was very aggressive and provoking, but I was very frustrated and I really don't know why my posts keep getting downvoted. Now I deleted all offending portions so will you people please really have a look at my code and tell me what I did wrong. I can solve it by myself, I always do, but I am so stupid I can spend hours missing the obvious. So please will you help me ?

    &#xA;

  • licheepi zero V3S ffmpeg photo error, kernel uboot is OK

    24 juillet 2023, par xiaocijun

    I use firmware built by someone else and can take photos using fswebcam. Then I changed the root file system to I built Debian with ffmpeg.

    &#xA;

    I used this command to test my camera

    &#xA;

    ffmpeg-f v4l2-video_size 800x600 -i /dev/video0-frames 1 out.jpg

    &#xA;

    But the command line prompts an error

    &#xA;

    [video4linux2,v4l2 @ 0x5231e0] ioctl(VIDIOC_G_PARM): Inappropriate ioctl for device&#xA;[video4linux2,v4l2 @ 0x5231e0] Time per frame unknown&#xA;[  655.763013] ffmpeg: page allocation failure: order:8, mode:0xcc0(GFP_KERNEL), nodemask=(null)&#xA;[  655.771678] CPU: 0 PID: 236 Comm: ffmpeg Not tainted 5.2.0-licheepi-zero #1&#xA;[  655.778630] Hardware name: Allwinner sun8i Family&#xA;[  655.783363] [<c010ed14>] (unwind_backtrace) from [<c010b72c>] (show_stack&#x2B;0x10/0x14)&#xA;[  655.791107] [<c010b72c>] (show_stack) from [<c0699330>] (dump_stack&#x2B;0x84/0x98)&#xA;[  655.798330] [<c0699330>] (dump_stack) from [<c01fbf30>] (warn_alloc&#x2B;0xcc/0x170)&#xA;[  655.805638] [<c01fbf30>] (warn_alloc) from [<c01fcb40>] (__alloc_pages_nodemask&#x2B;0xacc/0xcf4)&#xA;[  655.814070] [<c01fcb40>] (__alloc_pages_nodemask) from [<c0114350>] (__dma_alloc_buffer.constprop.4&#x2B;0x34/0x17c)&#xA;[  655.824147] [<c0114350>] (__dma_alloc_buffer.constprop.4) from [<c01144bc>] (__alloc_remap_buffer&#x2B;0x24/0x98)&#xA;[  655.833962] [<c01144bc>] (__alloc_remap_buffer) from [<c0114558>] (remap_allocator_alloc&#x2B;0x28/0x30)&#xA;[  655.842996] [<c0114558>] (remap_allocator_alloc) from [<c01146fc>] (__dma_alloc&#x2B;0x16c/0x2c8)&#xA;[  655.851424] [<c01146fc>] (__dma_alloc) from [<c01148d4>] (arm_dma_alloc&#x2B;0x40/0x48)&#xA;[  655.858988] [<c01148d4>] (arm_dma_alloc) from [<c017c928>] (dma_alloc_attrs&#x2B;0x100/0x110)&#xA;[  655.867080] [<c017c928>] (dma_alloc_attrs) from [<c0512da0>] (vb2_dc_alloc&#x2B;0x60/0x104)&#xA;[  655.874994] [<c0512da0>] (vb2_dc_alloc) from [<c050ccac>] (__vb2_queue_alloc&#x2B;0x184/0x444)&#xA;[  655.883165] [<c050ccac>] (__vb2_queue_alloc) from [<c050d4bc>] (vb2_core_reqbufs&#x2B;0x2c4/0x440)&#xA;[  655.891681] [<c050d4bc>] (vb2_core_reqbufs) from [<c0510d34>] (vb2_ioctl_reqbufs&#x2B;0xa0/0xc8)&#xA;[  655.900029] [<c0510d34>] (vb2_ioctl_reqbufs) from [<c04ecd20>] (__video_do_ioctl&#x2B;0x288/0x454)&#xA;[  655.908549] [<c04ecd20>] (__video_do_ioctl) from [<c04ed280>] (video_usercopy&#x2B;0x23c/0x504)&#xA;[  655.916808] [<c04ed280>] (video_usercopy) from [<c02287a8>] (do_vfs_ioctl&#x2B;0xac/0x8cc)&#xA;[  655.924631] [<c02287a8>] (do_vfs_ioctl) from [<c0228ffc>] (ksys_ioctl&#x2B;0x34/0x58)&#xA;[  655.932021] [<c0228ffc>] (ksys_ioctl) from [<c0101000>] (ret_fast_syscall&#x2B;0x0/0x54)&#xA;[  655.939665] Exception stack(0xc3173fa8 to 0xc3173ff0)&#xA;[  655.944713] 3fa0:                   005231e0 00000000 00000003 c0145608 beab41f8 b5857af1&#xA;[  655.952882] 3fc0: 005231e0 00000000 beab4290 00000036 ffffffe7 00000000 005238c0 beab41f8&#xA;[  655.961047] 3fe0: 00000001 beab41b4 b6f167b7 b5857af8&#xA;[  655.966218] Mem-Info:&#xA;[  655.968511] active_anon:3427 inactive_anon:154 isolated_anon:1&#xA;[  655.968511]  active_file:3577 inactive_file:2858 isolated_file:1&#xA;[  655.968511]  unevictable:4 dirty:7 writeback:0 unstable:0&#xA;[  655.968511]  slab_reclaimable:630 slab_unreclaimable:1467&#xA;[  655.968511]  mapped:5008 shmem:429 pagetables:140 bounce:0&#xA;[  655.968511]  free:1421 free_pcp:17 free_cma:0&#xA;[  656.000905] Node 0 active_anon:13708kB inactive_anon:616kB active_file:14308kB inactive_file:11432kB unevictable:16kB isolated(anon):4kB isolated(file):4kB mapped:20032kB dirty:28kB writeback:0kB shmem:1716kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no&#xA;[  656.024016] Normal free:5684kB min:936kB low:1168kB high:1400kB active_anon:13708kB inactive_anon:616kB active_file:14308kB inactive_file:11432kB unevictable:16kB writepending:28kB present:65536kB managed:56092kB mlocked:16kB kernel_stack:392kB pagetables:560kB bounce:0kB free_pcp:68kB local_pcp:68kB free_cma:0kB&#xA;[  656.051697] lowmem_reserve[]: 0 0 0&#xA;[  656.055185] Normal: 173*4kB (ME) 87*8kB (UME) 51*16kB (ME) 25*32kB (ME) 12*64kB (ME) 7*128kB (M) 2*256kB (M) 1*512kB (M) 0*1024kB 0*2048kB 0*4096kB = 5692kB&#xA;[  656.069205] 6865 total pagecache pages&#xA;[  656.072949] 0 pages in swap cache&#xA;[  656.076271] Swap cache stats: add 0, delete 0, find 0/0&#xA;[  656.081486] Free swap  = 0kB&#xA;[  656.084360] Total swap = 0kB&#xA;[  656.087252] 16384 pages RAM&#xA;[  656.090040] 0 pages HighMem/MovableOnly&#xA;[  656.093868] 2361 pages reserved&#xA;[  656.097039] sun6i-csi 1cb4000.csi: dma_alloc_coherent of size 720896 failed&#xA;[video4linux2,v4l2 @ 0x5231e0] ioctl(VIDIOC_REQBUFS): Cannot allocate memory&#xA;/dev/video0: Cannot allocate memory&#xA;</c0101000></c0228ffc></c0228ffc></c02287a8></c02287a8></c04ed280></c04ed280></c04ecd20></c04ecd20></c0510d34></c0510d34></c050d4bc></c050d4bc></c050ccac></c050ccac></c0512da0></c0512da0></c017c928></c017c928></c01148d4></c01148d4></c01146fc></c01146fc></c0114558></c0114558></c01144bc></c01144bc></c0114350></c0114350></c01fcb40></c01fcb40></c01fbf30></c01fbf30></c0699330></c0699330></c010b72c></c010b72c></c010ed14>

    &#xA;