Recherche avancée

Médias (91)

Autres articles (82)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains 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 ;

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (8955)

  • Firebase Functions : FFMPEG Images to Video [closed]

    28 août 2020, par Vinayak Vanarse

    I am testing Firebase cloud functions ability to process FFmpeg commands.

    


    I have a set of images in .jpeg format (around 92). They have been named in sequenced e.g. Imgx_1.jpeg, Imgx_2.jpeg … Imgx_92.jpeg.

    


    Each image is on an average 125kb to 200kb in size.

    


    Approach : Pretty straightforward one ...

    


      

    1. Download the images in cloud functions into /tmp folder (got from os.tmpdir()). For now I am doing it sequentially (I know not a good design but let’s go by it. Later can convert to promise.all for async processing).
    2. 


    3. Spawn the FFMPEG command with input from /tmp for images and output to /tmp as video
    4. 


    5. Push the /tmp video into bucket.
    6. 


    


    On my mac ... it works perfectly fine with the same command and files.

    


    Issue :

    


      

    1. FFMPEG command exit with code 1 in firebase/google cloud function.

      


      Spawn error : "name" :"ChildProcessError","code":1,"childProcess" :

      


    2. 


    


    Firebase functions (3.11.0) :

    


    "engines": {
  "node": "10"
 },


    


    Dependencies :

    


    "child-process-promise": "^2.2.1",
"@ffmpeg-installer/ffmpeg": "^1.0.20",


    


    Code Snippet to reproduce :

    


    const spawn = require(&#x27;child-process-promise&#x27;).spawn;&#xA;const { Storage } = require(&#x27;@google-cloud/storage&#x27;);&#xA;var configStorage = {&#xA;  projectId: &#x27;<your project="project">&#x27;,&#xA;  keyFilename: &#x27;<service>.json&#x27;&#xA;};&#xA;const gcs = new Storage(configStorage);&#xA;const path = require(&#x27;path&#x27;);&#xA;const os = require(&#x27;os&#x27;);&#xA;const fs = require(&#x27;fs&#x27;);&#xA;const mkdirp = require(&#x27;mkdirp-promise&#x27;);&#xA;&#xA;const ffmpegPath = require(&#x27;@ffmpeg-installer/ffmpeg&#x27;).path;&#xA;&#xA;&#xA;Var idx = 1;&#xA;var ext = &#x27;.jpeg&#x27;;&#xA;const bucket = gcs.bucket(&#x27;Your_bucket&#x27;);&#xA;const files = [<urls of="of" files="files">];&#xA;Promise.all(files.map(async (file) => {&#xA;  var finalName = &#x27;Imgx&#x27; &#x2B; &#x27;_&#x27; &#x2B; idxs &#x2B; ext;&#xA;  await file.download({ destination: tempDir &#x2B; &#x27;/&#x27; &#x2B; finalName });&#xA;  idx&#x2B;&#x2B;;&#xA;})&#xA;).then(async (result) => {&#xA;  console.log(`cmd -> ffmpegPath [&#x27;-start_number 1&#x27; &#x27;-i&#x27;&#xA;    ${tempDir}/Imgx_%d${ext}&#xA;    ${tempDir}/video/videoFile.mp4&#x27;]`);&#xA;&#xA;  await spawn(ffmpegPath,&#xA;   [&#x27;-start_number 1&#x27;, &#x27;-i&#x27;, tempDir &#x2B; &#x27;/Imgx_%d&#x27; &#x2B; ext,&#xA;    tempDir &#x2B; &#x27;/video/videoFile.mp4&#x27;]);&#xA;&#xA;  await bucket.upload(tempDir &#x2B; &#x27;/video/videoFile.mp4&#x27;, {&#xA;    destination: ‘video/output.mp4&#x27;&#xA;  });&#xA;&#xA;});&#xA;</urls></service></your>

    &#xA;

  • Matomo’s new story : our stronger vision for the future

    31 octobre 2018, par Matthieu Aubry — Community

    Over the past year, the team here at Matomo have been working on a very exciting project we’d love to share with you.

    It’s to do with the impact we hope for Matomo to have.

    As you all know, the world changes at too fast a pace. New technologies, new phones, new everything in the blink of an eye. That’s not what will be happening here.

    Instead, we’d like to believe it’s a refresh. Taking stock of how far we’ve come, what we’ve achieved so far, and how far we still have to go.

    So we’re rebranding.

    The rebrand

    Like a caterpillar emerging from a cocoon, we hope to be a reborn analytics butterfly.

    As a result of some careful planning and reflection we’ll be updating our logo, website and reasserting our voice.

    It’s our chance to look at ourselves in a new light. We are a mighty analytics platform and it should be known we’re comparable to the likes of Google Analytics 360.

    Along with the refresh of imagery, we listened to your feedback about the confusion between our two identities, so we’re also taking this opportunity to unite both the business brand of Innocraft with the community brand Matomo into one website.

    It makes it easier for people from all walks of life, either as individuals or in large companies, to see us as being able to get down to business with a powerful analytics tool, as well as think on behalf of our community.

    We’re the same, but with slight changes in our appearance and a stronger vision for the future.

    How far we’ve come …

    When we started out, it was about building a community around a movement. From the beginning we were concerned about data ownership, privacy and all things that came with that.

    With the help of our community and contributors, we turned Matomo (formerly Piwik) into the trusted #1 open source analytics tool it is today. We’re committed to our community. But we also need to do more.

    We’ve been niche and happy staying small, but now we need to take action and start shouting far and wide about what we do.

    We once said we need : “To create, as a community, the leading international open source digital analytics platform, that gives every user full control of their data.”

    We believe we’ve done that, so we’ll take it one step further.

    A web analytics revolution has begun …

    Begun ?

    The line signifies a new beginning.

    This is us standing up and reasserting our voice.

    Our new chapter.

    The rebrand is our chance to show that, yes, the world is changing, but when it comes to privacy, there are matters meant to be sacred. Privacy is a human right.

    What makes it worse in this ever-changing landscape, with data breaches and stolen information, is that losing control of our data is scary, we have a right to know what’s going on with our information and this must start with us.

    We know we need to champion this cause for privacy and data ownership.

    We came together as a community and built something powerful, a free open-source analytics platform, that kept the integrity of the people using it.

    It’s important for us now to feel more empowered to believe in our right to privacy, information and our ability to act independently of large corporations.

    The time is here for us to speak up and take back control.

    Once more, we need to come together to build something even more powerful, a safer online society.

    Join us.

    Sincerely,
    Matthieu Aubry on behalf of the Matomo team

  • How to sync network audio with a different network video and play it with chewie

    26 mars 2023, par Rudra Sharma

    I am trying to stream a reddit videos on my app. For that reason I am using Reddit API but it is only giving the video url like 'redd.it/mpym0z9q8opa1/DASH_1080.mp4 ?source=fallback' with no audio but after some research I found out that we can get audio url by editing video url 'redd.it/mpym0z9q8opa1/DASH_audio.mp4 ?source=fallback'.

    &#xA;

    Now I have both audio and video url with me how can I sync them on network and stream them on my app using chewie package (video player).

    &#xA;

    This my code so far

    &#xA;

    import &#x27;dart:async&#x27;;&#xA;import &#x27;dart:convert&#x27;;&#xA;import &#x27;package:http/http.dart&#x27; as http;&#xA;import &#x27;package:flutter/material.dart&#x27;;&#xA;import &#x27;package:video_player/video_player.dart&#x27;;&#xA;import &#x27;package:chewie/chewie.dart&#x27;;&#xA;&#xA;void main() => runApp(MyApp());&#xA;&#xA;class MyApp extends StatelessWidget {&#xA;  @override&#xA;  Widget build(BuildContext context) {&#xA;    return MaterialApp(&#xA;      title: &#x27;Reddit Videos&#x27;,&#xA;      theme: ThemeData(&#xA;        primarySwatch: Colors.blue,&#xA;        visualDensity: VisualDensity.adaptivePlatformDensity,&#xA;      ),&#xA;      home: VideoPlayerScreen(),&#xA;    );&#xA;  }&#xA;}&#xA;&#xA;class VideoPlayerScreen extends StatefulWidget {&#xA;  @override&#xA;  _VideoPlayerScreenState createState() => _VideoPlayerScreenState();&#xA;}&#xA;&#xA;class _VideoPlayerScreenState extends State<videoplayerscreen> {&#xA;  final List<string> _videoUrls = [];&#xA;&#xA;  @override&#xA;  void initState() {&#xA;    super.initState();&#xA;    _loadVideos();&#xA;  }&#xA;&#xA;  Future<void> _loadVideos() async {&#xA;    try {&#xA;      final videoUrls =&#xA;          await RedditApi.getVideoUrlsFromSubreddit(&#x27;aww&#x27;);&#xA;&#xA;      setState(() {&#xA;        _videoUrls.addAll(videoUrls);&#xA;      });&#xA;    } catch (e) {&#xA;      print(e);&#xA;    }&#xA;  }&#xA;&#xA;  @override&#xA;  Widget build(BuildContext context) {&#xA;    return Scaffold(&#xA;      appBar: AppBar(&#xA;        title: Text(&#x27;Reddit Videos&#x27;),&#xA;      ),&#xA;      body: SafeArea(&#xA;        child: _videoUrls.isNotEmpty&#xA;            ? _buildVideosList()&#xA;            : Center(child: CircularProgressIndicator()),&#xA;      ),&#xA;    );&#xA;  }&#xA;&#xA;  Widget _buildVideosList() {&#xA;    return ListView.builder(&#xA;      itemCount: _videoUrls.length,&#xA;      itemBuilder: (context, index) {&#xA;        return Padding(&#xA;          padding: const EdgeInsets.all(8.0),&#xA;          child: Chewie(&#xA;            controller: ChewieController(&#xA;              videoPlayerController: VideoPlayerController.network(&#xA;                _videoUrls[index],&#xA;              ),&#xA;              aspectRatio: 9 / 16,&#xA;              autoPlay: true,&#xA;              looping: true,&#xA;              autoInitialize: true,&#xA;            ),&#xA;          ),&#xA;        );&#xA;      },&#xA;    );&#xA;  }&#xA;}&#xA;&#xA;class RedditApi {&#xA;  static const String BASE_URL = &#x27;https://www.reddit.com&#x27;;&#xA;  static const String CLIENT_ID = &#x27;id&#x27;;&#xA;  static const String CLIENT_SECRET = &#x27;secret&#x27;;&#xA;&#xA;  static Future> getVideoUrlsFromSubreddit(&#xA;      String subredditName) async {&#xA;    final response = await http.get(&#xA;        Uri.parse(&#x27;$BASE_URL/r/$subredditName/top.json?limit=10&#x27;),&#xA;        headers: {&#x27;Authorization&#x27;: &#x27;Client-ID $CLIENT_ID&#x27;});&#xA;&#xA;    if (response.statusCode == 200) {&#xA;      final jsonData = jsonDecode(response.body);&#xA;      final postsData = jsonData[&#x27;data&#x27;][&#x27;children&#x27;];&#xA;&#xA;      final videoUrls = <string>[];&#xA;&#xA;      for (var postData in postsData) {&#xA;        if (postData[&#x27;data&#x27;][&#x27;is_video&#x27;]) {&#xA;          videoUrls.add(postData[&#x27;data&#x27;][&#x27;media&#x27;][&#x27;reddit_video&#x27;]&#xA;              [&#x27;fallback_url&#x27;]);&#xA;        }&#xA;      }&#xA;&#xA;      return videoUrls;&#xA;    } else {&#xA;      throw Exception("Failed to load videos from subreddit");&#xA;    }&#xA;  }&#xA;}&#xA;</string></void></string></videoplayerscreen>

    &#xA;

    I think the code is self explainatory about what I am trying to achieve (Trying to make a client for reddit).

    &#xA;