Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (112)

  • La sauvegarde automatique de canaux SPIP

    1er avril 2010, par

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (4220)

  • Creating iPhone compatible video with ffmpeg from an image and MP3 file

    22 février 2020, par Gracie

    I have the following command that I have used to create an MP4 video file from an image and an MP3 file, it plays fine in a Chrome browser on desktop and on an Android phone - but it doesn’t work on an iPhone 10. Do I need some extra codec or setting to make this compatible for iPhone ? Should I be converting this into a MPEG file instead for wider compatibility ?

    ffmpeg -loop 1 -i 6f4aa5dfefc4dd32186f41315ad9d1e2-0.png -i "music.mp3" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest aa-image0.mp4

    Here are the ffprobe details for the input MP3 file used to create the MP4 video and also the ffprobe for that output file :

    Input #0, wav, from 'download0.mp3':
     Duration: 00:00:35.94, bitrate: 384 kb/s
       Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 24000 Hz, 1 channels, s16, 384 kb/s
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'aa-image0.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf58.22.100
     Duration: 00:00:38.76, start: 0.000000, bitrate: 505 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2664x1498 [SAR 1:1 DAR 1332:749], 367 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 138 kb/s (default)
       Metadata:
         handler_name    : SoundHandler

    The video seems to play on the iPhone, but the audio seems to start/stop constantly. Like it is a streaming issue (even though it is not). Maybe an MP3 encoding issue when I created the video ?

    Here are the test files I have used and created (any iPhone users will likely find the MP4 will not play the audio in the video properly) :

    https://ffmpeg-iphone-issue.netlify.com/tesla.jpg

    https://ffmpeg-iphone-issue.netlify.com/tesla.mp3

    https://ffmpeg-iphone-issue.netlify.com/tesla.mp4 (OUTPUT - Created from the 2 files above)


    In summary, two FFmpeg commands are required :

    1) Used to create iPhone/iOS compatible videos in FFmpeg from an image and MP3 (A slight modification to the command at the top of the page)

    and

    2) An FFmpeg command that could be used to fix or re-encode the video above so that it works on iPhone (A new command incorporating the parts so it works with iPhone and then to rebuild and fix the "broken" video. In a similar fashion to this video where he fixes a broken video https://www.youtube.com/watch?v=2FhmbKKh6mc [command in Youtube description])

  • How do I calculate optimal dimensions and bitrate for displaying a video on an iPhone ?

    6 février 2020, par wachutu

    I’m currently developing a mobile app that will have a library of 2-5 minute videos (approx 100 in total) and going through the process of determining which versions of the videos to have ready to serve to different mobile devices. In my research, I have noticed that there is a lot of room to play with video settings such as dimensions and bitrate.

    As a first test, I am attempting to find the minimum video size I can deliver to an iPhone XS with dimensions 1125x2436 without losing any noticeable quality. I started by scaling the video to 1125x2436 and creating versions with 5 different bitrates ranging from 500kbps-4400kbps. I noticed that at 1500kbps, the video looks great and the size is cut 1/3 so that was a good start.

    Then after doing some reading, I saw that in adaptive bitrate scenarios Apple recommends delivering video of lower bitrate AND lower resolution. So in my next test I just cut both in half - scaled to 562x1218 and bitrate at 750kbps and noticed the video also looked great on the iPhone. So 1125x2436 at 750kbps looks bad, but 562x1218 at 750kbps looks great on the same device. To some extent this makes sense to me as you need less bits to fill a smaller screen but what I’m not understanding is how the scaling plays a factor. Shouldn’t it essentially pixelate because the resolution is 1/2 of the iPhone dimensions ? And at a higher level, is there a somewhat concrete way to figure out this optimal resolution / bitrate balance given the dimensions of a device ? We want to most modern smartphones (iPhone 6 and later, Samsung Galaxy, etc.) so we need to be prepared for a range of dimensions (aspect ratios 9:16 or 6:13).

  • How to export audio from a iPhone video file with FFmpeg ?

    11 janvier 2020, par DanScripter

    UPDATE 1 the problem resides in the input read-stream. (check below)

    I am using fluent-ffmpeg (version : 2.1.2) to get a .mp3 file out of a video file that I input as a stream .createReadStream(). I output the file as a .pipe to a remoteWriteStream.

    ffmpeg -i pipe:0 -vn -f mp3 -acodec mp3 -movflags frag_keyframe+empty_moov pipe:1

    This works fine with .mp4, .webm and .mov (codec : prores) files.

    But it somehow does not want to work with a .mov out of an iPhone 11. FFmpeg is not giving me any error when running above code. It creates the .mp3 file but the size is just 152 B and it is not playable.

    I ffprobed the iPhone .mov files it returns this :

    "{ streams:
      [ { index: 0,
          codec_name: 'hevc',
          codec_long_name: 'H.265 / HEVC (High Efficiency Video Coding)',
          profile: 'Main',
          codec_type: 'video',
          codec_time_base: '1111/33300',
          codec_tag_string: 'hvc1',
          codec_tag: '0x31637668',
          width: 1920,
          height: 1080,
          coded_width: 1920,
          coded_height: 1088,
          has_b_frames: 2,
          sample_aspect_ratio: '0:1',
          display_aspect_ratio: '0:1',
          pix_fmt: 'yuv420p',
          level: 120,
          color_range: 'tv',
          color_space: 'bt709',
          color_transfer: 'bt709',
          color_primaries: 'bt709',
          chroma_location: 'unspecified',
          field_order: 'unknown',
          timecode: 'N/A',
          refs: 1,
          id: 'N/A',
          r_frame_rate: '30000/1001',
          avg_frame_rate: '33300/1111',
          time_base: '1/600',
          start_pts: 'N/A',
          start_time: 'N/A',
          duration_ts: 6666,
          duration: 11.11,
          bit_rate: 7611708,
          max_bit_rate: 'N/A',
          bits_per_raw_sample: 'N/A',
          nb_frames: 333,
          nb_read_frames: 'N/A',
          nb_read_packets: 'N/A',
          tags: [Object],
          disposition: [Object] },
        { index: 1,
          codec_name: 'aac',
          codec_long_name: 'AAC (Advanced Audio Coding)',
          profile: 'unknown',
          codec_type: 'audio',
          codec_time_base: '1/44100',
          codec_tag_string: 'mp4a',
          codec_tag: '0x6134706d',
          sample_fmt: 'fltp',
          sample_rate: 44100,
          channels: 2,
          channel_layout: 'stereo',
          bits_per_sample: 0,
          id: 'N/A',
          r_frame_rate: '0/0',
          avg_frame_rate: '0/0',
          time_base: '1/44100',
          start_pts: 'N/A',
          start_time: 'N/A',
          duration_ts: 489951,
          duration: 11.11,
          bit_rate: 135091,
          max_bit_rate: 192000,
          bits_per_raw_sample: 'N/A',
          nb_frames: 481,
          nb_read_frames: 'N/A',
          nb_read_packets: 'N/A',
          tags: [Object],
          disposition: [Object] },
        { index: 2,
          codec_name: 'unknown',
          codec_long_name: 'unknown',
          profile: 'unknown',
          codec_type: 'data',
          codec_tag_string: 'mebx',
          codec_tag: '0x7862656d',
          id: 'N/A',
          r_frame_rate: '0/0',
          avg_frame_rate: '0/0',
          time_base: '1/600',
          start_pts: 'N/A',
          start_time: 'N/A',
          duration_ts: 6666,
          duration: 11.11,
          bit_rate: 2670,
          max_bit_rate: 'N/A',
          bits_per_raw_sample: 'N/A',
          nb_frames: 38,
          nb_read_frames: 'N/A',
          nb_read_packets: 'N/A',
          tags: [Object],
          disposition: [Object] },
        { index: 3,
          codec_name: 'unknown',
          codec_long_name: 'unknown',
          profile: 'unknown',
          codec_type: 'data',
          codec_tag_string: 'mebx',
          codec_tag: '0x7862656d',
          id: 'N/A',
          r_frame_rate: '0/0',
          avg_frame_rate: '0/0',
          time_base: '1/600',
          start_pts: 'N/A',
          start_time: 'N/A',
          duration_ts: 6666,
          duration: 11.11,
          bit_rate: 7,
          max_bit_rate: 'N/A',
          bits_per_raw_sample: 'N/A',
          nb_frames: 1,
          nb_read_frames: 'N/A',
          nb_read_packets: 'N/A',
          tags: [Object],
          disposition: [Object] },
        { index: 4,
          codec_name: 'unknown',
          codec_long_name: 'unknown',
          profile: 'unknown',
          codec_type: 'data',
          codec_tag_string: 'mebx',
          codec_tag: '0x7862656d',
          id: 'N/A',
          r_frame_rate: '0/0',
          avg_frame_rate: '0/0',
          time_base: '1/600',
          start_pts: 'N/A',
          start_time: 'N/A',
          duration_ts: 6666,
          duration: 11.11,
          bit_rate: 18117,
          max_bit_rate: 'N/A',
          bits_per_raw_sample: 'N/A',
          nb_frames: 333,
          nb_read_frames: 'N/A',
          nb_read_packets: 'N/A',
          tags: [Object],
          disposition: [Object] } ],
     format:
      { filename: 'pipe:0',
        nb_streams: 5,
        nb_programs: 0,
        format_name: 'mov,mp4,m4a,3gp,3g2,mj2',
        format_long_name: 'QuickTime / MOV',
        start_time: 'N/A',
        duration: 11.11,
        size: 'N/A',
        bit_rate: 'N/A',
        probe_score: 100,
        tags:
         { major_brand: 'qt  ',
           minor_version: '0',
           compatible_brands: 'qt  ',
           creation_time: '2020-01-11T12:33:36.000000Z',
           'com.apple.quicktime.make': 'Apple',
           'com.apple.quicktime.model': 'iPhone 11',
           'com.apple.quicktime.software': '13.3',
           'com.apple.quicktime.creationdate': '2020-01-11T13:33:36+0100' } },
     chapters: [] }"

    The created .mp3 file results in a undefined.

    I already tried to take the .mov re-encode it to an .mp4 via ffmpeg and then try the above code to get the .mp3 - still does not work.

    Any advice how I can make this work ?

    thanks !


    UPDATE 1
    The problem resides in the input stream ! When I download the file to the local machine and input it as as a local file, not as a read stream, it works perfectly.

    I am creating the stream from a google cloud bucket like this :

    const myBucket = storage.bucket('myBucket');
    const remoteReadStream = myBucket.file(file).createReadStream();

    Since this code is perfectly working with all other codecs, what maybe the issue while creating the read stream from the google cloud from a h265 file ?