Recherche avancée

Médias (91)

Autres articles (94)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

Sur d’autres sites (8995)

  • ffmpeg : consider increasing probesize error, but it is never satisfied

    27 janvier 2021, par Jaz

    I was trying to use an Arch solution for streaming to twitch today through FFMPEG, but all of my attempts were in vain because of one simple thing on FFMPEG. it says that the probesize is not large enough, so I instinctively increased the probesize value more and more... and now it is -probesize "500M" yet it is still saying it is not enough. here is the code snippet

    


    [x11grab @ 0x5631f846cd00] Stream #0: not enough frames to estimate rate; consider increasing probesize
Input #0, x11grab, from ':0.0':
  Duration: N/A, start: 1603397505.341400, bitrate: 1007124 kb/s
    Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1366x768, 1007124 kb/s, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
0: Input/output error


    


    and the code

    


    #!/bin/bash
     INRES="1366x768" # input resolution
     OUTRES="1366x768" # output resolution
     FPS="30" # target FPS
     GOP="60" # i-frame interval, should be double of FPS,
     GOPMIN="30" # min i-frame interval, should be equal to fps,
     THREADS="2" # max 6
     CBR="1000k" # constant bitrate (should be between 1000k - 3000k)
     QUALITY="ultrafast"  # one of the many FFMPEG preset
     AUDIO_RATE="44100"
     PROBESZ="500M" # specify a size for the ffmpeg tool to assess frames
     STREAM_KEY="$1" # paste the stream key after calling stream_now
     SERVER="live-mia" # twitch server in miami Florida, see https://stream.twitch.tv/ingests/ for list

     ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 -f pulse -i 0 -f flv -ac 2 -ar $AUDIO_RATE \
       -vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p\
       -s $OUTRES -preset $QUALITY -tune film -acodec aac -threads $THREADS -strict normal \
       -bufsize $CBR -probesize $PROBESZ "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY"


    


    even though it was a solution to store in .bashrc, I stored it in a script to call manually.

    


    and if this is helpful, here is the fancy banner ffmpeg shows before the error

    


    ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100


    


  • Python : ani.save very slow. Any alternatives to create videos ?

    14 novembre 2023, par Czeskleba

    Im doing some simple diffusion calculations. I save 2 matrices to 2 datasets every so many steps (every 2s or so) to a single .h5 file. After that I then load the file in another script, create some figures (2 subplots etc., see/run code - i know could be prettier). Then I use matplotlib.animation to make the animation. In the code below, in the very last lines, I then run the ani.save command from matplotlib.

    


    And that's where the problem is. The animation is created within 2 seconds, even for my longer animations (14.755 frames, done in under 2s at 8284 it/s) but after that, ani.save in line 144 takes forever (it didn't finish over night). It reserves/uses about 10gb of my RAM constantly but seemingly takes forever. If you run the code below be sure to set the frames_to_do (line 20) to something like 30 or 60 to see that it does in fact save an mp4 for shorter videos. You can set it higher to see how fast the time to save stuff increases to something unreasonable.

    


    I've been fiddling this for 2 days now and I cant figure it out. I guess my question is : Is there any way to create the video in a reasonable time like this ? Or do I need something other than animation ?

    


    You should be able to just run the code. Ill provide a diffusion_array.h5 with 140 frames so you dont have to create a dummy file, if I can figure out how to upload something like this safely. (The results are with dummy numbers for now, diffusion coefficients etc. are not right yet.)
I used dropbox. Not sure if thats allowed, if not I'll delete the link and uhh PM me or something ?

    


    https://www.dropbox.com/scl/fi/fv9stfqkm4trmt3zwtvun/diffusion_array.h5?rlkey=2oxuegnlcxq0jt6ed77rbskyu&dl=0

    


    Here is the code :

    


    import h5py
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
from matplotlib.animation import FuncAnimation
from tqdm import tqdm
import numpy as np


# saving the .mp4 after tho takes forever

# Create an empty figure and axis
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 9), dpi=96)

# Load all saved arrays into a list
file_name = 'diffusion_array.h5'
loaded_u_arrays = []
loaded_h_arrays = []
frames_to_do = 14755  # for now like this, use # version once the slow mp4 convert is cleared up

# with h5py.File(file_name, 'r') as hf:
#     for key in hf.keys():
#         if key.startswith('u_snapshot_'):
#             loaded_u_arrays.append(hf[key][:])
#         elif key.startswith('h_snapshot_'):
#             loaded_h_arrays.append(hf[key][:])

with h5py.File(file_name, 'r') as hf:
    for i in range(frames_to_do):
        target_key1 = f'u_snapshot_{i:05d}'
        target_key2 = f'h_snapshot_{i:05d}'
        if target_key1 in hf:
            loaded_u_arrays.append(hf[target_key1][:])
        else:
            print(f'Dataset u for time step {i} not found in the file.')
        if target_key2 in hf:
            loaded_h_arrays.append(hf[target_key2][:])
        else:
            print(f'Dataset h for time step {i} not found in the file.')

# Create "empty" imshow objects
# First one
norm1 = mcolors.Normalize(vmin=140, vmax=400)
cmap1 = plt.get_cmap('hot')
cmap1.set_under('0.85')
im1 = ax1.imshow(loaded_u_arrays[0], cmap=cmap1, norm=norm1)
ax1.set_title('Diffusion Heatmap')
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
cbar_ax = fig.add_axes([0.05, 0.15, 0.03, 0.7])
cbar_ax.set_xlabel('$T$ / K', labelpad=20)
fig.colorbar(im1, cax=cbar_ax)


# Second one
ax2 = plt.subplot(1, 2, 2)
norm2 = mcolors.Normalize(vmin=-0.1, vmax=5)
cmap2 = plt.get_cmap('viridis')
cmap2.set_under('0.85')
im2 = ax2.imshow(loaded_h_arrays[0], cmap=cmap2, norm=norm2)
ax2.set_title('Diffusion Hydrogen')
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
cbar_ax = fig.add_axes([0.9, 0.15, 0.03, 0.7])
cbar_ax.set_xlabel('HD in ml/100g', labelpad=20)
fig.colorbar(im2, cax=cbar_ax)

# General
fig.subplots_adjust(right=0.85)
time_text = ax2.text(-15, 0.80, f'Time: {0} s', transform=plt.gca().transAxes, color='black', fontsize=20)

# Annotations
# Heat 1
marker_style = dict(marker='o', markersize=6, markerfacecolor='black', markeredgecolor='black')
ax1.scatter(*[10, 40], s=marker_style['markersize'], c=marker_style['markerfacecolor'],
            edgecolors=marker_style['markeredgecolor'])
ann_heat1 = ax1.annotate(f'Temp: {loaded_u_arrays[0][40, 10]:.0f}', xy=[10, 40], xycoords='data',
             xytext=([10, 40][0], [10, 40][1] + 48), textcoords='data',
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.3"), fontsize=12, color='black')
# Heat 2
ax1.scatter(*[140, 85], s=marker_style['markersize'], c=marker_style['markerfacecolor'],
            edgecolors=marker_style['markeredgecolor'])
ann_heat2 = ax1.annotate(f'Temp: {loaded_u_arrays[0][85, 140]:.0f}', xy=[140, 85], xycoords='data',
             xytext=([140, 85][0] + 55, [140, 85][1] + 3), textcoords='data',
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.3"), fontsize=12, color='black')

# Diffusion 1
marker_style = dict(marker='o', markersize=6, markerfacecolor='black', markeredgecolor='black')
ax2.scatter(*[10, 40], s=marker_style['markersize'], c=marker_style['markerfacecolor'],
            edgecolors=marker_style['markeredgecolor'])
ann_diff1 = ax2.annotate(f'HD: {loaded_h_arrays[0][40, 10]:.0f}', xy=[10, 40], xycoords='data',
             xytext=([10, 40][0], [10, 40][1] + 48), textcoords='data',
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.3"), fontsize=12, color='black')
# Diffusion 2
ax2.scatter(*[140, 85], s=marker_style['markersize'], c=marker_style['markerfacecolor'],
            edgecolors=marker_style['markeredgecolor'])
ann_diff2 = ax2.annotate(f'HD: {loaded_h_arrays[0][85, 140]:.0f}', xy=[140, 85], xycoords='data',
             xytext=([140, 85][0] + 55, [140, 85][1] + 3), textcoords='data',
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.3"), fontsize=12, color='black')


# Function to update the animation
def update(frame, *args):
    loaded_u_array, loaded_h_array = args

    s_per_frame = 2  # during weld/cooling you save a state every 2s
    frames_to_room_temp = 7803  # that means this many frames need to be animated
    dt_big = 87  # during "just diffusion" you save every 10 frame but 87s pass in those

    # Update the time step shown
    if frame <= frames_to_room_temp:
        im1.set_data(loaded_u_array[frame])
        im2.set_data(loaded_h_array[frame])
        time_text.set_text(f'Time: {frame * s_per_frame} s')

    else:
        im1.set_data(loaded_u_array[frame])
        im2.set_data(loaded_h_array[frame])
        calc_time = int(((2 * frames_to_room_temp) + (frame - frames_to_room_temp) * 87) / 3600)
        time_text.set_text(f'Time: {calc_time} s')

    # Annotate some points
    ann_heat1.set_text(f'Temp: {loaded_u_arrays[frame][40, 10]:.0f}')
    ann_heat2.set_text(f'Temp: {loaded_u_arrays[frame][85, 140]:.0f}')
    ann_diff1.set_text(f'HD: {loaded_h_arrays[frame][40, 10]:.0f}')
    ann_diff2.set_text(f'HD: {loaded_h_arrays[frame][85, 140]:.0f}')

    return im1, im2  # Return the updated artists


# Create the animation without displaying it
ani = FuncAnimation(fig, update, frames=frames_to_do, repeat=False, blit=True, interval=1,
                    fargs=(loaded_u_arrays, loaded_h_arrays))  # frames=len(loaded_u_arrays)

# Create the progress bar with tqdm
with tqdm(total=frames_to_do, desc='Creating Animation') as pbar:  # total=len(loaded_u_arrays)
    for i in range(frames_to_do):  # for i in range(len(loaded_u_arrays)):
        update(i, loaded_u_arrays, loaded_h_arrays)  # Manually update the frame with both datasets
        pbar.update(1)  # Update the progress bar

# Save the animation as a video file (e.g., MP4)
print("Converting to .mp4 now. This may take some time. This is normal, wait for Python to finish this process.")
ani.save('diffusion_animation.mp4', writer='ffmpeg', dpi=96, fps=60)

# Close the figure to prevent it from being displayed
plt.close(fig)



    


  • FFmpeg android images to movie - error while opening encoder [duplicate]

    12 juin 2018, par trinadh thatakula

    I have been working on android-ffmpeg to convert images into videos and I have found the code I was looking(links below) and I have tried to execute this command

    val cmd5 = arrayOf("-analyzeduration", "1M", "-probesize", "1M", "-y", "-framerate", "1/3.79", "-i", Utils.outputPath + "image%d.jpg", "-i", audio!!.path, "-c:v", "libx264", "-tune", "stillimage", "-c:a", "aac", "-strict", "experimental", "-b:a", "192k", "-pix_fmt", "yuv420p", "-shortest", outputLocation.path)

    and I got error saying

    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

    can any1 please help me

    I have taken code from here -> KotlinFFmpeg and the code snippet is from here -> MovieMaker.kt, please give me a solution, thanks in advance

    here are the logs

       2018-06-12 18:22:24.000 25364-25664/photo.video.maker D/FFmpeg: Running publishing updates method
    2018-06-12 18:22:24.096 25364-25364/photo.video.maker W/System.err: java.io.IOException: ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   built with gcc 4.8 (GCC)
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libavutil      55. 17.103 / 55. 17.103
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libavcodec     57. 24.102 / 57. 24.102
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libavformat    57. 25.100 / 57. 25.100
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libavdevice    57.  0.101 / 57.  0.101
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libavfilter     6. 31.100 /  6. 31.100
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libswscale      4.  0.100 /  4.  0.100
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libswresample   2.  0.101 /  2.  0.101
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   libpostproc    54.  0.100 / 54.  0.100
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: [mjpeg @ 0xf193d000] Changing bps to 8
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: Input #0, image2, from '/storage/emulated/0/Photo Video Maker/image%d.jpg':
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   Duration: 00:02:35.39, start: 0.000000, bitrate: N/A
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1440x1919 [SAR 1:1 DAR 1440:1919], 0.26 tbr, 0.26 tbn, 0.26 tbc
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: [mp3 @ 0xf192d600] Skipping 0 bytes of junk at 61264.
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: [mjpeg @ 0xf193dc00] Changing bps to 8
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: Input #1, mp3, from '/data/user/0/photo.video.maker/files/audio2.mp3':
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   Metadata:
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     album_artist    : Various Artists
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     AccurateRipDiscID: 018-002fb7fe-0279b2d7-47111512-2
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     AccurateRipResult: AccurateRip: Accurate (confidence 10)   [0A38F342]
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     title           : Morning
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     encoded_by      : dBpoweramp Release 14.4
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     publisher       : EMI Classics
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     composer        : Edvard Grieg
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     TMED            : CD (Lossless)
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     genre           : Classical
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     compilation     : 1
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     album           : The Most Relaxing Classical Album in the World...Ever!
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     track           : 2/18
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     disc            : 1/2
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     artist          : Edvard Grieg
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Encoder         : Lame 3.99.5
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     UPC             : 024356665027
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     date            : 1999
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:   Duration: 00:04:18.04, start: 0.025056, bitrate: 321 kb/s
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16p, 320 kb/s
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Metadata:
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:       encoder         : LAME3.99r
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Stream #1:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 747x750 [SAR 1:1 DAR 249:250], 90k tbr, 90k tbn, 90k tbc
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Metadata:
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:       comment         : Cover (front)
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: [swscaler @ 0xf1125000] deprecated pixel format used, make sure you did set range correctly
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: [libx264 @ 0xf193ec00] height not divisible by 2 (1440x1919)
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err: Output #0, mp4, to '/storage/emulated/0/Photo Video Maker/video/movie_1528807939616.mp4':
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Stream #0:0: Video: h264, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 0.26 fps
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Metadata:
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:       encoder         : Lavc57.24.102 libx264
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Stream #0:1: Audio: aac, 0 channels, 128 kb/s
    2018-06-12 18:22:24.097 25364-25364/photo.video.maker W/System.err:     Metadata:
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:       encoder         : Lavc57.24.102 aac
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err: Stream mapping:
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:   Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:   Stream #1:0 -> #0:1 (mp3 (native) -> aac (native))
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err: Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at photo.video.maker.tools.video.MovieMaker$convert$1.onFailure(MovieMaker.kt:78)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.onPostExecute(FFmpegExecuteAsyncTask.java:70)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.onPostExecute(FFmpegExecuteAsyncTask.java:10)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.os.AsyncTask.finish(AsyncTask.java:695)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.os.AsyncTask.-wrap1(Unknown Source:0)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.os.Looper.loop(Looper.java:164)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6494)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
    2018-06-12 18:22:24.098 25364-25364/photo.video.maker W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)