Recherche avancée

Médias (0)

Mot : - Tags -/signalement

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

Autres articles (62)

  • 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

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

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

Sur d’autres sites (6744)

  • ffmpeg transcoding stop after few seconds

    9 avril 2018, par Salem F

    Hi i’m trying to do this over week now with no success ,
    What’s i’m trying to do is transcoding video from live streaming source and downscale it with FFmpeg , but every time I start transcoding it broadcasting fro 11 Sec and stop . here last command I tried

     ffmpeg  -re  -i 'http://source.com/1034.ts' -preset ultrafast http://localhost:2052/feed1.ffm

    I tried to download the .ts file with IDM and it finish downloading the file on the exact 12 Sec that FFmpeg stop trans coding on it .

    does that means that FFmpeg download that file as one segment and not continued reading the source video As what video players does usually . BTW I tried with source with VLC player and it didn’t stop playing the the same source video .

    Edit :- I decide to pass FFmpeg command via FFserver config file ffserver.conf

    Launch ffmpeg -i 'http://source.com/1.ts' -copyinkf -codec copy  

    The stream works fine for a while but after testing couple sources I notice it’s struggle to trans-coding HD videos .

    I guess the issue with my VPS KVM server being very limited CPU and RAM ( 128MB only ) ! Since I tried using ultrafast preset but din’t solve the issue , another thing , I notice when I enable AVOptionVideo crf setting on ffserver.conf trans-coding runs bit smoothly without frame-rate dropping .
    Las my server uses Xeon L5520 CPU which is outdated CPU specially I gout 1/4 power of V single core (if they count HT it will be 1/8 of the real core ) :(

    Edit 2 :-

    # vlc -I dummy 'https://source.com/1034.ts' --sout '#standard{access=http,mux=flv,dst=localhost:2052}'
    VLC media player 2.2.8 Weatherwax (revision 2.2.7-14-g3cc1d8cba9)
    [09d3fdf0] pulse audio output error: PulseAudio server connection failure: Connection refused
    [09d279c0] core interface error: no suitable interface module
    [09c9b8f8] core libvlc error: interface "globalhotkeys,none" initialization failed
    [09d279c0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
    [09d279c0] core interface error: no suitable interface module
    [09c9b8f8] core libvlc error: interface "dbus,none" initialization failed
    [09d279c0] dummy interface: using the dummy interface module...
    [b5e04ae0] access_output_http access out: Consider passing --http-host=IP on the command line instead.
    [b5e38ab8] ts demux: MPEG-4 descriptor not found for pid 0x101 type 0xf
    [b5e90ae0] packetizer_mpeg4audio decoder: AAC channels: 2 samplerate: 48000
    [flv @ 0xb5e33b40] dimensions not set
    [b5e06360] avformat mux error: could not write header: Invalid argument
    [b5e88ef0] core decoder error: cannot continue streaming due to errors
    [b5e90ae0] core decoder error: cannot continue streaming due to errors

    Here output with -loglevel verbose

    :~# ffmpeg -i http://source.com/1.ts -copyinkf -codec copy  -loglevel verbose  http://127.0.0.1:8090/feed1.ffm
    ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.9.2 (Debian 4.9.2-10)
     configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --extra-ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus --libdir=/usr/lib/i386-linux-gnu --disable-vda --enable-libbluray --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample --disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 --enable-vaapi --enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/i386-linux-gnu
     libavutil      54. 20.100 / 54. 20.100
     libavcodec     56. 26.100 / 56. 26.100
     libavformat    56. 25.101 / 56. 25.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 11.102 /  5. 11.102
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Invalid UE golomb code
       Last message repeated 2 times
    Input #0, mpegts, from 'http://source.com/1.ts':
     Duration: N/A, start: 30472.768167, bitrate: N/A
     Program 1
       Metadata:
         service_name    : Service01
         service_provider: FFmpeg
       Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 960x540 (960x544) [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 100 tbc
       Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 105 kb/s
    [graph 0 input from stream 0:1 @ 0x971f2c0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x3
    [audio format for output stream 0:0 @ 0x9844de0] auto-inserting filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and the filter 'audio format for output stream 0:0'
    [auto-inserted resampler 0 @ 0x97115e0] ch:2 chl:stereo fmt:fltp r:48000Hz -> ch:1 chl:mono fmt:fltp r:22050Hz
    [graph 1 input from stream 0:0 @ 0x96f5d00] w:960 h:540 pixfmt:yuv420p tb:1/90000 fr:50/1 sar:1/1 sws_param:flags=2
    [scaler for output stream 0:1 @ 0x96f5e80] w:352 h:240 flags:'0x4' interl:0
    [scaler for output stream 0:1 @ 0x96f5e80] w:960 h:540 fmt:yuv420p sar:1/1 -> w:352 h:240 fmt:yuv420p sar:40/33 flags:0x4
    Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
     Metadata:
       creation_time   : now
       encoder         : Lavf56.25.101
       Stream #0:0: Audio: wmav2, 22050 Hz, mono, fltp, 64 kb/s
       Metadata:
         encoder         : Lavc56.26.100 wmav2
       Stream #0:1: Video: msmpeg4v3 (msmpeg4), yuv420p, 352x240 [SAR 40:33 DAR 16:9], q=2-31, 256 kb/s, 50 fps, 1000k tbn, 15 tbc
       Metadata:
         encoder         : Lavc56.26.100 msmpeg4
    Stream mapping:
     Stream #0:1 -> #0:0 (aac (native) -> wmav2 (native))
     Stream #0:0 -> #0:1 (h264 (native) -> msmpeg4v3 (msmpeg4))
    Press [q] to stop, [?] for help
    Invalid UE golomb code
    *** dropping frame 3 from stream 1 at ts 1
       Last message repeated 1 times
    [msmpeg4 @ 0x970f060] warning, clipping 1 dct coefficients to -127..127
    *** dropping frame 4 from stream 1 at ts 2
       Last message repeated 1 times
    *** dropping frame 5 from stream 1 at ts 3
       Last message repeated 1 times
    *** dropping frame 5 from stream 1 at ts 4
    *** dropping frame 6 from stream 1 at ts 4
       Last message repeated 1 times
    *** dropping frame 7 from stream 1 at ts 5
       Last message repeated 1 times
    [msmpeg4 @ 0x970f060] warning, clipping 1 dct coefficients to -127..127
    *** dropping frame 8 from stream 1 at ts 6
       Last message repeated 1 times
    *** dropping frame 8 from stream 1 at ts 7
    *** dropping frame 9 from stream 1 at ts 7
       Last message repeated 1 times
    *** dropping frame 10 from stream 1 at ts 8
       Last message repeated 1 times
    *** dropping frame 11 from stream 1 at ts 9
       Last message repeated 1 times
    *** dropping frame 11 from stream 1 at ts 10
    *** dropping frame 12 from stream 1 at ts 10
       Last message repeated 1 times
    *** dropping frame 13 from stream 1 at ts 11
       Last message repeated 1 times
    *** dropping frame 14 from stream 1 at ts 12
       Last message repeated 1 times
    *** dropping frame 14 from stream 1 at ts 13
    *** dropping frame 15 from stream 1 at ts 13
       Last message repeated 1 times
    *** dropping frame 16 from stream 1 at ts 14
       Last message repeated 1 times
    *** dropping frame 17 from stream 1 at ts 15
       Last message repeated 1 times
    *** dropping frame 17 from stream 1 at ts 16
    *** dropping frame 18 from stream 1 at ts 16
       Last message repeated 1 times
    *** dropping frame 19 from stream 1 at ts 17
       Last message repeated 1 times
    *** dropping frame 20 from stream 1 at ts 18me=00:00:01.33 bitrate= 270.3kbits/s dup=0 drop=39
       Last message repeated 1 times
    *** dropping frame 20 from stream 1 at ts 19
    *** dropping frame 21 from stream 1 at ts 19
       Last message repeated 1 times
    *** dropping frame 22 from stream 1 at ts 20
       Last message repeated 1 times
    *** dropping frame 23 from stream 1 at ts 21
       Last message repeated 1 times
    *** dropping frame 23 from stream 1 at ts 22
    *** dropping frame 24 from stream 1 at ts 22
       Last message repeated 1 times
    *** dropping frame 25 from stream 1 at ts 23
       Last message repeated 1 times
    *** dropping frame 26 from stream 1 at ts 24
       Last message repeated 1 times
    *** dropping frame 26 from stream 1 at ts 25
    *** dropping frame 27 from stream 1 at ts 25
       Last message repeated 1 times
    *** dropping frame 28 from stream 1 at ts 26
       Last message repeated 1 times
    *** dropping frame 29 from stream 1 at ts 27
       Last message repeated 1 times
    *** dropping frame 29 from stream 1 at ts 28
    *** dropping frame 30 from stream 1 at ts 28
       Last message repeated 1 times
    *** dropping frame 31 from stream 1 at ts 29
       Last message repeated 1 times
    *** dropping frame 32 from stream 1 at ts 30
       Last message repeated 1 times
    *** dropping frame 32 from stream 1 at ts 31
    *** dropping frame 33 from stream 1 at ts 31
       Last message repeated 1 times
    *** dropping frame 34 from stream 1 at ts 32
       Last message repeated 1 times
    *** dropping frame 34 from stream 1 at ts 33
    *** dropping frame 35 from stream 1 at ts 33
    *** dropping frame 35 from stream 1 at ts 34
    *** dropping frame 36 from stream 1 at ts 34
       Last message repeated 1 times
    *** dropping frame 37 from stream 1 at ts 35
       Last message repeated 1 times
    Invalid UE golomb code
    *** dropping frame 38 from stream 1 at ts 36
       Last message repeated 1 times
    *** dropping frame 38 from stream 1 at ts 37
    *** dropping frame 39 from stream 1 at ts 37
       Last message repeated 1 times
    *** dropping frame 40 from stream 1 at ts 38
       Last message repeated 1 times
    *** dropping frame 41 from stream 1 at ts 39me=00:00:02.73 bitrate= 311.7kbits/s dup=0 drop=88
       Last message repeated 1 times
    *** dropping frame 41 from stream 1 at ts 40
    *** dropping frame 42 from stream 1 at ts 40
       Last message repeated 1 times
    *** dropping frame 43 from stream 1 at ts 41
       Last message repeated 1 times
    *** dropping frame 44 from stream 1 at ts 42
       Last message repeated 1 times
    *** dropping frame 44 from stream 1 at ts 43
    *** dropping frame 45 from stream 1 at ts 43
       Last message repeated 1 times
    *** dropping frame 46 from stream 1 at ts 44
       Last message repeated 1 times
    *** dropping frame 47 from stream 1 at ts 45
       Last message repeated 1 times
    *** dropping frame 47 from stream 1 at ts 46
    *** dropping frame 48 from stream 1 at ts 46
       Last message repeated 1 times
    *** dropping frame 49 from stream 1 at ts 47
       Last message repeated 1 times
    *** dropping frame 50 from stream 1 at ts 48
       Last message repeated 1 times
    *** dropping frame 50 from stream 1 at ts 49
    *** dropping frame 51 from stream 1 at ts 49
       Last message repeated 1 times
    *** dropping frame 52 from stream 1 at ts 50
       Last message repeated 1 times
    *** dropping frame 53 from stream 1 at ts 51
       Last message repeated 1 times
    [h264 @ 0x9844a00] error while decoding MB 58 12, bytestream -5
    [h264 @ 0x9844a00] concealing 1311 DC, 1311 AC, 1311 MV errors in B frame
    *** dropping frame 53 from stream 1 at ts 52
    No more output streams to write to, finishing.
    frame=   55 fps= 42 q=4.3 Lsize=     152kB time=00:00:03.66 bitrate= 339.6kbits/s dup=0 drop=119
    video:116kB audio:26kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 6.760316%
    Input file #0 (http://source.com/1.ts):
     Input stream #0:0 (video): 174 packets read (220322 bytes); 174 frames decoded;
     Input stream #0:1 (audio): 156 packets read (36657 bytes); 156 frames decoded (159744 samples);
     Total: 330 packets (256979 bytes) demuxed
    Output file #0 (http://127.0.0.1:8090/feed1.ffm):
     Output stream #0:0 (audio): 72 frames encoded (73383 samples); 72 packets muxed (26712 bytes);
     Output stream #0:1 (video): 55 frames encoded; 55 packets muxed (119080 bytes);
     Total: 127 packets (145792 bytes) muxed

    Here input url file info After i download it to my PC with IDM

    General
    ID                             : 1 (0x1)
    Complete name                  : D:\1.ts
    Format                         : MPEG-TS
    File size                      : 256 KiB
    Duration                       : 2 s 520 ms
    Overall bit rate mode          : Variable
    Overall bit rate               : 788 kb/s

    Video
    ID                             : 256 (0x100)
    Menu ID                        : 1 (0x1)
    Format                         : AVC
    Format/Info                    : Advanced Video Codec
    Format profile                 : High@L3.1
    Format settings, CABAC         : Yes
    Format settings, RefFrames     : 2 frames
    Codec ID                       : 27
    Duration                       : 2 s 680 ms
    Width                          : 960 pixels
    Height                         : 540 pixels
    Display aspect ratio           : 16:9
    Frame rate                     : 50.000 FPS
    Color space                    : YUV
    Chroma subsampling             : 4:2:0
    Bit depth                      : 8 bits
    Scan type                      : Progressive

    Audio
    ID                             : 257 (0x101)
    Menu ID                        : 1 (0x1)
    Format                         : AAC
    Format/Info                    : Advanced Audio Codec
    Format version                 : Version 4
    Format profile                 : LC
    Muxing mode                    : ADTS
    Codec ID                       : 15
    Duration                       : 2 s 69 ms
    Bit rate mode                  : Variable
    Channel(s)                     : 2 channels
    Channel positions              : Front: L R
    Sampling rate                  : 48.0 kHz
    Frame rate                     : 46.875 FPS (1024 SPF)
    Compression mode               : Lossy
    Delay relative to video        : -12 ms

    Menu
    ID                             : 4096 (0x1000)
    Menu ID                        : 1 (0x1)
    Duration                       : 2 s 520 ms
    List                           : 256 (0x100) (AVC) / 257 (0x101) (AAC)
    Service name                   : Service01
    Service provider               : FFmpeg
    Service type                   : digital television
  • Playing Video on a Sega Dreamcast

    9 mars 2011, par Multimedia Mike — Sega Dreamcast

    Here’s an honest engineering question : If you were tasked to make compressed video play back on a Sega Dreamcast video game console, what video format would you choose ? Personally, I would choose RoQ, the format invented for The 11th Hour computer game and later used in Quake III and other games derived from the same engine. This post explains my reasoning.

    Video Background
    One of the things I wanted to do when I procured a used Sega Dreamcast back in 2001 was turn it into a set-top video playback unit. This is something that a lot of people tried to do, apparently, to varying degrees of success. Interest would wane in a few years as it became easier and easier to crack an Xbox and install XBMC. The Xbox was much better suited to playing codecs that were getting big at the time, most notably MPEG-4 part 2 video (DivX/XviD).

    The Dreamcast, while quite capable when it was released in 1999, was not very well-equipped to deal with an MPEG-type codec. I have recently learned that there are other hackers out there on the internet who are still trying to get the most out of this system. I was contacted for advice about how to make Theora perform better on the Dreamcast.

    Interesting thing about consoles and codecs : Since you are necessarily distributing code along with your data, you have far more freedom to use whatever codecs you want for your audio and video data. This is why Vorbis and even Theora have seen quite a bit of use in video games, "internet standards" be darned. Thus, when I realized this application had no hard and fast requirement to use Theora, and that it could use any codec that fit the platform, my mind started churning. When I was programming the DC 10 years ago, I didn’t have access to the same wealth of multimedia knowledge that is currently available.

    Requirements Gathering
    What do we need here ?

    • Codec needs to run on the Sega Dreamcast ; this eliminates codecs for which only binary decoder implementations are available
    • Must decode 320x240 video at 30 fps ; higher resolutions up to 640x480 would be desirable
    • Must deliver decent quality at 12X optical read speeds (DC drive speed)
    • There must be some decent, preferably free, encoder readily available ; speed of encoding, however, is not important ; i.e., "take as long as you need, encoder"

    Theora was the go-to codec because it’s just commonly known as "the free, open source video codec". But clearly it’s not suitable for, well... any purpose, really (sorry, easy target ; OW ! stop throwing things !). VP8/WebM — Theora’s heir apparent — would not qualify either, as my prior experiments have already demonstrated.

    Candidates
    What did the big boys use for video on the Dreamcast ? A lot of games relied on CRI’s Sofdec middleware which was MPEG-1 video and a custom ADPCM format. I don’t know if I have ever seen DC games that used MPEG-1 video at a higher resolution than 320x240 (though I have not searched exhaustively). The fact that CRI used a custom ADPCM format for this application may indicate that there wasn’t enough CPU power left over to decode a perceptual, transform-based audio codec alongside the 320x240 video.

    A few other DC games used 4X Technologies’ 4XM format. The most notable licensee was Alone in the Dark : The New Nightmare (DC version only ; PC version used Bink). This codec was DCT-based but incorporated 16-bit RGB colorspace into its design, presumably to optimize for applications like game consoles that couldn’t directly handle planar YUV. AITD:TNN’s videos were 640x360, a marked improvement over the typical Sofdec fare. I was about to write off 4XM as a contender due to lack of encoder, but the encoding tools are preserved on our samples site. A few other issues, though : The FFmpeg decoder doesn’t seem to work correctly as of this writing (and nobody has noticed yet, even though it’s tested via FATE).

    What ideas do I have ? Right off the bat, I’m thinking vector quantizer (VQ). Vector quantizers are notoriously slow to compress but are blazingly fast to decompress which is why they were popular in the early days of video compression. First, there’s Cinepak. I fear that might be too simple for this application. Plus, I don’t know if existing (binary-only) compressors are very decent. It seems that they only ever had to handle small videos and I’ve heard that they can really fall over if anything more is demanded of them.

    Sorenson Video 1 is another contender. FFmpeg has an encoder (which some allege is better than Sorenson’s original compressor). However, I fear that the wonky algorithm and colorspace might not mesh well with the Dreamcast.

    My thinking quickly converged on RoQ. This was designed to run fullscreen (640x480) video on i486-class hardware. While RoQ fundamentally operates in a YUV colorspace, it’s trivial to convert it to any other colorspace during decoding and the image will be rendered in that colorspace. Plus, there are open source encoders available for the format (namely, several versions of Eric Lasota’s Switchblade encoder, one of which lives natively in FFmpeg), as well as the original proprietary encoder.

    Which Library ?
    There are several code choices here : FFmpeg (LGPL), Switchblade (GPL), and the original Quake 3 source code (GPL). There is one more option that I think might be easiest, which is the decoder Dr. Tim created when he reverse engineered the format in the first place. That has a very liberal "do whatever you like, but be nice and give me credit" license (probably qualifies as BSD).

    This code is no longer at its original home but the Wayback Machine still had a copy, which I have now mirrored (idroq.tar.gz).

    Adaptation
    Dr. Tim’s code still compiles and runs great on Linux (64-bit !) with SDL output. I would like to get it ported to the Dreamcast using the same SDL output, which KallistiOS supports. Then, there is the matter of fixing the longstanding chroma bug in the original sample decoder (described here). The decoder also needs to be modified to natively render RGB565 data, as that will work best with the DC’s graphics hardware.

    After making the code work, I want to profile it and test whether it can handle full-frame 640x480 playback at 30 frames/second. I will need to contrive a sample to achieve this.

    Unfortunately, things went off the rails pretty quickly when I tried to get the RoQ decoder ported to DC/KOS. It looks like there’s a bug in KallistiOS’s minimalistic standard C library, or at least a discrepancy with my desktop Linux system. When you read to the end of a file and then seek backwards to someplace that isn’t the end, is the file still in EOF state ?

    According to my Linux desktop :

    open file ;          feof() = 0
    seek to end ;        feof() = 0
    read one more byte ; feof() = 1
    seek back to start ; feof() = 0
    

    According to KallistiOS :

    open file ;          feof() = 0
    seek to end ;        feof() = 0
    read one more byte ; feof() = 1
    seek back to start ; feof() = 1
    

    Here’s the seek-test.c program I used to test this issue :

    C :
    1. #include <stdio .h>
    2.  
    3. int main()
    4. {
    5.   FILE *f ;
    6.   unsigned char byte ;
    7.  
    8.   f = fopen("seek_test.c", "r") ;
    9.   printf("open file ;     feof() = %d\n", feof(f)) ;
    10.   fseek(f, 0, SEEK_END) ;
    11.   printf("seek to end ;    feof() = %d\n", feof(f)) ;
    12.   fread(&byte, 1, 1, f) ;
    13.   printf("read one more byte ; feof() = %d\n", feof(f)) ;
    14.   fseek(f, 0, SEEK_SET) ;
    15.   printf("seek back to start ; feof() = %d\n", feof(f)) ;
    16.   fclose(f) ;
    17.  
    18.   return 0 ;
    19. }

    EOF
    Speaking of EOF, I’m about done for this evening.

    What codec would you select for this task, given the requirements involved ?

  • Transcoding WAV audio to AAC in an MP4 container using FFmpeg C API

    7 novembre 2022, par vstrom coder

    I'm trying to compose source video and audio into a final MP4 video.&#xA;I have a problem with the WAV audio. After decoding and filtering, I'm getting an error from the output encoder : [aac @ 0x145e04c40] more samples than frame size

    &#xA;

    I initially used the following filter graph (minimal reproducible example) :

    &#xA;

        abuffer -> aformat -> abuffersink&#xA;

    &#xA;

    At this point I was getting the error mentioned above.

    &#xA;

    Then, I tried to insert a aresample filter to the graph :

    &#xA;

        abuffer -> aresample -> aformat -> abuffersink&#xA;

    &#xA;

    But still getting the same error.&#xA;This was based on the fact that the ffmpeg CLI uses this filter when converting WAV to MP4 :

    &#xA;

    Command :

    &#xA;

        ffmpeg -i source.wav output.mp4 -loglevel debug&#xA;

    &#xA;

    Output contains :

    &#xA;

        [graph_0_in_0_0 @ 0x138f06200] Setting &#x27;time_base&#x27; to value &#x27;1/44100&#x27;&#xA;    [graph_0_in_0_0 @ 0x138f06200] Setting &#x27;sample_rate&#x27; to value &#x27;44100&#x27;&#xA;    [graph_0_in_0_0 @ 0x138f06200] Setting &#x27;sample_fmt&#x27; to value &#x27;s16&#x27;&#xA;    [graph_0_in_0_0 @ 0x138f06200] Setting &#x27;channel_layout&#x27; to value &#x27;mono&#x27;&#xA;    [graph_0_in_0_0 @ 0x138f06200] tb:1/44100 samplefmt:s16 samplerate:44100 chlayout:mono&#xA;    [format_out_0_0 @ 0x138f06620] Setting &#x27;sample_fmts&#x27; to value &#x27;fltp&#x27;&#xA;    [format_out_0_0 @ 0x138f06620] Setting &#x27;sample_rates&#x27; to value &#x27;96000|88200|64000|48000|44100|32000|24000|22050|16000|12000|11025|8000|7350&#x27;&#xA;    [format_out_0_0 @ 0x138f06620] auto-inserting filter &#x27;auto_aresample_0&#x27; between the filter &#x27;Parsed_anull_0&#x27; and the filter &#x27;format_out_0_0&#x27;&#xA;    [AVFilterGraph @ 0x138f060f0] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed&#xA;    [auto_aresample_0 @ 0x138f06c30] [SWR @ 0x120098000] Using s16p internally between filters&#xA;    [auto_aresample_0 @ 0x138f06c30] ch:1 chl:mono fmt:s16 r:44100Hz -> ch:1 chl:mono fmt:fltp r:44100Hz&#xA;    Output #0, mp4, to &#x27;output.mp4&#x27;:&#xA;      Metadata:&#xA;        encoder         : Lavf59.27.100&#xA;      Stream #0:0, 0, 1/44100: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, delay 1024, 69 kb/s&#xA;        Metadata:&#xA;          encoder         : Lavc59.37.100 aac&#xA;

    &#xA;

    I'm trying to figure out whether I should use the SWR library directly as exemplified in the transcode_aac example.

    &#xA;