Recherche avancée

Médias (16)

Mot : - Tags -/mp3

Autres articles (69)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (4890)

  • send h264 video to nginx-rtmp server using ffmpeg API

    11 décembre 2019, par Glen

    I have C++ code that grabs frames from a GigE camera and writes them out to a file. I’m using the libx264 codec and ffmpeg version 4.0.

    Writing to the file works fine, however I would also like to send the video to nginx configured with the nginx-rtmp plug-in to make the video available live via HLS.

    I can use the ffmpeg command line program to stream one of my previously captured files to my nginx server and rebroadcast as HLS, however if I try to stream from my C++ code the nginx server closes the connection after one or two frames are sent.

    To test further, I used the ffmpeg command line program to receive a rtmp stream and write it out to a file. I am able to send video to ffmpeg from my C++ program with rtmp, however every frame generates a warning like this :

    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1771, current: 53; changing to 1772. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1772, current: 53; changing to 1773. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1773, current: 53; changing to 1774. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1774, current: 53; changing to 1775. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1775, current: 53; changing to 1776. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1776, current: 53; changing to 1777. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1777, current: 53; changing to 1778. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1778, current: 53; changing to 1779. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1779, current: 53; changing to 1780. This may result in incorrect timestamps in the output file.

    I printed PTS and DTS for my packet before writing it, and the numbers were monotonous (for example, in this last frame the pts and dts printed from my code were 1780, not the ’current : 53’ that ffmpeg reports>

    also, unless I tell ffmpeg what the output framerate should be I end up with a file that plays 2x speed.

    After ffmpeg receives the rtmp stream and writes it to the file, I am then able to successfully send that file to my nginx server using ffmpeg.

    here is some relevant code :

    //configuring the codec context
    // make sure that config.codec is something we support
    // for now we are only supporting LIBX264
    if (config.codec() != codecs::LIBX264) {
       throw std::invalid_argument("currently only libx264 codec is supported");
    }

    // lookup specified codec
    ffcodec_ = avcodec_find_encoder_by_name(config.codec().c_str());
    if (!ffcodec_) {
       throw std::invalid_argument("unable to get codec " + config.codec());
    }

    // unique_ptr to manage the codec_context
    codec_context_ = av_pointer::codec_context(avcodec_alloc_context3(ffcodec_));

    if (!codec_context_) {
       throw std::runtime_error("unable to initialize AVCodecContext");
    }

    // setup codec_context_
    codec_context_->width = frame_width;
    codec_context_->height = frame_height;
    codec_context_->time_base = (AVRational){1, config.target_fps()};
    codec_context_->framerate = (AVRational){config.target_fps(), 1};
    codec_context_->global_quality = 0;
    codec_context_->compression_level = 0;
    codec_context_->bits_per_raw_sample = 8;
    codec_context_->gop_size = 1;
    codec_context_->max_b_frames = 1;
    codec_context_->pix_fmt = AV_PIX_FMT_YUV420P;

    // x264 only settings
    if (config.codec() == codecs::LIBX264) {
       av_opt_set(codec_context_->priv_data, "preset", config.compression_target().c_str(), 0);
       av_opt_set(codec_context_->priv_data, "crf", std::to_string(config.crf()).c_str(), 0);
    }

    // Open up the codec
    if (avcodec_open2(codec_context_.get(), ffcodec_, NULL) < 0) {
       throw std::runtime_error("unable to open ffmpeg codec");
    }

    // setup the output format context and stream for RTMP
    AVFormatContext *tmp_f_context;
    avformat_alloc_output_context2(&tmp_f_context, NULL, "flv", uri.c_str());
    rtmp_format_context_ = av_pointer::format_context(tmp_f_context);
    rtmp_stream_ = avformat_new_stream(rtmp_format_context_.get(), ffcodec_);
    avcodec_parameters_from_context(rtmp_stream_->codecpar, codec_context_.get());
    rtmp_stream_->time_base = codec_context_->time_base;
    rtmp_stream_->r_frame_rate = codec_context_->framerate;

    /* open the output file */
    if (!(rtmp_format_context_->flags & AVFMT_NOFILE)) {
       int r = avio_open(&rtmp_format_context_->pb, uri.c_str(), AVIO_FLAG_WRITE);
       if (r < 0) {
           throw std::runtime_error("unable to open " + uri + " : " + av_err2str(r));
       }
    }

    if (avformat_write_header(rtmp_format_context_.get(), NULL) < 0) {
       throw std::runtime_error("unable to write header");
    }

    av_dump_format(rtmp_format_context_.get(), 0,uri.c_str() , 1);

    at this point the av_dump_format produces this output :

    Output #0, flv, to 'rtmp://[MY URI]':
     Metadata:
       encoder         : Lavf58.12.100
       Stream #0:0, 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p, 800x800 (0x0), 0/1, q=-1--1, 30 tbr, 1k tbn

    encoding and writing the frame :

    // send the frame to the encoder, filtering first if necessary
    void VideoWriter::Encode(AVFrame *frame)
    {
       int rval;
       if (!apply_filter_) {
           //send frame to encoder
           rval = avcodec_send_frame(codec_context_.get(), frame);
           if (rval < 0) {
               throw std::runtime_error("error sending frame for encoding");
           }
       } else {
           // push frame to filter
           // REMOVED, currently testing without filtering
       }

       // get packets from encoder
       while (rval >= 0) {
           // create smart pointer to allocated packet
           av_pointer::packet pkt(av_packet_alloc());
           if (!pkt) {
               throw std::runtime_error("unable to allocate packet");
           }

           rval = avcodec_receive_packet(codec_context_.get(), pkt.get());
           if (rval == AVERROR(EAGAIN) || rval == AVERROR_EOF) {
               return;
           } else if (rval < 0) {
               throw std::runtime_error("error during encoding");
           }

           // if I print pkt->pts and pkt->dts here, I see sequential numbers

           // write packet
           rval = av_interleaved_write_frame(rtmp_format_context_.get(), pkt.get());
           if (rval < 0 ) {
               std::cerr << av_err2str(rval) << std::endl;
           }
       }
    }

    Since I am able to send video from a previously recorded file to nginx with the ffmpeg command line program, I believe the problem is in my code and not my nginx configuration.

    EDIT : I think it may have to do with SPS/PPS as I see a bunch of these error messages in the nginx log before it closes the stream

    2019/12/11 11:11:31 [error] 10180#0: *4 hls: failed to read 5 byte(s), client: XXX, server: 0.0.0.0:1935
    2019/12/11 11:11:31 [error] 10180#0: *4 hls: error appenging SPS/PPS NALs, client: XXX, server: 0.0.0.0:1935

    As I mentioned, this code works fine if I set it up to write to an avi file rather stream to rtmp, and I can stream to ffmpeg listening for rtmp but with lots of warnings about the DTS but if I try to send to nginx, it closes the connection almost immediately. My first thought was that there was something wrong with the frame timestamps, but when I print pts and dts prior to writing the packet to the stream they look okay to me.

    My end goal is to capture video to a file, and also be able to turn on the rtmp stream on demand — but for now I’m just trying to get the rtmp stream working continuously (without writing to a file)

    Thanks for any insights.

  • Raspberry Pi 4 live streaming with ffmpeg [closed]

    12 décembre 2019, par Berri

    So speedify created a blog post and youtube video about making an IRL streaming backpack using the Elgato Cam Link 4k, Raspberry Pi 4, and ffmpeg.

    They gave pretty detailed instructions, and included downloads to prebuilt scripts/commands to get it all running once put together.
    Blog post :
    https://speedify.com/blog/how-to/build-irl-streaming-backpack-complete-guide/

    ffmpeg command from post :

    ffmpeg_command = “/home/pi/bin/ffmpeg -nostdin -re -f v4l2 -s ‘1280×720’ -framerate 24 -i /dev/video0 -f alsa -ac 2 -i hw:CARD=Link,DEV=0 -vcodec libx264 -framerate 24 -rtbufsize 1500k -s 1280×720 -preset ultrafast -pix_fmt yuv420p -crf 17 -force_key_frames ‘expr:gte(t,n_forced*2)’ -minrate 850k -maxrate 1000k -b:v 1000k -bufsize 1000k -acodec libmp3lame -rtbufsize 1500k -b 96k -ar 44100 -f flv – | ffmpeg -f flv -i – -c copy -f flv -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://live.twitch.tv/app/live_” + streamKey + “‘\n”

    I replaced -i hw:card=link,dev=0 in that command with -i hw:2,0 because -i hw:card=link,dev=0 gave me "file does not exist" errors in the log. "streamkey" is filled with the appropriate key for my twitch.

    Github Resources + Instructions used :
    https://github.com/speedify/rpi-streaming-experiment

    I’m using all the exact same hardware as outlined in the post, and have gotten everything installed correctly as far as I can tell.
    But when I go to run the ffmpeg command, it seems like nothing actually gets sent over to twitch correctly.

    The log after trying to run it looks like this.
    If anybody has any insight as to what may be going wrong, it would be greatly appreciated.

    Starting ffmpeg
    ffmpeg version N-95970-gd5274f8 Copyright (c) 2000-2019 the FFmpeg developers
    built with gcc 8 (Raspbian 8.3.0-6+rpi1)  
    configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree  
    libavutil 56. 36.101 / 56. 36.101  
    libavcodec 58. 64.101 / 58. 64.101  
    ffmpeg version N-95970-gd5274f8 libavformat 58. 35.101 / 58. 35.101  
    Copyright (c) 2000-2019 the FFmpeg developers libavdevice 58. 9.101 / 58. 9.101  
    libavfilter 7. 67.100 / 7. 67.100  
    built with gcc 8 (Raspbian 8.3.0-6+rpi1)  
    libswscale 5. 6.100 / 5. 6.100  
    configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree  
    libswresample 3. 6.100 / 3. 6.100  
    libpostproc 55. 6.100 / 55. 6.100  
    libavutil 56. 36.101 / 56. 36.101  
    libavcodec 58. 64.101 / 58. 64.101  
    libavformat 58. 35.101 / 58. 35.101  
    libavdevice 58. 9.101 / 58. 9.101  
    libavfilter 7. 67.100 / 7. 67.100  
    libswscale 5. 6.100 / 5. 6.100  
    libswresample 3. 6.100 / 3. 6.100  
    libpostproc 55. 6.100 / 55. 6.100  
    [video4linux2,v4l2 @ 0x2aac5e0] The V4L2 driver changed the video from 1280x720 to 1920x1080  
    [video4linux2,v4l2 @ 0x2aac5e0] The driver changed the time per frame from 1/24 to 117/7013  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Input #0, video4linux2,v4l2, from '/dev/video0':  
    Duration: N/A, start: 4683.201589, bitrate: 1491503 kb/s  
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 1491503 kb/s, 59.94 fps, 59.94 tbr, 1000k tbn, 1000k tbc  
    Guessed Channel Layout for Input Stream #1.0 : stereo  
    Input #1, alsa, from 'hw:2,0':  
    Duration: N/A, start: 1576099663.557438, bitrate: 1536 kb/s  
    Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s  
    Please use -b:a or -b:v, -b is ambiguous  
    Stream mapping:  
    Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))  
    Stream #1:0 -> #0:1 (pcm_s16le (native) -> mp3 (libmp3lame))  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Last message repeated 9 times
    [video4linux2,v4l2 @ 0x2aac5e0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)  
    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200 bytes, but 3110400 were expected. Flags: 0x00012001.  
    Last message repeated 28 times  
    terminated script  
    pipe:: could not find codec parameters  
    Exiting normally, received signal 15.  
    Last message repeated 15 times  
    [alsa @ 0x2aaf2c0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)  
    Finishing stream 0:0 without any data written to it.  
    [libx264 @ 0x2abee40] using cpu capabilities: ARMv6 NEON  
    [libx264 @ 0x2abee40] profile Constrained Baseline, level 3.2, 4:2:0, 8-bit  
    [libx264 @ 0x2abee40] 264 - core 158 - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=17.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=1000 vbv_bufsize=1000 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=0  
    Finishing stream 0:1 without any data written to it.  
    Output #0, flv, to 'pipe:':  
    Metadata:  
    encoder : Lavf58.35.101  
    Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 1280x720, q=-1--1, 96 kb/s, 59.94 fps, 1k tbn, 59.94 tbc  
    Metadata:  
    encoder : Lavc58.64.101 libx264  
    Side data:  
    cpb: bitrate max/min/avg: 1000000/0/96000 buffer size: 1000000 vbv_delay: N/A  
    Stream #0:1: Audio: mp3 (libmp3lame) ([2][0][0][0] / 0x0002), 44100 Hz, stereo, s16p  
    Metadata:  
    encoder : Lavc58.64.101 libmp3lame  
    [flv @ 0x2abda90] Failed to update header with correct duration.  
    [flv @ 0x2abda90] Failed to update header with correct filesize.  
    Error writing trailer of pipe:: Broken pipe  
    frame= 0 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
    video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown  
    Exiting normally, received signal 15.        

    This message repeats until script is terminated with the Circuit Express button. For length, many instances of this line were cut out.

    [video4linux2,v4l2 @ 0x2aac5e0] Dequeued v4l2 buffer contains 4147200
    bytes, but 3110400 were expected. Flags: 0x00012001.
    Last message repeated xx times

    Output from v4l2-ctl --list-formats-ext

    ioctl: VIDIOC_ENUM_FMT
       Type: Video Capture

       [0]: 'YUYV' (YUYV 4:2:2)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)
       [1]: 'NV12' (Y/CbCr 4:2:0)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)
       [2]: 'YU12' (Planar YUV 4:2:0)
           Size: Discrete 1920x1080
               Interval: Discrete 0.017s (59.940 fps)

    Log output after ffmpeg command modification.

    Starting ffmpeg
    ffmpeg version N-95970-gd5274f8 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8 (Raspbian 8.3.0-6+rpi1)
     configuration: --prefix=/home/pi/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/pi/ffmpeg_build/include --extra-ldflags=-L/home/pi/ffmpeg_build/lib --extra-libs='-lpthread -lm' --bindir=/home/pi/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
     libavutil      56. 36.101 / 56. 36.101
     libavcodec     58. 64.101 / 58. 64.101
     libavformat    58. 35.101 / 58. 35.101
     libavdevice    58.  9.101 / 58.  9.101
     libavfilter     7. 67.100 /  7. 67.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    terminated script
    Input #0, video4linux2,v4l2, from '/dev/video0':
     Duration: N/A, bitrate: 1491503 kb/s
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1920x1080, 1491503 kb/s, 59.94 fps, 59.94 tbr, 1000k tbn, 1000k tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, alsa, from 'hw:1,0':
     Duration: N/A, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    [rtmp @ 0x2605cd0] Cannot open connection tcp://live.twitch.tv:1935
    rtmp://live.twitch.tv/app/live: Immediate exit requested
    Exiting normally, received signal 15.
  • FFMPEG does not produce output a valid mp4 when called from Java

    13 décembre 2019, par VincBreaker

    I am merging an image with an audio file into a mp4-video using the ffmpeg-command :

    ffmpeg -y -r 30 -loop 1 -i <path></path>to/image.png> -i <path></path>to/audio.aac> -shortest -acodec copy -vcodec libx264 <path></path>to/output.mp4>

    To call this command from Java I’m using this code :

    ProcessBuilder builder = new ProcessBuilder("ffmpeg", "-y", "-r",
                       String.valueOf(generalConfig.getOutputFPS()), "-loop", "1", "-i", pictureFile,
                       "-i", transspoken.getVoiceFile(), "-shortest", "-acodec", "copy", "-vcodec", "libx264",
                       snippetOut);
    builder.redirectOutput(new File(getTMPName() + ".txt"));
    builder.redirectError(new File(getTMPName() + ".txt"));
    builder.redirectErrorStream(true);

    LogUtils.debug("FFMPEG-Render", String.join(" ", builder.command()));
    try {
       Process p = builder.start();
       p.waitFor();
    } catch (IOException | InterruptedException e) {
       e.printStackTrace();
    }

    This code runs without problem on my local machine running Ubuntu 18.04 Desktop and OpenJDK 11.0.4. However, when run on a Ubuntu 18.04 Server droplet, running the same OpenJDK-Version, the code results in a corrupted output. Strangely, there is absolutely no problem when I ssh into the server and call exactly the same command to generate the mp4 file. So I am in a the really strange situation where :

    1. The command works fine when called automatically on my local machine.
    2. The command works fine when called manually on the server.
    3. The command does not work when called automatically on the server.

    Output of the automated FFMPEG call on the server :

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [png_pipe @ 0x560225784a60] Stream #0: not enough frames to estimate rate; consider increasing probesize
    Input #0, png_pipe, from 'tmp/render_1.png':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgb24(pc), 1920x1080, 25 tbr, 25 tbn, 25 tbc
    [aac @ 0x560225789940] Estimating duration from bitrate, this may be inaccurate
    Input #1, aac, from 'tmp/marytts_1.aac':
     Duration: 00:00:04.80, bitrate: 25 kb/s
       Stream #1:0: Audio: aac (LC), 16000 Hz, mono, fltp, 25 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 0x56022578c2e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
    [libx264 @ 0x56022578c2e0] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
    [libx264 @ 0x56022578c2e0] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=1 lookahead_threads=1 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=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'tmp/render_2.mp4':
     Metadata:
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.107.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 25 kb/s
    frame=    6 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   12 fps= 11 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   18 fps= 11 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   23 fps= 10 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   27 fps=9.8 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   30 fps=9.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   32 fps=7.9 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   33 fps=7.1 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   34 fps=6.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   35 fps=5.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   38 fps=5.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   42 fps=5.0 q=29.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    

    The error output is empty. FFProbe on the corrupted file :

    $ ffprobe tmp/render_2.mp4
       ffprobe version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2007-2019 the FFmpeg developers
         built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
         configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
         libavutil      55. 78.100 / 55. 78.100
         libavcodec     57.107.100 / 57.107.100
         libavformat    57. 83.100 / 57. 83.100
         libavdevice    57. 10.100 / 57. 10.100
         libavfilter     6.107.100 /  6.107.100
         libavresample   3.  7.  0 /  3.  7.  0
         libswscale      4.  8.100 /  4.  8.100
         libswresample   2.  9.100 /  2.  9.100
         libpostproc    54.  7.100 / 54.  7.100
       [mov,mp4,m4a,3gp,3g2,mj2 @ 0x558b07498080] moov atom not found
       tmp/render_2.mp4: Invalid data found when processing input

    At first I thought that the java program is not properly waiting for FFMpeg to finish thereby causing the corrupted output but some time measurements made me somewhat confident that that is not the cause of this bug.

    EDIT :

    Output of the ffmpeg command on the server when called via ssh :

    $ ffmpeg -y -r 30 -loop 1 -i tmp/render_1.png -i tmp/marytts_1.aac -shortest -acodec copy -vcodec libx264 tmp/render_2.mp4
    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [png_pipe @ 0x562e37a77a60] Stream #0: not enough frames to estimate rate; consider increasing probesize
    Input #0, png_pipe, from 'tmp/render_1.png':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgb24(pc), 1920x1080, 25 tbr, 25 tbn, 25 tbc
    [aac @ 0x562e37a7c940] Estimating duration from bitrate, this may be inaccurate
    Input #1, aac, from 'tmp/marytts_1.aac':
     Duration: 00:00:04.80, bitrate: 25 kb/s
       Stream #1:0: Audio: aac (LC), 16000 Hz, mono, fltp, 25 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 0x562e37a7f2e0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
    [libx264 @ 0x562e37a7f2e0] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
    [libx264 @ 0x562e37a7f2e0] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=1 lookahead_threads=1 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=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'tmp/render_2.mp4':
     Metadata:
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.107.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 25 kb/s
    frame=  194 fps= 10 q=29.0 Lsize=     280kB time=00:00:05.00 bitrate= 458.3kbits/s speed=0.261x    
    video:261kB audio:15kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.337588%
    [libx264 @ 0x562e37a7f2e0] frame I:1     Avg QP:16.02  size:255181
    [libx264 @ 0x562e37a7f2e0] frame P:49    Avg QP:10.58  size:    93
    [libx264 @ 0x562e37a7f2e0] frame B:144   Avg QP:13.67  size:    69
    [libx264 @ 0x562e37a7f2e0] consecutive B-frames:  1.0%  0.0%  0.0% 99.0%
    [libx264 @ 0x562e37a7f2e0] mb I  I16..4: 49.3%  0.0% 50.7%
    [libx264 @ 0x562e37a7f2e0] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
    [libx264 @ 0x562e37a7f2e0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0: 0.0% L1:100.0% BI: 0.0%
    [libx264 @ 0x562e37a7f2e0] coded y,u,v intra: 49.6% 41.1% 42.4% inter: 0.0% 0.0% 0.0%
    [libx264 @ 0x562e37a7f2e0] i16 v,h,dc,p: 97%  0%  2%  1%
    [libx264 @ 0x562e37a7f2e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 15%  7%  7%  9% 10%  9%  9% 11%
    [libx264 @ 0x562e37a7f2e0] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x562e37a7f2e0] ref P L0: 72.6% 13.6% 11.6%  2.3%
    [libx264 @ 0x562e37a7f2e0] kb/s:333.64

    Output of local automated call :

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     WARNING: library configuration mismatch
     avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [png_pipe @ 0x558d89df15c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
    Input #0, png_pipe, from 'tmp/render_1.png':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgb24(pc), 1920x1080, 25 tbr, 25 tbn, 25 tbc
    [aac @ 0x558d89df64a0] Estimating duration from bitrate, this may be inaccurate
    Input #1, aac, from 'tmp/marytts_1.aac':
     Duration: 00:00:04.80, bitrate: 25 kb/s
       Stream #1:0: Audio: aac (LC), 16000 Hz, mono, fltp, 25 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 0x558d89df8e40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x558d89df8e40] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
    [libx264 @ 0x558d89df8e40] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 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=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'tmp/render_2.mp4':
     Metadata:
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.107.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 25 kb/s
    frame=   29 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   51 fps= 51 q=29.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   67 fps= 44 q=29.0 size=       0kB time=00:00:00.51 bitrate=   0.8kbits/s speed=0.335x    
    frame=   88 fps= 43 q=29.0 size=     256kB time=00:00:01.21 bitrate=1724.9kbits/s speed=0.595x    
    frame=  111 fps= 43 q=29.0 size=     256kB time=00:00:01.93 bitrate=1084.9kbits/s speed=0.756x    
    frame=  132 fps= 43 q=29.0 size=     256kB time=00:00:02.68 bitrate= 780.3kbits/s speed=0.877x    
    frame=  153 fps= 43 q=29.0 size=     256kB time=00:00:03.39 bitrate= 618.4kbits/s speed=0.949x    
    frame=  176 fps= 43 q=29.0 size=     256kB time=00:00:04.16 bitrate= 504.2kbits/s speed=1.02x    
    frame=  196 fps= 43 q=29.0 size=     256kB time=00:00:04.80 bitrate= 437.0kbits/s speed=1.04x    
    frame=  203 fps= 38 q=29.0 Lsize=     280kB time=00:00:05.00 bitrate= 458.0kbits/s speed=0.946x    
    video:261kB audio:15kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.338639%
    [libx264 @ 0x558d89df8e40] frame I:1     Avg QP:16.02  size:255033
    [libx264 @ 0x558d89df8e40] frame P:51    Avg QP:10.50  size:    91
    [libx264 @ 0x558d89df8e40] frame B:151   Avg QP:13.67  size:    69
    [libx264 @ 0x558d89df8e40] consecutive B-frames:  0.5%  1.0%  0.0% 98.5%
    [libx264 @ 0x558d89df8e40] mb I  I16..4: 49.4%  0.0% 50.6%
    [libx264 @ 0x558d89df8e40] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
    [libx264 @ 0x558d89df8e40] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0: 0.0% L1:100.0% BI: 0.0%
    [libx264 @ 0x558d89df8e40] coded y,u,v intra: 49.6% 41.1% 42.2% inter: 0.0% 0.0% 0.0%
    [libx264 @ 0x558d89df8e40] i16 v,h,dc,p: 97%  0%  2%  1%
    [libx264 @ 0x558d89df8e40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 15%  7%  7%  9% 10%  9% 10% 11%
    [libx264 @ 0x558d89df8e40] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x558d89df8e40] ref P L0: 80.5% 10.5%  8.7%  0.3%
    [libx264 @ 0x558d89df8e40] kb/s:319.34

    Output of local manual call :

    $ ffmpeg -y -r 30 -loop 1 -i tmp/render_1.png -i tmp/marytts_1.aac -shortest -acodec copy -vcodec libx264 tmp/render_2.mp4
    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     WARNING: library configuration mismatch
     avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    [png_pipe @ 0x558ddf2165c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
    Input #0, png_pipe, from 'tmp/render_1.png':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgb24(pc), 1920x1080, 25 tbr, 25 tbn, 25 tbc
    [aac @ 0x558ddf21b4a0] Estimating duration from bitrate, this may be inaccurate
    Input #1, aac, from 'tmp/marytts_1.aac':
     Duration: 00:00:04.80, bitrate: 25 kb/s
       Stream #1:0: Audio: aac (LC), 16000 Hz, mono, fltp, 25 kb/s
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [libx264 @ 0x558ddf21de40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x558ddf21de40] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
    [libx264 @ 0x558ddf21de40] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 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=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'tmp/render_2.mp4':
     Metadata:
       encoder         : Lavf57.83.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p, 1920x1080, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.107.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 25 kb/s
    frame=  203 fps= 40 q=29.0 Lsize=     280kB time=00:00:05.00 bitrate= 458.0kbits/s speed=0.986x    
    video:261kB audio:15kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.338639%
    [libx264 @ 0x558ddf21de40] frame I:1     Avg QP:16.02  size:255033
    [libx264 @ 0x558ddf21de40] frame P:51    Avg QP:10.50  size:    91
    [libx264 @ 0x558ddf21de40] frame B:151   Avg QP:13.67  size:    69
    [libx264 @ 0x558ddf21de40] consecutive B-frames:  0.5%  1.0%  0.0% 98.5%
    [libx264 @ 0x558ddf21de40] mb I  I16..4: 49.4%  0.0% 50.6%
    [libx264 @ 0x558ddf21de40] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.1%  0.0%  0.0%  0.0%  0.0%    skip:99.9%
    [libx264 @ 0x558ddf21de40] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0: 0.0% L1:100.0% BI: 0.0%
    [libx264 @ 0x558ddf21de40] coded y,u,v intra: 49.6% 41.1% 42.2% inter: 0.0% 0.0% 0.0%
    [libx264 @ 0x558ddf21de40] i16 v,h,dc,p: 97%  0%  2%  1%
    [libx264 @ 0x558ddf21de40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 15%  7%  7%  9% 10%  9% 10% 11%
    [libx264 @ 0x558ddf21de40] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x558ddf21de40] ref P L0: 80.5% 10.5%  8.7%  0.3%
    [libx264 @ 0x558ddf21de40] kb/s:319.34