Recherche avancée

Médias (1)

Mot : - Tags -/punk

Autres articles (48)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

Sur d’autres sites (8290)

  • ffmpeg stops capturing whole hour of HTTP stream after some time

    7 juillet 2020, par CompuChip

    First of all, sorry if I'm using the wrong terminology. I've been playing around with nginx and I'm still a bit confused about RTMP and HLS and other acronyms.

    


    I've managed to setup OBS to stream to an nginx server, which takes the RTMP stream and chops it into pieces for HLS. Here's the relevant part of the nginx configuration file.

    


    rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        ping 30s;
        deny play all;

        application live {
            live on;
            hls on;
            hls_nested on; # Create a new folder for each stream
            hls_path /mnt/hls/live;
            hls_fragment 3s;
            hls_fragment_naming timestamp;
            hls_playlist_length 60s;
        }
    }
}

http {
    server {
        listen 81 ssl;

        #creates the http-location for our full-resolution (desktop) HLS stream - "http://localhost:8080/live/test/index.m3u8"
        location /live {
            # Elided caching and CORS for brevity

            alias /mnt/hls/live;
            add_header Cache-Control no-cache;
            index index.m3u8;
        }
    }
}


    


    This works well, I can view the stream in VLC or on a website and it looks smooth. Now I wanted to add some logging : I'd like to write full hours (starting at xx:00:00 and ending at xx:59:59) to a file named log_yyyymmdd_hh.mp4, e.g. log_20200707_18.mp4 for the files of 7 July 2020, 18:00 - 19:00 hrs. So I've set up an hourly cron job with the following ffmpeg command :

    


    ffmpeg -i https://stream.example.com:81/live/<streamkey> -preset veryfast -maxrate 2000k \&#xA;    -bufsize 2000k -g 60 -t 3600 -y /var/video/log/$(date &#x2B;\%Y\%m\%d_\%H00).mp4 >/dev/null 2>&amp;1&#xA;</streamkey>

    &#xA;

    At first this seemed to work well, so I left it running happily for about 24 hours. When I checked, most of my hourly files were small ( 100MB) files of about 10 to 15 minutes long. It seems like any small delay in the stream will cause ffmpeg to stop writing to the file. I suspect such hiccups may for example be caused by an OBS plugin and I'll need to look into that, but I would prefer that ffmpeg will retry for some time before giving up. What arguments should I be passing to ffmpeg to make it not break when the stream is down for, say, up to a second every now and then ?.

    &#xA;

    When I view back the HLS files there don't seem to be any noticeable gaps, so eventually all the data arrives. I went for the crontab solution with ffmpeg because when recording from nginx I could not figure out how to start recording at the start of the whole hour.

    &#xA;

  • How to use ffmpeg to change the h264 properties, yuv, fps, tbr, tbn, and tbc of an mp4 file ?

    23 août 2020, par bguiz

    Using ffmpeg, I would like to convert a video file such that its video stream changes like so :

    &#xA;

      &#xA;
    • Current video stream : Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2560x1080 [SAR 4:3 DAR 256:81], 60 kb/s, 15 fps, 15 tbr, 15360 tbn, 30 tbc (default)
    • &#xA;

    • Target video stream : Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 2560x1080, 272 kb/s, 20 fps, 20 tbr, 10240 tbn, 40 tbc (default)
    • &#xA;

    &#xA;

    (values that differ : h264 properties, yuv, fps, tbr, tbn, and tbc)

    &#xA;

    ... and its audio stream changes like so :

    &#xA;

      &#xA;
    • Current audio stream : Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s (default)
    • &#xA;

    • Target audio stream : Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)
    • &#xA;

    &#xA;

    (values that differ : aac properties)

    &#xA;

    How can I do this ?

    &#xA;


    &#xA;

    Detailed version

    &#xA;

    I would like to be able to concatenate, without re-encoding, main.mp4, followed by outro.mp4, using the following commands :

    &#xA;

    echo "file &#x27;main.mp4&#x27;" > concat.txt&#xA;echo "file &#x27;outro.mp4&#x27;" >> concat.txt&#xA;ffmpeg \&#xA;  -f concat \&#xA;  -safe 0 \&#xA;  -i concat.txt \&#xA;  -c copy \&#xA;  concat.mp4&#xA;

    &#xA;

    What results is a file which plays till the end of main.mp4, and then the video freezes, and I hear the audio of outro.mp4. The same video frame then stays on, with no sound, for an extra 30 minutes (end time shown in VLC).

    &#xA;

    My assumption is that these files are incompatible with each other in some way that prevents them from being concatenated using -codec copy (without re-encoding).

    &#xA;

    Here is the ffprobe output for main.mp4 :

    &#xA;

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;main.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 01:13:00.65, start: 0.000000, bitrate: 348 kb/s&#xA;    Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 2560x1080, 272 kb/s, 20 fps, 20 tbr, 10240 tbn, 40 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;

    &#xA;

    Here is the ffprobe output for outro.mp4 :

    &#xA;

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;outro.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:04.12, start: 0.000000, bitrate: 254 kb/s&#xA;    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 2560x1080 [SAR 4:3 DAR 256:81], 60 kb/s, 15 fps, 15 tbr, 15360 tbn, 30 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : Stereo&#xA;

    &#xA;

    How can I convert outro.mp4, such that I may concatenate the files without re-encoding ?

    &#xA;

    Note that I am OK with re-encoding the outro.mp4 on its own,&#xA;I simply want to avoid re-encoding during the concatenation step,&#xA;and avoid re-encoding main.mp4.

    &#xA;


    &#xA;

    ffmpeg build

    &#xA;

    $ ffmpeg -version&#xA;ffmpeg version 4.3-2~18.04.york0 Copyright (c) 2000-2020 the FFmpeg developers&#xA;built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)&#xA;configuration: --prefix=/usr --extra-version=&#x27;2~18.04.york0&#x27; --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;libavutil      56. 51.100 / 56. 51.100&#xA;libavcodec     58. 91.100 / 58. 91.100&#xA;libavformat    58. 45.100 / 58. 45.100&#xA;libavdevice    58. 10.100 / 58. 10.100&#xA;libavfilter     7. 85.100 /  7. 85.100&#xA;libavresample   4.  0.  0 /  4.  0.  0&#xA;libswscale      5.  7.100 /  5.  7.100&#xA;libswresample   3.  7.100 /  3.  7.100&#xA;libpostproc    55.  7.100 / 55.  7.100&#xA;

    &#xA;

  • video uploading from app using ffmpeg showing error

    9 juillet 2020, par Dhananjay Acharya

    I am trying to implement video upload from app using ffmpeg. when I m trying to upload video showing this errors. sometime video upload keep on loading. any help.

    &#xA;

    sometimes app freezes and for some videos showing out of memory error

    &#xA;

    when i run in a real device logcat details

    &#xA;

    2020-07-09 12:48:14.240 5226-7065/com.mik I/OMXClient: MuxOMX ctor&#xA;2020-07-09 12:48:14.369 5226-5226/com.mik I/Choreographer: Skipped 32 frames!  The application may be doing too much work on its main thread.&#xA;2020-07-09 12:48:14.377 5226-5857/com.mik D/AudioManager: getStreamVolume isRestricted mode = 0&#xA;2020-07-09 12:48:14.401 5226-7067/com.mik D/AudioManager: getStreamVolume isRestricted mode = 0&#xA;2020-07-09 12:48:14.468 5226-7065/com.mik E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010&#xA;2020-07-09 12:48:14.468 5226-7065/com.mik I/ExtendedACodec: setupVideoEncoder()&#xA;2020-07-09 12:48:14.469 5226-7065/com.mik W/ACodec: do not know color format 0x7fa30c04 = 2141391876&#xA;2020-07-09 12:48:14.471 5226-7065/com.mik W/ACodec: do not know color format 0x7f000789 = 2130708361&#xA;2020-07-09 12:48:14.521 5226-7065/com.mik I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level1]&#xA;2020-07-09 12:48:14.543 5226-7065/com.mik I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring.&#xA;2020-07-09 12:48:14.543 5226-7065/com.mik I/ACodec: setupVideoEncoder succeeded&#xA;2020-07-09 12:48:14.544 5226-7065/com.mik I/ExtendedACodec: [OMX.qcom.video.encoder.avc] configure, AMessage : AMessage(what = &#x27;conf&#x27;, target = 13) = {&#xA;      int32_t width = 720&#xA;      int32_t height = 1280&#xA;      int32_t bitrate = 2073600&#xA;      string mime = "video/avc"&#xA;      int32_t frame-rate = 30&#xA;      int32_t i-frame-interval = 1&#xA;      int32_t color-format = 2130708361&#xA;      int32_t encoder = 1&#xA;    }&#xA;2020-07-09 12:48:14.549 5226-7065/com.mik W/ACodec: do not know color format 0x7f000789 = 2130708361&#xA;2020-07-09 12:48:14.556 5226-6625/com.mik D/FA: Connected to remote service&#xA;2020-07-09 12:48:14.557 5226-6625/com.mik V/FA: Processing queued up service tasks: 1&#xA;2020-07-09 12:48:14.877 5226-7104/com.mik I/OMXClient: MuxOMX ctor&#xA;2020-07-09 12:48:14.946 5226-7103/com.mik I/MediaCodec: [OMX.qcom.video.decoder.avc] setting surface generation to 5351428&#xA;2020-07-09 12:48:14.948 5226-7104/com.mik I/ExtendedACodec: setupVideoDecoder()&#xA;2020-07-09 12:48:14.948 5226-7104/com.mik I/ExtendedACodec: vpp-enable search is 0 and value is 0&#xA;2020-07-09 12:48:14.955 5226-7104/com.mik I/ExtendedACodec: Decoder will be in frame by frame mode&#xA;2020-07-09 12:48:14.980 5226-7104/com.mik D/SurfaceUtils: set up nativeWindow 0x7f84499e10 for 352x640, color 0x7fa30c06, rotation 0, usage 0x2002900&#xA;2020-07-09 12:48:15.065 5226-7028/com.mik D/resp: 0&#xA;2020-07-09 12:48:15.072 5226-7104/com.mik D/SurfaceUtils: set up nativeWindow 0x7f84499e10 for 352x640, color 0x7fa30c06, rotation 0, usage 0x2002900&#xA;2020-07-09 12:48:15.152 5226-7065/com.mik D/ACodec: dataspace changed to 0x10c10000 (R:2(Limited), P:3(BT601_6_625), M:3(BT601_6), T:3(SMPTE170M)) (R:2(Limited), S:1(BT709), T:3(SMPTE_170M))&#xA;&#xA;2020-07-09 12:48:15.469 5226-7028/com.mik V/MuxRender: Added track #0 with video/avc to muxer&#xA;2020-07-09 12:48:15.469 5226-7028/com.mik V/MuxRender: Added track #1 with audio/mp4a-latm to muxer&#xA;2020-07-09 12:48:15.646 5226-7028/com.mik I/MPEG4Writer: limits: 4294967295/0 bytes/us, bit rate: -1 bps and the estimated moov size 3195 bytes&#xA;2020-07-09 12:48:15.647 5226-7028/com.mik V/MuxRender: Output format determined, writing 15 samples / 6054 bytes to muxer.&#xA;2020-07-09 12:48:15.647 5226-7140/com.mik I/MPEG4Writer: setStartTimestampUs: 0&#xA;2020-07-09 12:48:15.647 5226-7140/com.mik I/MPEG4Writer: Earliest track starting time: 0&#xA;2020-07-09 12:48:15.650 5226-7139/com.mik I/MPEG4Writer: setStartTimestampUs: 0&#xA;2020-07-09 12:48:27.318 5226-7028/com.mik D/MPEG4Writer: Video track stopping&#xA;2020-07-09 12:48:27.318 5226-7139/com.mik I/MPEG4Writer: Received total/0-length (401/1) buffers and encoded 401 frames. - Video&#xA;2020-07-09 12:48:27.326 5226-7140/com.mik I/MPEG4Writer: Received total/0-length (641/1) buffers and encoded 641 frames. - Audio&#xA;2020-07-09 12:48:27.326 5226-7140/com.mik I/MPEG4Writer: Audio track drift time: 0 us&#xA;2020-07-09 12:48:27.327 5226-7028/com.mik D/MPEG4Writer: Audio track stopped&#xA;2020-07-09 12:48:27.327 5226-7028/com.mik D/MPEG4Writer: Duration from tracks range is [14850005, 14883989] us&#xA;2020-07-09 12:48:27.327 5226-7028/com.mik D/MPEG4Writer: Stopping writer thread&#xA;2020-07-09 12:48:27.329 5226-7138/com.mik D/MPEG4Writer: 1 chunks are written in the last batch&#xA;2020-07-09 12:48:27.329 5226-7028/com.mik D/MPEG4Writer: Writer thread stopped&#xA;2020-07-09 12:48:27.332 5226-7028/com.mik I/MPEG4Writer: The mp4 file will not be streamable.&#xA;2020-07-09 12:48:27.378 5226-7104/com.mik E/BufferQueueProducer: [SurfaceTexture-1-5226-2] cancelBuffer: BufferQueue has been abandoned&#xA;2020-07-09 12:48:27.465 5226-7028/com.mik D/MPEG4Writer: Video track stopping&#xA;2020-07-09 12:48:27.494 5226-5226/com.mik I/Timeline: Timeline: Activity_launch_request time:148842468 intent:Intent { cmp=com.mik/.Video_Recording.GallerySelectedVideo.GallerySelectedVideo_A (has extras) }&#xA;2020-07-09 12:48:27.541 5226-6625/com.mik V/FA: Recording user engagement, ms: 13774&#xA;2020-07-09 12:48:27.561 5226-6625/com.mik V/FA: Connecting to remote service&#xA;2020-07-09 12:48:27.578 5226-5857/com.mik D/AudioManager: getStreamVolume isRestricted mode = 0&#xA;2020-07-09 12:48:27.584 5226-6625/com.mik V/FA: Activity paused, time: 160261301&#xA;2020-07-09 12:48:27.652 5226-6625/com.mik V/FA: Connection attempt already in progress&#xA;2020-07-09 12:48:27.727 5226-5226/com.mik I/ExoPlayerImpl: Init d0eca9e [ExoPlayerLib/2.11.1] [oxygen, MI MAX 2, Xiaomi, 25]&#xA;

    &#xA;