Recherche avancée

Médias (1)

Mot : - Tags -/getid3

Autres articles (14)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

  • Keeping control of your media in your hands

    13 avril 2011, par

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

Sur d’autres sites (3530)

  • ffmpeg concat skips frames near end of each subclip

    3 janvier 2024, par calvinusesyourcode

    So I have some video files to concat but in the resulting video the last few frames of each subclip are buggy. Imagine in the last 5 frames the first 3 frames are skipped and so at the end of each clip it seems to jitter.

    


    It should be virtually impossible for my input videos to have any differences between them, as they were all recorded on the same iPhone and all converted with the same command :

    


    command = [
            'ffmpeg', '-y',
            '-i', input_path,
            '-vf', 'scale=1080:1920',
            '-r', '30',
            '-c:v', 'libx264',
            output_path
        ]
subprocess.run(command, check=True)


    


    I have tried re-encoding instead of merely copying and adding -r 30 but that doesn't seem to work.

    


    subprocess.run(["ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", temp_textfile, "-c", "copy", output_path])


    


        subprocess.run(["ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", temp_textfile, "-r", "30", "-c:v", "libx264", "-c:a", "aac", output_path], check=True)


    


    Somewhere someone said to open in VLC and do a frame-by-frame, reporting that "the frames are actually there, just not visually when watching normally". In my case the frame-by-frame reveals the frames are indeed being skipped.

    


    Full console output :

    


    ffmpeg version 2023-05-18-git-01d9a84ef5-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa 
--enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      58.  7.100 / 58.  7.100
  libavcodec     60. 14.100 / 60. 14.100
  libavformat    60.  5.100 / 60.  5.100
  libavdevice    60.  2.100 / 60.  2.100
  libavfilter     9.  8.100 /  9.  8.100
  libswscale      7.  2.100 /  7.  2.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d60610ebc0] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'run\broll_subclips.txt':
  Duration: N/A, start: -0.023220, bitrate: 3094 kb/s
  Stream #0:0(und): Video: h264 (High 10) (avc1 / 0x31637661), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67, progressive), 1080x1920, 2968 kb/s, 30 fps, 30 tbr, 15360 tbn
    Metadata:
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.14.100 libx264
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 126 kb/s
    Metadata:
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[libx264 @ 000001d6066fd380] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX 
FMA3 BMI2 AVX2
[libx264 @ 000001d6066fd380] profile High 10, level 4.0, 4:2:0, 10-bit
[libx264 @ 000001d6066fd380] 264 - core 164 r3107 a8b68eb - H.264/MPEG-4 AVC codec - Copyleft 2003-2023 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 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=81 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'joined_clips.mp4':
  Metadata:
    encoder         : Lavf60.5.100
  Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67, progressive), 1080x1920, q=2-31, 30 fps, 15360 tbn
    Metadata:
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.14.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      handler_name    : Core Media Audio
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.14.100 aac
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.23 bitrate=   1.7kbits/s dup[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:01.97 bitrate=   0.2kbits/s dupframe=   42 fps= 41 q=41.0 size=     256kB time=00:00:01.97 bitrate=1062.7kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=   81 fps= 53 q=41.0 size=     768kB time=00:00:04.71 bitrate=1334.8kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  124 fps= 61 q=41.0 size=    1280kB time=00:00:06.10 bitrate=1717.1kbits/s duframe=  178 fps= 69 q=38.0 size=    1536kB time=00:00:07.96 bitrate=1579.9kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  235 fps= 76 q=41.0 size=    2048kB time=00:00:09.84 bitrate=1704.1kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  273 fps= 76 q=41.0 size=    2560kB time=00:00:11.12 bitrate=1885.5kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  309 fps= 75 q=41.0 size=    2816kB time=00:00:12.30 bitrate=1874.5kbits/s duframe=  354 fps= 77 q=41.0 size=    3328kB time=00:00:13.83 bitrate=1969.9kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  411 fps= 80 q=41.0 size=    3840kB time=00:00:15.72 bitrate=2001.1kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  479 fps= 85 q=41.0 size=    4096kB time=00:00:17.99 bitrate=1864.6kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d608de8100] Auto-inserting h264_mp4toannexb bitstream filter
frame=  515 fps= 84 q=41.0 size=    4608kB time=00:00:19.20 bitrate=1965.7kbits/s duframe=  549 fps= 81 q=41.0 size=    4864kB time=00:00:20.31 bitrate=1961.1kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d60c3e8d40] Auto-inserting h264_mp4toannexb bitstream filter
frame=  600 fps= 83 q=41.0 size=    5632kB time=00:00:22.03 bitrate=2093.7kbits/s du[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d60c3e8d40] Auto-inserting h264_mp4toannexb bitstream filter
frame=  648 fps= 83 q=41.0 size=    5888kB time=00:00:23.61 bitrate=2042.5kbits/s du[out#0/mp4 @ 000001d6061163c0] video:6385kB audio:335kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.377336%
frame=  724 fps= 86 q=-1.0 Lsize=    6746kB time=00:00:24.03 bitrate=2299.4kbits/s dup=6 drop=2 speed=2.86x
[libx264 @ 000001d6066fd380] frame I:12    Avg QP:26.96  size: 87427
[libx264 @ 000001d6066fd380] frame P:191   Avg QP:32.28  size: 15534
[libx264 @ 000001d6066fd380] frame B:521   Avg QP:35.40  size:  4840
[libx264 @ 000001d6066fd380] consecutive B-frames:  2.9%  2.8%  2.1% 92.3%
[libx264 @ 000001d6066fd380] mb I  I16..4: 21.0% 56.5% 22.5%
[libx264 @ 000001d6066fd380] mb P  I16..4:  1.9%  6.3%  1.0%  P16..4: 25.0%  4.5%  2.2%  0.0%  0.0%    skip:59.1%
[libx264 @ 000001d6066fd380] mb B  I16..4:  0.2%  0.7%  0.1%  B16..8: 24.4%  1.8%  0.2%  direct: 0.3%  skip:72.3%  L0:46.0% L1:50.7% BI: 3.3%
[libx264 @ 000001d6066fd380] 8x8 transform intra:64.9% inter:79.1%
[libx264 @ 000001d6066fd380] coded y,uvDC,uvAC intra: 42.4% 26.9% 3.0% inter: 3.7% 0.9% 0.0%
[libx264 @ 000001d6066fd380] i16 v,h,dc,p: 25% 28% 12% 35%
[libx264 @ 000001d6066fd380] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 18% 23%  5%  6%  6% 
 6%  6%  6%
[libx264 @ 000001d6066fd380] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 21% 19%  5%  6%  6% 
 7%  5%  5%
[libx264 @ 000001d6066fd380] i8c dc,h,v,p: 71% 13% 13%  4%
[libx264 @ 000001d6066fd380] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000001d6066fd380] ref P L0: 68.7% 17.8% 13.4%
[libx264 @ 000001d6066fd380] ref B L0: 88.4%  9.1%  2.5%
[libx264 @ 000001d6066fd380] ref B L1: 96.9%  3.1%
[libx264 @ 000001d6066fd380] kb/s:2167.24
[aac @ 000001d606184b40] Qavg: 346.828


    


    UPDATE : I am thinking that the way I am converting my files from .mov to .mp4 is the problem. Please suggest the best way to convert from iPhone 4k 60fps .mov files to nice 1080p 30fps .mp4 files. I know I could just use handbrake but I am trying to be a man here xD. Perhaps handbrake has a View ffmpeg code for conversion.

    


    UPDATE 2 : re-encoding the videos before concat with -c:v libx264 fixes the problem... which seems weird because that is how they were originally encoded...

    


    def join_broll(video_paths, desired_length, clip_length=None, output_path="quick_clips.mp4", preserve_inputs=True):
    subclips = []
    total_duration = 0

    temp_textfile = os.path.join(run_folder, "broll_subclips.txt")
    j = 0
    with open(temp_textfile, "w") as file:
        while True:
            for i, video_path in enumerate(video_paths):

                time_left = desired_length - total_duration
                video_duration = duration_of(video_path)
                subclip_path = f"subclip_{i+j}.mp4"

                if (not clip_length and video_duration < time_left) or (clip_length and clip_length < time_left):

                    if clip_length:

                        subclips.append(subclip_path)
                        subprocess.run(["ffmpeg", "-y", "-i", video_path, "-t", str(clip_length), "-c:v", "libx264", subclip_path]) # added "-c:v libx264"
                        total_duration += clip_length
                        file.write(f"file '{os.path.join('..', subclip_path)}'\n")

                    else:
                    
                        subclips.append(subclip_path)
                        subprocess.run(["ffmpeg", "-y", "-i", video_path, "-c:v", "libx264", subclip_path]) # added "-c:v libx264"
                        total_duration += video_duration
                        file.write(f"file '{subclip_path}'\n")

                else:

                    subclips.append(subclip_path)
                    subprocess.run(["ffmpeg", "-y", "-i", video_path, "-t", str(time_left), "-c:v", "libx264", subclip_path]) # added "-c:v libx264"
                    total_duration += time_left
                    file.write(f"file '{os.path.join('..', subclip_path)}'\n")

                    break

            j += 1
            if desired_length - total_duration < 0.1:
                break
                

    subprocess.run(["ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", temp_textfile, "-c", "copy", output_path])
    # subprocess.run(["ffmpeg", "-y", "-f", "concat", "-safe", "0", "-i", temp_textfile, "-r", "30", "-c:v", "libx264", "-c:a", "aac", output_path], check=True)
    return output_path


    


  • Invalid data found when processing input for mp3 file in ffmpeg

    15 juillet 2023, par Sai Chaithanya

    My custom compiled FFmpeg build is unable to read mp3 files, suddenly. Interestingly, the custom compiled FFmpeg build generated the mp3 file. For the past 1 year, it was successfully reading the file. I checked with the official FFmpeg build, and it works, so at least the file is not corrupted.

    


    Official FFmpeg Build output :

    


    ffmpeg version 6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04.1)
configuration: --arch=x86_64 --target-os=linux --disable-network --enable-small --disable-doc 
               --disable-manpages --enable-static --disable-shared --disable-ffprobe 
               --disable-ffplay --enable-lto --prefix=/home/greninja/Downloads/custom_build 
               --extra-cflags='-I/home/greninja/Downloads/custom_build/include -O3 -flto' 
               --extra-ldflags=-L/home/greninja/Downloads/custom_build/lib
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
Input #0, mp3, from './test.mp3':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    encoder         : Lavf59.33.100
Duration: 00:03:07.09, start: 0.025057, bitrate: 192 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
  Metadata:
    encoder         : Lavc59.46
At least one output file must be specified


    


    My Custom FFmpeg build output :

    


    ffmpeg version N-108341-gb1a68127bb Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --arch=x86_64 --target-os=linux --disable-everything --disable-network 
               --disable-autodetect --enable-small --disable-debug --disable-doc 
               --disable-manpages --enable-static --disable-shared 
               --enable-decoder='aac*,ac3*,opus,vorbis,mjpeg' 
               --enable-demuxer='mov,m4v,matroska,image2' --enable-protocol=file 
               --enable-muxer='mp3,mp4,webm,null' --enable-libmp3lame 
               --enable-encoder=libmp3lame --enable-filter=aresample --enable-logging 
               --enable-pthreads --enable-parser='vorbis,opus,vp9,vp8,mpegaudio,mpegvideo,mpeg4video,ac3*,aac*,mjpeg,h264' 
               --disable-ffprobe --disable-ffplay --enable-lto 
               --prefix=/home/wade/Downloads/custom_build 
               --extra-cflags='-I/home/wade/Downloads/custom_build/include -O3 -flto' 
               --extra-ldflags=-L/home/wade/Downloads/custom_build/lib
libavutil      57. 36.102 / 57. 36.102
libavcodec     59. 46.100 / 59. 46.100
libavformat    59. 33.100 / 59. 33.100
libavdevice    59.  8.101 / 59.  8.101
libavfilter     8. 49.100 /  8. 49.100
libswscale      6.  8.112 /  6.  8.112
libswresample   4.  9.100 /  4.  9.100
./test.mp3: Invalid data found when processing input


    


    What configuration am I missing ?

    


  • ffmpeg with libopenh264 to get profile high422

    24 juillet 2023, par Андрей Тернити

    I have raw MJPEG video file. 3840x2160, 25fps, YUYV 4:2:2. I want use ffmpeg with encoder libopenh264. Why I can't use profile high422 ?

    


    ffmpeg -framerate 25 -i inFile.yuvj422p -profile:v high422 -c:v libopenh264 -q 2 -b 2500000 -allow_skip_frames 1 -maxrate 3500000 outFile.mkv


    


    Log

    


    ...
[libopenh264enc @ 0x56077580ed80] [Eval @ 0x7ffe78457230] Undefined constant or missing '(' in 'high422'


    


    Let's know encoder's capability

    


    # ffmpeg -h encoder=libopenh264&#xA;Encoder libopenh264 [OpenH264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]:&#xA;    General capabilities: threads &#xA;    Threading capabilities: other&#xA;    Supported pixel formats: yuv420p&#xA;libopenh264enc AVOptions:&#xA;  -slice_mode        <int>        E..V......P set slice mode, use slices/max_nal_size (from 0 to 4) (default fixed)&#xA;     fixed           1            E..V....... a fixed number of slices&#xA;     dyn             3            E..V....... Size limited (compatibility name)&#xA;     sizelimited     3            E..V....... Size limited&#xA;  -loopfilter        <int>        E..V....... enable loop filter (from 0 to 1) (default 1)&#xA;  -profile           <int>        E..V....... set profile restrictions (from -99 to 65535) (default -99)&#xA;     constrained_baseline 578          E..V.......&#xA;     main            77           E..V.......&#xA;     high            100          E..V.......&#xA;  -max_nal_size      <int>        E..V....... set maximum NAL size in bytes (from 0 to INT_MAX) (default 0)&#xA;  -allow_skip_frames <boolean>    E..V....... allow skipping frames to hit the target bitrate (default false)&#xA;  -cabac             <int>        E..V......P Enable cabac(deprecated, use coder) (from 0 to 1) (default 0)&#xA;  -coder             <int>        E..V....... Coder type (from -1 to 1) (default default)&#xA;     default         -1           E..V.......&#xA;     cavlc           0            E..V.......&#xA;     cabac           1            E..V.......&#xA;     vlc             0            E..V.......&#xA;     ac              1            E..V.......&#xA;  -rc_mode           <int>        E..V....... Select rate control mode (from -1 to 3) (default quality)&#xA;     off             -1           E..V....... bit rate control off&#xA;     quality         0            E..V....... quality mode&#xA;     bitrate         1            E..V....... bitrate mode&#xA;     buffer          2            E..V....... using buffer status to adjust the video quality (no bitrate control)&#xA;     timestamp       3            E..V....... bit rate control based on timestamp&#xA;</int></int></int></boolean></int></int></int></int>

    &#xA;

    Looks like there is no high422 profile in libopenh264. But I can find&#xA;PRO_HIGH422 in several places of source code...

    &#xA;

    ffmpeg version

    &#xA;

    # ffmpeg -v&#xA;ffmpeg version N-111611-g5b11ee9429 Copyright (c) 2000-2023 the FFmpeg developers&#xA;  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)&#xA;  configuration: --prefix=/home/a/Downloads/myGitHub/FFmpeg_fixing/ffmpeg_openh264/ffmpeg_build/ --pkg-config-flags=--static --extra-cflags=-I/home/a/Downloads/myGitHub/FFmpeg_fixing/ffmpeg_openh264/ffmpeg_build/include --extra-ldflags=-L/home/a/Downloads/myGitHub/FFmpeg_fixing/ffmpeg_openh264/ffmpeg_build/lib --extra-libs=&#x27;-lpthread -lm&#x27; --ld=g&#x2B;&#x2B; --bindir=/home/a/bin --enable-gpl --enable-libopenh264&#xA;

    &#xA;

    Why I can't use profile high422 ?

    &#xA;