Recherche avancée

Médias (2)

Mot : - Tags -/media

Autres articles (98)

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

  • Is there a way to program the (Download) button to save a group of images as a one video ?

    9 février 2024, par Lina Al-fawzan

    This is my entire code. Its function is that everything the user writes or says will have images returned to him according to what he wrote/said, and the next image will be shown to him after he presses “close,” and he can save each image separately. I want to make a simple modification to it. First, instead of a close button, I want each image to be displayed for 3 seconds and the next one to be displayed, and so on... “all of them in one window”, and for the “download” button to be when the last image is displayed, and for them all to be saved in one video.

    


    import &#x27;package:flutter/material.dart&#x27;;&#xA;import &#x27;package:flutter/services.dart&#x27; show rootBundle;&#xA;import &#x27;dart:convert&#x27;;&#xA;import &#x27;dart:typed_data&#x27;;&#xA;import &#x27;package:image_gallery_saver/image_gallery_saver.dart&#x27;;&#xA;import &#x27;package:speech_to_text/speech_to_text.dart&#x27; as stt;&#xA;&#xA;void main() {&#xA;  runApp(MyApp());&#xA;}&#xA;&#xA;class MyApp extends StatelessWidget {&#xA;  @override&#xA;  Widget build(BuildContext context) {&#xA;    return MaterialApp(&#xA;      home: MyHomePage(),&#xA;    );&#xA;  }&#xA;}&#xA;&#xA;class MyHomePage extends StatefulWidget {&#xA;  @override&#xA;  _MyHomePageState createState() => _MyHomePageState();&#xA;}&#xA;&#xA;class _MyHomePageState extends State<myhomepage> {&#xA;  TextEditingController _textEditingController = TextEditingController();&#xA;  late stt.SpeechToText _speech;&#xA;  bool _isListening = false;&#xA;&#xA;  @override&#xA;  void initState() {&#xA;    super.initState();&#xA;    _speech = stt.SpeechToText();&#xA;  }&#xA;&#xA;  void _listen() async {&#xA;    if (!_isListening) {&#xA;      bool available = await _speech.initialize(&#xA;        onStatus: (val) => print(&#x27;onStatus: $val&#x27;),&#xA;        onError: (val) => print(&#x27;onError: $val&#x27;),&#xA;      );&#xA;      if (available) {&#xA;        setState(() => _isListening = true);&#xA;        _speech.listen(&#xA;          onResult: (val) => setState(() {&#xA;            _textEditingController.text = val.recognizedWords;&#xA;            if (val.hasConfidenceRating &amp;&amp; val.confidence > 0) {&#xA;              _showImages(val.recognizedWords);&#xA;            }&#xA;          }),&#xA;        );&#xA;      }&#xA;    } else {&#xA;      setState(() => _isListening = false);&#xA;      _speech.stop();&#xA;    }&#xA;  }&#xA;&#xA;  @override&#xA;  Widget build(BuildContext context) {&#xA;    return Scaffold(&#xA;      appBar: AppBar(&#xA;        title: Text(&#x27;Image Viewer&#x27;),&#xA;      ),&#xA;      body: Padding(&#xA;        padding: const EdgeInsets.all(16.0),&#xA;        child: Column(&#xA;          mainAxisAlignment: MainAxisAlignment.center,&#xA;          children: [&#xA;            TextField(&#xA;              controller: _textEditingController,&#xA;              decoration: const InputDecoration(&#xA;                labelText: &#x27;Enter a word&#x27;,&#xA;              ),&#xA;            ),&#xA;            SizedBox(height: 16.0),&#xA;            ElevatedButton(&#xA;              onPressed: () {&#xA;                String userInput = _textEditingController.text;&#xA;                _showImages(userInput);&#xA;              },&#xA;              child: Text(&#x27;Show Images&#x27;),&#xA;            ),&#xA;            SizedBox(height: 16.0),&#xA;            ElevatedButton(&#xA;              onPressed: _listen,&#xA;              child: Text(_isListening ? &#x27;Stop Listening&#x27; : &#x27;Start Listening&#x27;),&#xA;            ),&#xA;          ],&#xA;        ),&#xA;      ),&#xA;    );&#xA;  }&#xA;&#xA;Future<void> _showImages(String userInput) async {&#xA;  String directoryPath = &#x27;assets/output_images/&#x27;;&#xA;  print("User Input: $userInput");&#xA;  print("Directory Path: $directoryPath");&#xA;&#xA;  List<string> assetFiles = await rootBundle&#xA;      .loadString(&#x27;AssetManifest.json&#x27;)&#xA;      .then((String manifestContent) {&#xA;    final Map manifestMap = json.decode(manifestContent);&#xA;    return manifestMap.keys&#xA;        .where((String key) => key.startsWith(directoryPath))&#xA;        .toList();&#xA;  });&#xA;&#xA;  List<string> imageFiles = assetFiles.where((String assetPath) =>&#xA;      assetPath.toLowerCase().endsWith(&#x27;.jpg&#x27;) ||&#xA;      assetPath.toLowerCase().endsWith(&#x27;.gif&#x27;)).toList();&#xA;&#xA;  List<string> words = userInput.split(&#x27; &#x27;); // Tokenize the sentence into words&#xA;&#xA;  for (String word in words) {&#xA;    String wordImagePath = &#x27;$directoryPath$word.gif&#x27;;&#xA;&#xA;    if (imageFiles.contains(wordImagePath)) {&#xA;      await _showDialogWithImage(wordImagePath);&#xA;    } else {&#xA;      for (int i = 0; i &lt; word.length; i&#x2B;&#x2B;) {&#xA;        String letter = word[i];&#xA;        String letterImagePath = imageFiles.firstWhere(&#xA;          (assetPath) => assetPath.toLowerCase().endsWith(&#x27;$letter.jpg&#x27;),&#xA;          orElse: () => &#x27;&#x27;,&#xA;        );&#xA;        if (letterImagePath.isNotEmpty) {&#xA;          await _showDialogWithImage(letterImagePath);&#xA;        } else {&#xA;          print(&#x27;No image found for $letter&#x27;);&#xA;        }&#xA;      }&#xA;    }&#xA;  }&#xA;}&#xA;&#xA;  &#xA;&#xA;  Future<void> _showDialogWithImage(String imagePath) async {&#xA;    await showDialog<void>(&#xA;      context: context,&#xA;      builder: (BuildContext context) {&#xA;        return AlertDialog(&#xA;          content: Image.asset(imagePath),&#xA;          actions: [&#xA;            TextButton(&#xA;              onPressed: () {&#xA;                Navigator.of(context).pop();&#xA;              },&#xA;              child: Text(&#x27;Close&#x27;),&#xA;            ),&#xA;            TextButton(&#xA;              onPressed: () async {&#xA;                await _downloadImage(imagePath);&#xA;                Navigator.of(context).pop();&#xA;              },&#xA;              child: Text(&#x27;Download&#x27;),&#xA;            ),&#xA;          ],&#xA;        );&#xA;      },&#xA;    );&#xA;  }&#xA;&#xA;  Future<void> _downloadImage(String assetPath) async {&#xA;    try {&#xA;      final ByteData data = await rootBundle.load(assetPath);&#xA;      final List<int> bytes = data.buffer.asUint8List();&#xA;&#xA;      final result = await ImageGallerySaver.saveImage(Uint8List.fromList(bytes));&#xA;&#xA;      if (result != null) {&#xA;        ScaffoldMessenger.of(context).showSnackBar(&#xA;          SnackBar(&#xA;            content: Text(&#x27;Image saved to gallery.&#x27;),&#xA;          ),&#xA;        );&#xA;      } else {&#xA;        ScaffoldMessenger.of(context).showSnackBar(&#xA;          SnackBar(&#xA;            content: Text(&#x27;Failed to save image to gallery.&#x27;),&#xA;          ),&#xA;        );&#xA;      }&#xA;    } catch (e) {&#xA;      print(&#x27;Error downloading image: $e&#x27;);&#xA;    }&#xA;  }&#xA;}&#xA;&#xA;</int></void></void></void></string></string></string></void></myhomepage>

    &#xA;

  • VP8 Codec SDK "Aylesbury" Release

    28 octobre 2010, par noreply@blogger.com (John Luther)

    Today we’re making available "Aylesbury," our first named release of libvpx, the VP8 codec SDK. VP8 is the video codec used in WebM. Note that the VP8 specification has not changed, only the SDK.

    What’s an Aylesbury ? It’s a breed of duck. We like ducks, so we plan to use duck-related names for each major libvpx release, in alphabetical order. Our goal is to have one named release of libvpx per calendar quarter, each with a theme.

    You can download the Aylesbury libvpx release from our Downloads page or check it out of our Git repository and build it yourself. In the coming days Aylesbury will be integrated into all of the WebM project components (DirectShow filters, QuickTime plugins, etc.). We encourage anyone using our components to upgrade to the Aylesbury releases.

    For Aylesbury the theme was faster decoder, better encoder. We used our May 19, 2010 launch release of libvpx as the benchmark. We’re very happy with the results (see graphs below) :

    • 20-40% (average 28%) improvement in libvpx decoder speed
    • Over 7% overall PSNR improvement (6.3% SSIM) in VP8 "best" quality encoding mode, and up to 60% improvement on very noisy, still or slow moving source video.




    The main improvements to the decoder are :

    • Single-core assembly "hot spot" optimizations, including improved vp8_sixtap_predict() and SSE2 loopfilter functions
    • Threading improvements for more efficient use of multiple processor cores
    • Improved memory handling and reduced footprint
    • Combining IDCT and reconstruction steps
    • SSSE3 usage in functions where appropriate

    On the encoder front, we concentrated on clips in the 30-45 dB range and saw the biggest gains in higher-quality source clips (greater that 38 dB), low to medium-motion clips, and clips with noisy source material. Many code contributions made this possible, but a few of the highlights were :

    • Adaptive width and strength alternate reference frame noise suppression filter with optional motion compensation.
    • Transform improvements (improved accuracy and reduction in round trip error)
    • Trellis-based quantized coefficient optimization
    • Two-pass rate control and quantizer changes
    • Rate distortion changes
    • Zero bin and rounding changes
    • Work on MB-level quality control and bit allocation

    We’re targeting Q1 2011 for the next named libvpx release, which we’re calling Bali. The theme for that release will be faster encoder. We are constantly working on improvements to video quality in the encoder, so after Aylesbury we won’t tie that work to specific named releases.

    WebM at Streaming Media West

    Members of the WebM project will discuss Aylesbury during a session at the Streaming Media West conference on November 3rd (session C203 : WebM Open Video Project Update). For more information, visit www.streamingmedia.com/west.

    John Luther is Product Manager of the WebM Project.

  • ffmpeg merge multiple (N) mono audio channels of a MXF video to multiple (M) stereo channels of MP4 video

    14 février 2020, par Laura

    I have an MXF file with 16 audio mono streams and I need to recode it in a mp4 file with 2<=n<=16 channels merging input streams, e.g. input channels 1 and 2 on output channel 1 and 9 and 10 on output channel 2. This job will be done with ffmpeg. I read the documentation and found the amerge and amix filters that would be nice, but they output one channel only. Is there any solution for this problem ?

    Thanks,
    Laura

    Find below the output of ffprobe on mxf file :


    "streams" :[

    "index":0,
    "codec_name" :"mpeg2video",
    "codec_long_name" :"MPEG-2 video",
    "profile" :"4:2:2",
    "codec_type" :"video",
    "codec_time_base" :"1/25",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "width":1920,
    "height":1080,
    "coded_width":0,
    "coded_height":0,
    "has_b_frames":1,
    "sample_aspect_ratio" :"1:1",
    "display_aspect_ratio" :"16:9",
    "pix_fmt" :"yuv422p",
    "level":2,
    "color_range" :"tv",
    "color_space" :"bt709",
    "color_transfer" :"bt709",
    "color_primaries" :"bt709",
    "chroma_location" :"topleft",
    "field_order" :"tt",
    "refs":1,
    "r_frame_rate" :"25/1",
    "avg_frame_rate" :"25/1",
    "time_base" :"1/25",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":448,
    "duration" :"17.920000",
    "bit_rate" :"50000000",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":1,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":2,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":3,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":4,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":5,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":6,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":7,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"

    ,

    "index":8,
    "codec_name" :"pcm_s24le",
    "codec_long_name" :"PCM signed 24-bit little-endian",
    "codec_type" :"audio",
    "codec_time_base" :"1/48000",
    "codec_tag_string" :"[0][0][0][0]",
    "codec_tag" :"0x0000",
    "sample_fmt" :"s32",
    "sample_rate" :"48000",
    "channels":1,
    "bits_per_sample":24,
    "r_frame_rate" :"0/0",
    "avg_frame_rate" :"0/0",
    "time_base" :"1/48000",
    "start_pts":0,
    "start_time" :"0.000000",
    "duration_ts":860160,
    "duration" :"17.920000",
    "bit_rate" :"1152000",
    "bits_per_raw_sample" :"24",
    "disposition" :
    "default":0,
    "dub":0,
    "original":0,
    "comment":0,
    "lyrics":0,
    "karaoke":0,
    "forced":0,
    "hearing_impaired":0,
    "visual_impaired":0,
    "clean_effects":0,
    "attached_pic":0,
    "timed_thumbnails":0
    ,
    "tags" :
    "file_package_umid" :"0x060A2B340101010501010D2313000000968F75C6B5B34D649967EEDD0076B989"


    ],
    "format" :
    "filename" :"/media-caches/video-essence/VIDEO/MXF-XDCAM_HD422@50Mbps1080i25_16Ch/941.mxf",
    "nb_streams":9,
    "nb_programs":0,
    "format_name" :"mxf",
    "format_long_name" :"MXF (Material eXchange Format)",
    "start_time" :"0.000000",
    "duration" :"17.920000",
    "size" :"135028296",
    "bit_rate" :"60280489",
    "probe_score":100,
    "tags" :
    "uid" :"0a9ef41a-36b4-4066-a8a3-b95f62299b6c",
    "generation_uid" :"e134647e-fea1-4673-91c1-afa277d13c00",
    "company_name" :"Sony",
    "product_name" :"MPC",
    "product_version" :"v1.0",
    "application_platform" :"Sony MXF Development Kit (Win32)",
    "product_uid" :"060e2b34-0401-0103-0e06-0120027f0200",
    "modification_date" :"2012-09-17T11:56:20.000000Z",
    "material_package_umid" :"0x060A2B340101010501010D231300000081C32F48A63347D4890F55D3ADC25B99",
    "timecode" :"00:35:30:08"