
Recherche avancée
Autres articles (109)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
Sur d’autres sites (14814)
-
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 DiazI 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 LTSI 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 <= 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 < 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) -
Nodejs couldn't find the ffmpeg module for some reason
29 décembre 2020, par ChawchawchawI need to display the live streaming vidoe(rtsp) on a website(http, vue framework) with nodejs and vue framework.


I've looked it up a lot and got the basic logic of what they are and how it works.
So I'm planning on to convert rtsp to hls with nodejs using socket.io and display it on a web.(let me know if there's more efficient way way to do it)


The thing is, for some reason, when I try to develop it in my backend(nodejs), node just keep sends me an error that FFMpeg module wasn't found. It's been over a week.. please help.


Btw, all works with ffmpeg cmd(window powerShell).


How I set up(ffmpeg) :


- 

-
downloaded ffmpeg from https://ffmpeg.org/


-
added to system path : C :\Users\Marie\Desktop\ffmpeg-4.3.1-2020-11-19-full_build\bin


-
tested with window powerShell and converted rstp to m3u8 :


ffmpeg -i 'rtsp ://ip.ip.ip/media/video1' -hls_time 3 -hls_wrap 10 'C :\Users\Marie\Desktop\tmp\hls/streaming.m3u8'










below is a screen shot of no. 3 result




how I set up(nodejs)


- 

- npm i ffmpeg fluent-ffmpeg rtsp-ffmpeg
- I've just copied and pasted the example working code and changed rtsp link to mine. e.g : (https://www.npmjs.com/package/rtsp-ffmpeg)






=> didn't work out, error says can't find ffmpeg module


- 

- set up path manually e.g.) ffmpeg.setFfmpegPath(path)




=> didn't work out. error says can't find ffmpeg module


...
I've seriously tried almost everything like delete, re-install ffmpeg, changed path, added path manyally, .. Please help....


Edited :
package.json


{
 "name": "streaming",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "start": "node app.js"
 },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "express": "^4.17.1",
 "ffmpeg": "0.0.4",
 "fluent-ffmpeg": "^2.1.2",
 "jsmpeg": "^1.0.0",
 "node-media-server": "^2.2.4",
 "node-onvif": "^0.1.7",
 "node-rtsp-stream": "0.0.9",
 "rtsp-ffmpeg": "0.0.15",
 "socket.io": "^3.0.4",
 "ws": "^7.4.1"
 }
}



app.js


const Stream = require('node-rtsp-stream')

// let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/ffmpeg.exe'
// let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/'
let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin'
const ffmpeg = require('fluent-ffmpeg')

ffmpeg.setFfmpegPath(path)

stream = new Stream({
 name: 'name',
 streamUrl: 'rtsp://ip.ip.ip.ip/media/video1',
 wsPort: 9999,
 ffmpegOptions: { // options ffmpeg flags
 '-stats': '', // an option with no neccessary value uses a blank string
 '-r': 30 // options with required values specify the value after the key
 }
})



Error : spawn ffmpeg ENOENT


app.js (for another test)


const app = require( 'express' )(),
 server = require( 'http' ).Server( app ),
 io = require( 'socket.io' )( server ),
 rtsp = require( 'rtsp-ffmpeg' )

process.env.FFMPEG_PATH = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/ffmpeg.exe'
// console.log( rtsp.FFMpeg )

server.listen( 6147 )
var uri = 'rtsp://ip.ip.ip.ip/media/video1',
 stream = new rtsp.FFMpeg( { input: uri } )
io.on( 'connection', function ( socket )
{
 var pipeStream = function ( data )
 {
 socket.emit( 'data', data.toString( 'base64' ) )
 }
 stream.on( 'data', pipeStream )
 socket.on( 'disconnect', function ()
 {
 stream.removeListener( 'data', pipeStream )
 } )
} )
app.get( '/', function ( req, res )
{
 res.sendFile( __dirname + '/index.html' )
} )



error :
FMpeg executable wasn't found. Install this package and check FFMpeg.cmd property


nodejs version = 10.16.3


-
-
Flutter_ffmpeg : At least one output file must be specified
22 mars 2020, par Jehonadab OkpukoroI’m trying to crop a video with Flutter_ffmpeg package using this
-i $inputPath -filter:v "crop=80:60:200:100" -c $outputPath
, but I’m having this error messageRunning FFmpeg with arguments: [-i, /data/user/0/com.timz/app_flutter/Movies/flutter_test/1584827688309.mp4, -filter:v, crop=80:60:200:100, -c, /data/user/0/com.timz/cache/output.mp4].
I/flutter (20728): ffmpeg version git-2020-01-25-fd11dd500
I/flutter (20728): Copyright (c) 2000-2020 the FFmpeg developers
I/flutter (20728):
I/flutter (20728): built with Android (5220042 based on r346389c) clang version 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf643d27dbca1bb228957008617) (https://android.googlesource.com/toolchain/llvm 3c393fe7a7e13b0fba4ac75a01aa683d7a5b11cd) (based on LLVM 8.0.7svn)
I/flutter (20728): configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --disable-v4l2-m2m --disable-outdev=v4l2 --disable-outdev=fbdev --disable-indev=v4l2 --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disa
I/flutter (20728): libavutil 56. 38.100 / 56. 38.100
I/flutter (20728): libavcodec 58. 65.102 / 58. 65.102
I/flutter (20728): libavformat 58. 35.101 / 58. 35.101
I/flutter (20728): libavdevice 58. 9.103 / 58. 9.103
I/flutter (20728): libavfilter 7. 70.101 / 7. 70.101
I/flutter (20728): libswscale 5. 6.100 / 5. 6.100
I/flutter (20728): libswresample 3. 6.100 / 3. 6.100
I/flutter (20728): Trailing option(s) found in the command: may be ignored.
D/flutter-ffmpeg(20728): FFmpeg exited with rc: 1
I/flutter (20728): Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/user/0/com.timz/app_flutter/Movies/flutter_test/1584827688309.mp4':
I/flutter (20728): Metadata:
I/flutter (20728): major_brand :
I/flutter (20728): mp42
I/flutter (20728):
I/flutter (20728): minor_version :
I/flutter (20728): 0
I/flutter (20728):
I/flutter (20728): compatible_brands:
I/flutter (20728): isommp42
I/flutter (20728):
I/flutter (20728): creation_time :
I/flutter (20728): 2020-03-21T21:54:56.000000Z
I/flutter (20728):
I/flutter (20728): com.android.version:
I/flutter (20728): 9
I/flutter (20728):
I/flutter (20728): Duration:
I/flutter (20728): 00:00:07.17
I/flutter (20728): , start:
I/flutter (20728): 0.000000
I/flutter (20728): , bitrate:
I/flutter (20728): 3870 kb/s
I/flutter (20728):
I/flutter (20728): Stream #0:0
I/flutter (20728): (eng)
I/flutter (20728): : Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709), 720x480, 3854 kb/s
I/flutter (20728): , SAR 1:1 DAR 3:2
I/flutter (20728): ,
I/flutter (20728): 29.44 fps,
I/flutter (20728): 29.83 tbr,
I/flutter (20728): 90k tbn,
I/flutter (20728): 180k tbc
I/flutter (20728): (default)
I/flutter (20728):
I/flutter (20728): Metadata:
I/flutter (20728): rotate :
I/flutter (20728): 270
I/flutter (20728):
I/flutter (20728): creation_time :
I/flutter (20728): 2020-03-21T21:54:56.000000Z
I/flutter (20728):
I/flutter (20728): handler_name :
I/flutter (20728): VideoHandle
I/flutter (20728):
I/flutter (20728): Side data:
I/flutter (20728):
I/flutter (20728): displaymatrix: rotation of 90.00 degrees
I/flutter (20728):
I/flutter (20728): Stream #0:1
I/flutter (20728): (eng)
I/flutter (20728): : Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 12 kb/s
I/flutter (20728): (default)
I/flutter (20728):
I/flutter (20728): Metadata:
I/flutter (20728): creation_time :
I/flutter (20728): 2020-03-21T21:54:56.000000Z
I/flutter (20728):
I/flutter (20728): handler_name :
I/flutter (20728): SoundHandle
I/flutter (20728):
I/flutter (20728): At least one output file must be specifiedI’ve been cracking my head with this for the past two days, kindly share your thoughts on what might wrong.