Recherche avancée

Médias (1)

Mot : - Tags -/musée

Autres articles (42)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • 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 : (...)

Sur d’autres sites (5073)

  • FFmpeg wrong codecstring for DASH manifest [closed]

    21 novembre 2024, par Suxsem

    I'm trying to create a DASH stream with ffmpeg with the following command :

    


    ffmpeg -i rtsp://admin:***@camera-retro.lan/ch0_0 ^
       -map 0 ^
       -codec:v copy ^
       -codec:a copy ^
       -f dash ^
       -use_template 1 ^
       -use_timeline 1 ^
       -window_size 50 ^
       -extra_window_size 5 ^
       -seg_duration 5 ^
       tmp/output.mpd


    


    The problem is the generated manifest doesn't contain a valid codecstring for the video part (note the codecs="hev1" part) and thus is not playable by the browser :

    


    &lt;?xml version="1.0" encoding="utf-8"?>&#xA;<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" minimumupdateperiod="PT6S" suggestedpresentationdelay="PT6S" availabilitystarttime="2024-11-21T12:05:52.604Z" publishtime="2024-11-21T12:05:57.559Z" timeshiftbufferdepth="PT5M1.9S" maxsegmentduration="PT5.0S" minbuffertime="PT12.0S">&#xA;    <programinformation>&#xA;        &#xA;    </programinformation>&#xA;    <servicedescription>&#xA;    </servicedescription>&#xA;    <period start="PT0.0S">&#xA;        <adaptationset contenttype="video" startwithsap="1" segmentalignment="true" bitstreamswitching="true" maxwidth="2304" maxheight="1296" par="16:9">&#xA;            <representation mimetype="video/mp4" codecs="hev1" bandwidth="822093" width="2304" height="1296" scantype="unknown" sar="1:1">&#xA;                <segmenttemplate timescale="90000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">&#xA;                    <segmenttimeline>&#xA;                        <s t="0" d="542990"></s>&#xA;                    </segmenttimeline>&#xA;                </segmenttemplate>&#xA;            </representation>&#xA;        </adaptationset>&#xA;        <adaptationset contenttype="audio" startwithsap="1" segmentalignment="true" bitstreamswitching="true">&#xA;            <representation mimetype="audio/mp4" codecs="mp4a.40.2" bandwidth="34143" audiosamplingrate="16000">&#xA;                <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1"></audiochannelconfiguration>&#xA;                <segmenttemplate timescale="16000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startnumber="1">&#xA;                    <segmenttimeline>&#xA;                        <s t="0" d="81001"></s>&#xA;                    </segmenttimeline>&#xA;                </segmenttemplate>&#xA;            </representation>&#xA;        </adaptationset>&#xA;    </period>&#xA;</mpd>&#xA;

    &#xA;

    This is the output of ffprobe :

    &#xA;

    SDP:&#xA;v=0&#xA;o=- 1732188474342789 1 IN IP4 192.168.12.162&#xA;s=Session streamed by "rRTSPServer"&#xA;i=ch0_0.h264&#xA;t=0 0&#xA;a=tool:LIVE555 Streaming Media v2023.01.19&#xA;a=type:broadcast&#xA;a=control:*&#xA;a=range:npt=now-&#xA;a=x-qt-text-nam:Session streamed by "rRTSPServer"&#xA;a=x-qt-text-inf:ch0_0.h264&#xA;m=video 0 RTP/AVP 96&#xA;c=IN IP4 0.0.0.0&#xA;b=AS:700&#xA;a=rtpmap:96 H265/90000&#xA;a=fmtp:96 profile-space=0;profile-id=1;tier-flag=0;level-id=186;interop-constraints=000000000000;sprop-vps=QAEMAf//AWAAAAMAAAMAAAMAAAMAuqwJ;sprop-sps=QgEBAWAAAAMAAAMAAAMAAAMAuqABICAFEf5a7kSIi/Lc1AQEBAI=;sprop-pps=RAHA8oSJAzJA&#xA;a=control:track1&#xA;m=audio 0 RTP/AVP 97&#xA;c=IN IP4 0.0.0.0&#xA;b=AS:32&#xA;a=rtpmap:97 MPEG4-GENERIC/16000&#xA;a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408&#xA;a=control:track2&#xA;

    &#xA;

    it seems to me that all codec informations are present :

    &#xA;

    a=fmtp:96 profile-space=0;profile-id=1;tier-flag=0;level-id=186;interop-constraints=000000000000;&#xA;

    &#xA;

    why ffmpeg is putting only codecs="hev1" instead of the full codecstring (containing the profile, the level and the constraints) ?

    &#xA;

    Thank you

    &#xA;

  • FFMPEG - copy the SPECIFED tracks only, ignore all others

    10 janvier 2024, par GDP

    I have some very strange MP4 files that we get regularly for processing created by Wowza. Neither FFMPEG or MEDIAINFO can detect that there are subtitles soft-coded in them, but they ARE there, I can extract them with ccextractor, and when they're played, the captions appear later in the video where the actually start in the timeline.

    &#xA;

    I've tried every variation of copying with/without re-encoding, but all the answers show how to "omit" the subtitles with -sn such as these :

    &#xA;

     ffmpeg -i 3078.mp4 -c copy -sn 3078_sn.mp4&#xA; ffmpeg -i 3078.mp4 -c:v libx264 -c:a ac3 -map 0:v:0 -map 0:a:1 3078_sn.mp4&#xA; ffmpeg -i 3078.mp4 -map 0:v:0 -map 0:a:0  -map -0:s -map -0:d  -c copy 3078_sn2.mp4 -y&#xA;

    &#xA;

    FFprobe :

    &#xA;

    ffprobe 3078.mp4 -hide_banner&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000001ef2bcd9e00] multiple fourcc not supported&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;3078.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : f4v&#xA;    minor_version   : 0&#xA;    compatible_brands: isommp42m4v&#xA;    creation_time   : 2024-01-09T19:59:28.000000Z&#xA;  Duration: 02:17:18.47, start: 0.000000, bitrate: 2165 kb/s&#xA;  Stream #0:0[0x1](eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 1902 kb/s, 29.96 fps, 29.97 tbr, 90k tbn (default)&#xA;    Metadata:&#xA;     creation_time   : 2024-01-09T19:59:28.000000Z&#xA;     handler_name    : WowzaStreamingEngine&#xA;     vendor_id       : [0][0][0][0]&#xA;     encoder         : WowzaStreamingEngine&#xA;  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 257 kb/s (default)&#xA;    Metadata:&#xA;     creation_time   : 2024-01-09T19:59:28.000000Z&#xA;     handler_name    : WowzaStreamingEngine&#xA;     vendor_id       : [0][0][0][0]&#xA;  Stream #0:2[0x3](eng): Data: none (amf0 / 0x30666D61), 1 kb/s (default)&#xA;    Metadata:&#xA;     creation_time   : 2024-01-09T19:59:28.000000Z&#xA;     handler_name    : WowzaStreamingEngine&#xA;Unsupported codec with id 0 for input stream 2&#xA;

    &#xA;

    The problem seems to be that FFMPEG isn't detecting they're there, and so copies them anyways. My assumption is that they're not stored in the header of the MP4 properly (or however that's done), so get because they're later detect, but weren't omitted when it checked the header (pure guesswork on that).

    &#xA;

    So, is there a way to copy ONLY the video, regardless of whatEVER tracks may or not be in the file, then do the same for audio, and then merge the two single-track files ?

    &#xA;

  • FFmpeg - record from stream terminating unexpectedly using kokorin/Jaffree ffmpeg wrapper for Java

    18 avril 2024, par pyrmon

    I am programming a Spring Boot Application using Maven and Java 21. I am trying to record a stream from a url and save it to a mkv file. I intend to do this with kokorin/Jaffree in version 2023.09.10. The recording seems to work ok, however longer videos are terminating unexpectedly. Sometimes after 5 minutes, other times an hour or even longer. Sometimes with Exit Code 0 and sometimes with 1.

    &#xA;

    I have implemented the recording like this :

    &#xA;

    @Override&#xA;    public void startRecording(RecordingSchedule recordingSchedule) {&#xA;        logger.info("Starting recording for schedule with filename {}", recordingSchedule.getFileName());&#xA;&#xA;        String m3uUrl = recordingSchedule.getM3uUrl();&#xA;        LocalDateTime endTime = timeUtils.parseStringToLocalDateTime(recordingSchedule.getEndTime());&#xA;        LocalDateTime stopTime = endTime.plusSeconds(20);&#xA;        String timeToRecord = timeUtils.calculateTimeToRecord(stopTime);&#xA;        Path outputPath = Paths.get("/recordings/" &#x2B; recordingSchedule.getFileName());&#xA;&#xA;        try {&#xA;            FFmpeg.atPath()&#xA;                  .addInput(UrlInput.fromUrl(m3uUrl))&#xA;                  .addArgument("-xerror")&#xA;                  .addArguments("-reconnect", "5")&#xA;                  .addArguments("-reconnect_streamed", "5")&#xA;                  .addArguments("-reconnect_delay_max", "20")&#xA;                  .addArguments("-t", timeToRecord)&#xA;                  .addArguments("-c", "copy")&#xA;                  .addOutput(&#xA;                      UrlOutput.toPath(outputPath))&#xA;                  .setLogLevel(LogLevel.WARNING)&#xA;                  .execute();&#xA;            logger.info("Recording complete. Output file: {}", outputPath.toAbsolutePath());&#xA;        } catch (Exception e) {&#xA;            logger.error("Error recording M3U stream {}: {}", recordingSchedule.getFileName(), e.getMessage());&#xA;        }&#xA;    }&#xA;

    &#xA;

    And I am calling the method like this :&#xA;executorConfig.executorService().submit(() -> ffmpegService.startRecording(recording));

    &#xA;

    Any ideas what I am doing wrong ?&#xA;Here are the log lines at the beginning and end of recording of the past two attempts :

    &#xA;

    2024-04-18T00:54:48.689&#x2B;02:00  INFO 1 --- [pool-2-thread-1] m.s.r.service.impl.FfmpegServiceImpl     : Starting recording for schedule with filename Example1.mkv&#xA;2024-04-18T00:54:48.697&#x2B;02:00  WARN 1 --- [pool-2-thread-1] c.github.kokorin.jaffree.ffmpeg.FFmpeg   : ProgressListener isn&#x27;t set, progress won&#x27;t be reported&#xA;2024-04-18T00:54:48.698&#x2B;02:00  INFO 1 --- [pool-2-thread-1] c.g.k.jaffree.process.ProcessHandler     : Command constructed:&#xA;ffmpeg -loglevel level&#x2B;warning -i http://example.stream.url.com -n -xerror -reconnect 5 -reconnect_streamed 5 -reconnect_delay_max 20 -t 10771 -c copy /recordings/Example1.mkv&#xA;2024-04-18T00:54:48.698&#x2B;02:00  INFO 1 --- [pool-2-thread-1] c.g.k.jaffree.process.ProcessHandler     : Starting process: ffmpeg&#xA;2024-04-18T00:54:48.701&#x2B;02:00  INFO 1 --- [pool-2-thread-1] c.g.k.jaffree.process.ProcessHandler     : Waiting for process to finish&#xA;2024-04-18T01:31:02.633&#x2B;02:00  WARN 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [h264 @ 0x559cd22dd940] [warning] Increasing reorder buffer to 2&#xA;2024-04-18T01:31:02.633&#x2B;02:00  INFO 1 --- [pool-2-thread-1] c.g.k.jaffree.process.ProcessHandler     : Process has finished with status: 0&#xA;2024-04-18T01:31:02.734&#x2B;02:00  INFO 1 --- [pool-2-thread-1] m.s.r.service.impl.FfmpegServiceImpl     : Recording complete. Output file: /recordings/Example1.mkv&#xA;&#xA;2024-04-18T03:54:48.678&#x2B;02:00  INFO 1 --- [pool-2-thread-2] m.s.r.service.impl.FfmpegServiceImpl     : Starting recording for schedule with filename Example2.mkv&#xA;2024-04-18T03:54:48.678&#x2B;02:00  WARN 1 --- [pool-2-thread-2] c.github.kokorin.jaffree.ffmpeg.FFmpeg   : ProgressListener isn&#x27;t set, progress won&#x27;t be reported&#xA;2024-04-18T03:54:48.678&#x2B;02:00  INFO 1 --- [pool-2-thread-2] c.g.k.jaffree.process.ProcessHandler     : Command constructed:&#xA;ffmpeg -loglevel level&#x2B;warning -i http://example.stream.url.com/ -n -xerror -reconnect 5 -reconnect_streamed 5 -reconnect_delay_max 20 -t 11431 -c copy /recordings/Example2.mkv&#xA;2024-04-18T03:54:48.678&#x2B;02:00  INFO 1 --- [pool-2-thread-2] c.g.k.jaffree.process.ProcessHandler     : Starting process: ffmpeg&#xA;2024-04-18T03:54:48.679&#x2B;02:00  INFO 1 --- [pool-2-thread-2] c.g.k.jaffree.process.ProcessHandler     : Waiting for process to finish&#xA;2024-04-18T04:57:22.256&#x2B;02:00  WARN 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [h264 @ 0x55707ba988c0] [warning] Increasing reorder buffer to 3&#xA;2024-04-18T04:58:47.455&#x2B;02:00 ERROR 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [NULL @ 0x55707ba988c0] [error] Picture timing SEI payload too large&#xA;2024-04-18T04:58:47.456&#x2B;02:00 ERROR 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [NULL @ 0x55707ba988c0] [error] non-existing PPS 1 referenced&#xA;2024-04-18T04:58:47.456&#x2B;02:00  WARN 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [matroska @ 0x55707ba9a380] [warning] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly&#xA;2024-04-18T04:58:47.456&#x2B;02:00 ERROR 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [matroska @ 0x55707ba9a380] [error] Can&#x27;t write packet with unknown timestamp&#xA;2024-04-18T04:58:47.463&#x2B;02:00 ERROR 1 --- [         StdErr] c.g.k.jaffree.process.BaseStdReader      : [error] av_interleaved_write_frame(): Invalid argument&#xA;2024-04-18T04:58:47.463&#x2B;02:00  INFO 1 --- [pool-2-thread-2] c.g.k.jaffree.process.ProcessHandler     : Process has finished with status: 1&#xA;2024-04-18T04:58:47.564&#x2B;02:00 ERROR 1 --- [pool-2-thread-2] m.s.r.service.impl.FfmpegServiceImpl     : Error recording M3U stream Example2.mkv: Process execution has ended with non-zero status: 1. Check logs for detailed error message.&#xA;

    &#xA;

    They were supposed to run nearly 3 hours and the other one over 3 hours. And with the timestamps you can see that they are not running nearly as long.&#xA;Thank you for your help !

    &#xA;