
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (62)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Personnaliser les catégories
21 juin 2013, parFormulaire de création d’une catégorie
Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
On peut modifier ce formulaire dans la partie :
Administration > Configuration des masques de formulaire.
Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...) -
Les statuts des instances de mutualisation
13 mars 2010, parPour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)
Sur d’autres sites (8815)
-
How to set a dictionary based off of subprocess.check_output
5 juillet 2020, par Jessie WilsonThis is a confusing question, however I will try to make it as clear as possible.
Currently when I build my app, if I run it via the .py file it works perfectly. However, once I compile it some parts of my app aren't functioning, specifically this code here.


def ffprobe_run():
global output
global acodec_choices
run = subprocess.check_output("ffprobe " + videoinputquoted + " " + ffprobecommand, universal_newlines=True)
print(run)
if run[-2] == '3':
 acodec_choices = {"One": "1",
 "Two": "2",
 "Three": "3"}
elif run[-2] == '2':
 acodec_choices = {"One": "1",
 "Two": "2",}
elif run[-2] == '1':
 acodec_choices = {"One": "1",}
print(acodec_choices.values())



I am able to get the results I want with this command. Currently that's using FFPROBE to check for the amount of audio tracks there is in a file. It returns values like so


1
2
3



If there is 3 tracks. Or


1 
2



If it's two tracks. I use the command[-2]
which will give me the result of '2'


So I'm taking that result and defining a dictionary to automatically populate/change an OptionMenu


It defines this in my main app


# Audio Stream Selection
 acodec_stream = StringVar(audio_window)
 if ffprobeinfo[-2] == '1':
 acodec_stream_choices = {'Track 1': "-map 0:a:0"}
 elif ffprobeinfo[-2] == '2':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1"}
 elif ffprobeinfo[-2] == '3':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2"}
 elif ffprobeinfo[-2] == '4':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3"}
 elif ffprobeinfo[-2] == '5':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4"}
 elif ffprobeinfo[-2] == '6':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4",
 'Track 6': "-map 0:a:5"}
 elif ffprobeinfo[-2] == '7':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4",
 'Track 6': "-map 0:a:5",
 'Track 7': "-map 0:a:6"}
 elif ffprobeinfo[-2] == '8':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4",
 'Track 6': "-map 0:a:5",
 'Track 7': "-map 0:a:6",
 'Track 8': "-map 0:a:7"}
 elif ffprobeinfo[-2] == '9':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4",
 'Track 6': "-map 0:a:5",
 'Track 7': "-map 0:a:6",
 'Track 8': "-map 0:a:7",
 'Track 9': "-map 0:a:8"}
 elif ffprobeinfo[-2] == '10':
 acodec_stream_choices = {'Track 1': "-map 0:a:0",
 'Track 2': "-map 0:a:1",
 'Track 3': "-map 0:a:2",
 'Track 4': "-map 0:a:3",
 'Track 5': "-map 0:a:4",
 'Track 6': "-map 0:a:5",
 'Track 7': "-map 0:a:6",
 'Track 8': "-map 0:a:7",
 'Track 9': "-map 0:a:8",
 'Track 10': "-map 0:a:9"}
 acodec_stream.set('Track 1') # set the default option
 acodec_stream_label = Label(audio_window, text="Track :")
 acodec_stream_label.grid(row=0, column=0, columnspan=1, padx=5, pady=5)
 acodec_stream_menu = OptionMenu(audio_window, acodec_stream, *acodec_stream_choices.keys())
 acodec_stream_menu.grid(row=1, column=0, columnspan=1, padx=5, pady=5)



This is all working great, If I am running the app via the .py file. Once I compile it's missing the entire defined dictionary selection.


This is what it's supposed to look like
enter image description here


However, this is what it looks like with the code above. enter image description here


If I define the dictionary myself, it works fine. However, then I can't automatically input the correct amount of available audio tracks.


I hope this isn't too much code. I'm very new at this.


EDIT :


If I compile via pyinstaller and remove the -w flag, the program runs correctly, shows the tracks.


I'm assuming I'm not using subprocess/calling something correctly. The program I don't think is calling to FFPROBE when it doesn't have a console, vs calling it and getting the value when it has it's own console.


-
How can fix CalledProcessError : in ffmpeg
7 décembre 2020, par MarioI hope someone can help to troubleshoot this problem. I'm trying to save the loss plots out of Keras in the form of the following animation.






but I have been facing the following error, and ultimately I can't save the animation :



MovieWriter stderr:
[h264_v4l2m2m @ 0x55a67176f430] Could not find a valid device
[h264_v4l2m2m @ 0x55a67176f430] can't configure encoder
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

---------------------------------------------------------------------------
BrokenPipeError Traceback (most recent call last)
~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in saving(self, fig, outfile, dpi, *args, **kwargs)
 229 try:
--> 230 yield self
 231 finally:

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs, progress_callback)
 1155 frame_number += 1
-> 1156 writer.grab_frame(**savefig_kwargs)
 1157 

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in grab_frame(self, **savefig_kwargs)
 383 self.fig.savefig(self._frame_sink(), format=self.frame_format,
--> 384 dpi=self.dpi, **savefig_kwargs)
 385 

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/figure.py in savefig(self, fname, transparent, **kwargs)
 2179 
-> 2180 self.canvas.print_figure(fname, **kwargs)
 2181 

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, **kwargs)
 2081 bbox_inches_restore=_bbox_inches_restore,
-> 2082 **kwargs)
 2083 finally:

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py in print_raw(self, filename_or_obj, *args, **kwargs)
 445 cbook.open_file_cm(filename_or_obj, "wb") as fh:
--> 446 fh.write(renderer._renderer.buffer_rgba())
 447 

BrokenPipeError: [Errno 32] Broken pipe

During handling of the above exception, another exception occurred:

CalledProcessError Traceback (most recent call last)
 in <module>
 17 print(f'{model_type.upper()} Train Time: {Timer} sec')
 18 
---> 19 create_loss_animation(model_type, hist.history['loss'], hist.history['val_loss'], epoch)
 20 
 21 evaluate(model, trainX, trainY, testX, testY, scores_train, scores_test)

 in create_loss_animation(model_type, loss_hist, val_loss_hist, epoch)
 34 
 35 ani = matplotlib.animation.FuncAnimation(fig, animate, fargs=(l1, l2, loss, val_loss, title), repeat=True, interval=1000, repeat_delay=1000)
---> 36 ani.save(f'loss_animation_{model_type}_oneDataset.mp4', writer=writer)

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs, progress_callback)
 1154 progress_callback(frame_number, total_frames)
 1155 frame_number += 1
-> 1156 writer.grab_frame(**savefig_kwargs)
 1157 
 1158 # Reconnect signal for first draw if necessary

~/anaconda3/envs/CR7/lib/python3.6/contextlib.py in __exit__(self, type, value, traceback)
 97 value = type()
 98 try:
---> 99 self.gen.throw(type, value, traceback)
 100 except StopIteration as exc:
 101 # Suppress StopIteration *unless* it's the same exception that

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in saving(self, fig, outfile, dpi, *args, **kwargs)
 230 yield self
 231 finally:
--> 232 self.finish()
 233 
 234 

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in finish(self)
 365 def finish(self):
 366 '''Finish any processing for writing the movie.'''
--> 367 self.cleanup()
 368 
 369 def grab_frame(self, **savefig_kwargs):

~/anaconda3/envs/CR7/lib/python3.6/site-packages/matplotlib/animation.py in cleanup(self)
 409 if self._proc.returncode:
 410 raise subprocess.CalledProcessError(
--> 411 self._proc.returncode, self._proc.args, out, err)
 412 
 413 @classmethod

CalledProcessError: Command '['/usr/bin/ffmpeg', '-f', 'rawvideo', '-vcodec', 'rawvideo', '-s', '720x720', '-pix_fmt', 
'rgba', '-r', '5', '-loglevel', 'error', '-i', 'pipe:', '-vcodec', 'h264', '-pix_fmt', 'yuv420p', '-b', '800k', '-y', 
'loss_animation_CNN_oneDataset.mp4']' returned non-zero exit status 1.
</module>



I tried to ignore the error by this answer but it seems it's not the case. I also checked similar case but its answer for getting a static git binary is not my cas as well since not especial converting PNG to MP4 !



My code is as follows :



plt.rcParams['animation.ffmpeg_path'] = '/usr/bin/ffmpeg'

def animate(i, data1, data2, line1, line2):
 temp1 = data1.iloc[:int(i+1)]
 temp2 = data2.iloc[:int(i+1)]

 line1.set_data(temp1.index, temp1.value)
 line2.set_data(temp2.index, temp2.value)

 return (line1, line2)


def create_loss_animation(model_type, data1, data2):
 fig = plt.figure()
 plt.title(f'Loss on Train & Test', fontsize=25)
 plt.xlabel('Epoch', fontsize=20)
 plt.ylabel('Loss MSE for Sx-Sy & Sxy', fontsize=20)
 plt.xlim(min(data1.index.min(), data2.index.min()), max(data1.index.max(), data2.index.max()))
 plt.ylim(min(data1.value.min(), data2.value.min()), max(data1.value.max(), data2.value.max()))

 l1, = plt.plot([], [], 'o-', label='Train Loss', color='b', markevery=[-1])
 l2, = plt.plot([], [], 'o-', label='Test Loss', color='r', markevery=[-1])
 plt.legend(loc='center right', fontsize='xx-large')

 Writer = animation.writers['ffmpeg']
 writer = Writer(fps=5, bitrate=1800)

 ani = matplotlib.animation.FuncAnimation(fig, animate, fargs=(data1, data2, l1, l2), repeat=True, interval=1000, repeat_delay=1000)
 ani.save(f'{model_type}.mp4', writer=writer)

# create datasets
x = np.linspace(0,150,50)
y1 = 41*np.exp(-x/20)
y2 = 35*np.exp(-x/50)

my_data_number_1 = pd.DataFrame({'x':x, 'value':y1}).set_index('x')
my_data_number_2 = pd.DataFrame({'x':x, 'value':y2}).set_index('x')

create_loss_animation('test', my_data_number_1, my_data_number_2)



-
x86 : Add missing colons after assembly labels
17 mars 2016, par Diego Biurrunx86 : Add missing colons after assembly labels
This fixes many warnings of the sort
warning : label alone on a line without a colon might be in error