Recherche avancée

Médias (1)

Mot : - Tags -/framasoft

Autres articles (111)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

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

Sur d’autres sites (12825)

  • File Decryption in (AESMode.ctr) mode showing Exception Failed to decode data using encoding 'utf-8' in dart ?

    20 novembre 2020, par Jai

    While decoding the video file using aes-ctr mode am getting error like below,

    


    Unhandled Exception: FileSystemException: Failed to decode data using encoding 'utf-8'

    


    Used ffmpeg for encrypting file :

    


    ffmpeg -i samplevideo.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr -encryption_key 76a6c65c5ea762046bd749a2e632ccbb -encryption_kid a7e61c373e219033c21091fa607bf3b8 enc_v1_file.mp4

    


    Used Dart to decode video file :

    


    Future<string> decryptFile(filePath) async {&#xA;    // filePath - Local encrypted file path&#xA;    var encodedKey = &#x27;NzZhNmM2NWM1ZWE3NjIwNDZiZDc0OWEyZTYzMmNjYmI=&#x27;;&#xA;    var encodedIv = &#x27;YTdlNjFjMzczZTIxOTAzM2MyMTA5MWZhNjA3YmYzYjg=&#x27;;&#xA;    var encryptedBase64EncodedString = new File(filePath).readAsStringSync();&#xA;    var decoded = base64.decode(encryptedBase64EncodedString); // Error in this line&#xA;    final key1 = enc.Key.fromBase64(encodedKey);&#xA;    final iv = enc.IV.fromBase64(encodedIv);&#xA;    final encrypter = enc.Encrypter(enc.AES(key1, mode: enc.AESMode.ctr));&#xA;    final decrypted = encrypter.decryptBytes(enc.Encrypted(decoded), iv: iv);&#xA;    final filename = &#x27;${p.basenameWithoutExtension(filePath)}.mp4&#x27;;&#xA;    final directoryName = p.dirname(filePath);&#xA;    final newFilePath = p.join(directoryName, filename);&#xA;    var newFile = new File(newFilePath);&#xA;    await newFile.writeAsBytes(decrypted);&#xA;    return newFilePath;&#xA;}&#xA;</string>

    &#xA;

  • Adding Text to Video with ffmpeg in Flutter

    9 mars 2024, par Aiman

    I am trying to add text to a video using ffmpeg package but it returns an error i.e. Return Code 1&#xA;Here's my code.

    &#xA;

      final videoPath = _controller.file.path;&#xA;  final outputName = videoPath.hashCode.toString();&#xA;&#xA;  final output =&#xA;        File(&#x27;${(await getTemporaryDirectory()).path}/$outputName.mp4&#x27;);&#xA;&#xA;  String command =&#xA;        "-y -i $videoPath -filter_complex &#x27;[0]scale=540:-1[s];[s]drawtext=fontfile=/storage/emulated/0/Download/SuperDessert.ttf:text=&#x27;MY_TEXT&#x27;:fontsize=24:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2&#x27; ${output.path}";&#xA;&#xA;  final session = await FFmpegKit.execute(command);&#xA;&#xA;  final returnCode = await session.getReturnCode();&#xA;&#xA;  if (ReturnCode.isSuccess(returnCode)) {&#xA;    log("Success full text added");&#xA;  } else {&#xA;    log("Error adding text: ${await session.getFailStackTrace()}");&#xA;  }&#xA;

    &#xA;

    I have tried changing the output directory, changed fontfile to font

    &#xA;

  • WARN : Tried to pass invalid video frame, marking as broken : Your frame has data type int64, but we require uint8

    5 septembre 2019, par Tavo Diaz

    I am doing some Udemy AI courses and came across with one that "teaches" a bidimensional cheetah how to walk. I was doing the exercises on my computer, but it takes too much time. I decided to use Google Cloud to run the code and see the results some hours after. Nevertheless, when I run the code I get the following error " WARN : Tried to pass
    invalid video frame, marking as broken : Your frame has data type int64, but we require uint8 (i.e. RGB values from 0-255)".

    After the code is executed, I see into the folder and I don’t see any videos (just the meta info).

    Some more info (if it helps) :
    I have a 1 CPU (4g), SSD Ubuntu 16.04 LTS

    I have not tried anything yet to solve it because I don´t know what to try. Im looking for solutions on the web, but nothing I could try.

    This is the code

    import os
    import numpy as np
    import gym
    from gym import wrappers
    import pybullet_envs


    class Hp():
       def __init__(self):
           self.nb_steps = 1000
           self.episode_lenght =   1000
           self.learning_rate = 0.02
           self.nb_directions = 32
           self.nb_best_directions = 32
           assert self.nb_best_directions &lt;= self.nb_directions
           self.noise = 0.03
           self.seed = 1
           self.env_name = 'HalfCheetahBulletEnv-v0'


    class Normalizer():
       def __init__(self, nb_inputs):
           self.n = np.zeros(nb_inputs)
           self.mean = np.zeros(nb_inputs)
           self.mean_diff = np.zeros(nb_inputs)
           self.var = np.zeros(nb_inputs)

       def observe(self, x):
           self.n += 1.
           last_mean = self.mean.copy()
           self.mean += (x - self.mean) / self.n
           #abajo es el online numerator update
           self.mean_diff += (x - last_mean) * (x - self.mean)
           #abajo online computation de la varianza
           self.var = (self.mean_diff / self.n).clip(min = 1e-2)  

       def normalize(self, inputs):
           obs_mean = self.mean
           obs_std = np.sqrt(self.var)
           return (inputs - obs_mean) / obs_std

    class Policy():
       def __init__(self, input_size, output_size):
           self.theta = np.zeros((output_size, input_size))

       def evaluate(self, input, delta = None, direction = None):
           if direction is None:
               return self.theta.dot(input)
           elif direction == 'positive':
               return (self.theta + hp.noise * delta).dot(input)
           else:
               return (self.theta - hp.noise * delta).dot(input)

       def sample_deltas(self):
           return [np.random.randn(*self.theta.shape) for _ in range(hp.nb_directions)]

       def update (self, rollouts, sigma_r):
           step = np.zeros(self.theta.shape)
           for r_pos, r_neg, d in rollouts:
               step += (r_pos - r_neg) * d
           self.theta += hp.learning_rate / (hp.nb_best_directions * sigma_r) * step


    def explore(env, normalizer, policy, direction = None, delta = None):
       state = env.reset()
       done = False
       num_plays = 0.
       #abajo puede ser promedio de las rewards
       sum_rewards = 0
       while not done and num_plays &lt; hp.episode_lenght:
           normalizer.observe(state)
           state = normalizer.normalize(state)
           action = policy.evaluate(state, delta, direction)
           state, reward, done, _ = env.step(action)
           reward = max(min(reward, 1), -1)
           #abajo sería poner un promedio
           sum_rewards += reward
           num_plays += 1
       return sum_rewards

    def train (env, policy, normalizer, hp):
       for step in range(hp.nb_steps):
           #iniciar las perturbaciones deltas y los rewards positivos/negativos
           deltas = policy.sample_deltas()
           positive_rewards = [0] * hp.nb_directions
           negative_rewards = [0] * hp.nb_directions
           #sacar las rewards en la dirección positiva
           for k in range(hp.nb_directions):
               positive_rewards[k] = explore(env, normalizer, policy, direction = 'positive', delta = deltas[k])
           #sacar las rewards en dirección negativo
           for k in range(hp.nb_directions):
               negative_rewards[k] = explore(env, normalizer, policy, direction = 'negative', delta = deltas[k])
           #sacar todas las rewards para sacar la desvest
           all_rewards = np.array(positive_rewards + negative_rewards)
           sigma_r = all_rewards.std()
           #acomodar los rollauts por el max (r_pos, r_neg) y seleccionar la mejor dirección
           scores = {k:max(r_pos, r_neg) for k, (r_pos, r_neg) in enumerate(zip(positive_rewards, negative_rewards))}
           order = sorted(scores.keys(), key = lambda x:scores[x])[:hp.nb_best_directions]
           rollouts = [(positive_rewards[k], negative_rewards[k], deltas[k]) for k in order]
           #actualizar policy
           policy.update (rollouts, sigma_r)
           #poner el final reward del policy luego del update
           reward_evaluation = explore (env, normalizer, policy)
           print('Paso: ', step, 'Lejania: ', reward_evaluation)

    def mkdir(base, name):
       path = os.path.join(base, name)
       if not os.path.exists(path):
           os.makedirs(path)
       return path
    work_dir = mkdir('exp', 'brs')
    monitor_dir = mkdir(work_dir, 'monitor')

    hp = Hp()
    np.random.seed(hp.seed)
    env = gym.make(hp.env_name)
    env = wrappers.Monitor(env, monitor_dir, force = True)
    nb_inputs = env.observation_space.shape[0]
    nb_outputs = env.action_space.shape[0]
    policy = Policy(nb_inputs, nb_outputs)
    normalizer = Normalizer(nb_inputs)
    train(env, policy, normalizer, hp)