Recherche avancée

Médias (21)

Mot : - Tags -/Nine Inch Nails

Autres articles (63)

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

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

Sur d’autres sites (10638)

  • Dash timestamp : 41390056 is out of range for mov/mp4 format

    26 octobre 2017, par mike

    I’m trying to convert a aac stream to dash. The issue is that I get a lot of errors as below(though it seems to segment it into multiple files but I get errors on the player too). The question is why do I get these errors and how can I fix it ? If I simply convert "copy" it into to a single mp4 file it works without error.

       ffmpeg -i  "a.mkv" -y -map  0:1 -c:0 copy -min_seg_duration 1000000
    -use_timeline 1 -use_template 1 -init_seg_name init.mp4s
    -media_seg_name  "\$Number\$.mp4s" -adaptation_sets "id=1,streams=0"
    -remove_at_exit 0  -f dash -dash 1
    "out/stream.mpd" -loglevel error

    Output

    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40475608 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40764376 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40860664 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41149432 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41390056 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41823208 is out of range for mov/mp4 format

    Copy to a single MP4 works just fine
    ffmpeg -i "a.mkv" -y -map 0:1 -c:0 copy -f mp4 -dash 1 "out/out.mp4" -loglevel error

    Probe

    ffprobe a.mkv
    ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
     built with Apple LLVM version 9.0.0 (clang-900.0.37)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
     libavutil      55. 78.100 / 55. 78.100
     libavcodec     57.107.100 / 57.107.100
     libavformat    57. 83.100 / 57. 83.100
     libavdevice    57. 10.100 / 57. 10.100
     libavfilter     6.107.100 /  6.107.100
     libavresample   3.  7.  0 /  3.  7.  0
     libswscale      4.  8.100 /  4.  8.100
     libswresample   2.  9.100 /  2.  9.100
     libpostproc    54.  7.100 / 54.  7.100
    Input #0, matroska,webm, from 'a.mkv':
     Metadata:
       encoder         : libebml v1.3.1 + libmatroska v1.4.2
       creation_time   : 2017-03-11T02:56:50.000000Z
     Duration: 02:12:52.39, start: 0.000000, bitrate: 740 kb/s
       Chapter #0:0: start 0.000000, end 520.270000
       Metadata:
         title           : 00:00:00.000
       Chapter #0:1: start 520.270000, end 1135.718000
       Metadata:
         title           : 00:08:40.270
       Chapter #0:2: start 1135.718000, end 1703.660000
       Metadata:
         title           : 00:18:55.718
       Chapter #0:3: start 1703.660000, end 2314.187000
       Metadata:
         title           : 00:28:23.660
       Chapter #0:4: start 2314.187000, end 2888.594000
       Metadata:
         title           : 00:38:34.187
       Chapter #0:5: start 2888.594000, end 3499.246000
       Metadata:
         title           : 00:48:08.594
       Chapter #0:6: start 3499.246000, end 4154.692000
       Metadata:
         title           : 00:58:19.246
       Chapter #0:7: start 4154.692000, end 4646.392000
       Metadata:
         title           : 01:09:14.692
       Chapter #0:8: start 4646.392000, end 5373.660000
       Metadata:
         title           : 01:17:26.392
       Chapter #0:9: start 5373.660000, end 5882.085000
       Metadata:
         title           : 01:29:33.660
       Chapter #0:10: start 5882.085000, end 6627.871000
       Metadata:
         title           : 01:38:02.085
       Chapter #0:11: start 6627.871000, end 7144.471000
       Metadata:
         title           : 01:50:27.871
       Chapter #0:12: start 7144.471000, end 7451.944000
       Metadata:
         title           : 01:59:04.471
       Chapter #0:13: start 7451.944000, end 7972.394000
       Metadata:
         title           : 02:04:11.944
       Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 720x300 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
       Metadata:
         title           : X264
         BPS             : 623765
         BPS-eng         : 623765
         DURATION        : 02:12:52.311000000
         DURATION-eng    : 02:12:52.311000000
         NUMBER_OF_FRAMES: 191144
         NUMBER_OF_FRAMES-eng: 191144
         NUMBER_OF_BYTES : 621606403
         NUMBER_OF_BYTES-eng: 621606403
         _STATISTICS_WRITING_APP: mkvmerge v8.3.0 ('Over the Horizon') 64bit
         _STATISTICS_WRITING_APP-eng: mkvmerge v8.3.0 ('Over the Horizon') 64bit
         _STATISTICS_WRITING_DATE_UTC: 2017-03-11 02:56:50
         _STATISTICS_WRITING_DATE_UTC-eng: 2017-03-11 02:56:50
         _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
         _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
       Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
       Metadata:
         BPS             : 114797
         BPS-eng         : 114797
         DURATION        : 02:12:52.394000000
         DURATION-eng    : 02:12:52.394000000
         NUMBER_OF_FRAMES: 373706
         NUMBER_OF_FRAMES-eng: 373706
         NUMBER_OF_BYTES : 114401387
         NUMBER_OF_BYTES-eng: 114401387
         _STATISTICS_WRITING_APP: mkvmerge v8.3.0 ('Over the Horizon') 64bit
         _STATISTICS_WRITING_APP-eng: mkvmerge v8.3.0 ('Over the Horizon') 64bit
         _STATISTICS_WRITING_DATE_UTC: 2017-03-11 02:56:50
         _STATISTICS_WRITING_DATE_UTC-eng: 2017-03-11 02:56:50
         _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
         _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

    Shaka debug

    Assertion failed: This should be an update of the last segment in a period
    shaka.media.SegmentIndex.merge @ segment_index.js:153
    shaka.dash.SegmentTemplate.createStream @ segment_template.js:82
    shaka.dash.DashParser.parseRepresentation_ @ dash_parser.js:1080
    shaka.dash.DashParser.parseAdaptationSet_ @ dash_parser.js:978
    shaka.dash.DashParser.parsePeriod_ @ dash_parser.js:722
    shaka.dash.DashParser.parsePeriods_ @ dash_parser.js:626
    shaka.dash.DashParser.processManifest_ @ dash_parser.js:520
    (anonymous) @ dash_parser.js:431
    Promise resolved (async)
    shaka.dash.DashParser.parseManifest_ @ dash_parser.js:430
    (anonymous) @ dash_parser.js:397
    Promise resolved (async)
    shaka.dash.DashParser.requestManifest_ @ dash_parser.js:390
    shaka.dash.DashParser.onUpdate_ @ dash_parser.js:1161
    setTimeout (async)
    shaka.dash.DashParser.setUpdateTimer_ @ dash_parser.js:1209
    (anonymous) @ dash_parser.js:331
    Promise resolved (async)
    shaka.dash.DashParser.start @ dash_parser.js:329
    (anonymous) @ player.js:555
    Promise resolved (async)
    shaka.util.CancelableChain.then @ cancelable_chain.js:72
    shaka.Player.load @ player.js:499
    initPlayer @ ?x=149&y=88&q=http%3A%2F%2Flocalhost%3A8080%2Fmeta%2F%3FbucketID%3D%2FVolumes%2FTV%2FFa%26channelID%3D%2FVolumes%2FTV%26containerID%3D%2FUsers%2F%2Fbrev%%2FL1ZvbHVtZXMvVFYvRmFudGFzdGljLkJlYXN0cy5hbmQuV2hlcmUudG8uRmluZC5UaGVtLjIwMTYuQkRSaXAueDI2NC1TUEFSS1MvYS5ta3Y%2F97M4TS6IqnQ.mpd:392
    463segment_index.js:145 Refusing to rewrite original references on update!
    shaka.media.SegmentIndex.merge @ segment_index.js:145
    shaka.dash.SegmentTemplate.createStream @ segment_template.js:82
    shaka.dash.DashParser.parseRepresentation_ @ dash_parser.js:1080
    shaka.dash.DashParser.parseAdaptationSet_ @ dash_parser.js:978
    shaka.dash.DashParser.parsePeriod_ @ dash_parser.js:722
    shaka.dash.DashParser.parsePeriods_ @ dash_parser.js:626
    shaka.dash.DashParser.processManifest_ @ dash_parser.js:520
    (anonymous) @ dash_parser.js:431
    Promise resolved (async)
    shaka.dash.DashParser.parseManifest_ @ dash_parser.js:430
    (anonymous) @ dash_parser.js:397
    Promise resolved (async)
    shaka.dash.DashParser.requestManifest_ @ dash_parser.js:390
    shaka.dash.DashParser.onUpdate_ @ dash_parser.js:1161
    setTimeout (async)
    shaka.dash.DashParser.setUpdateTimer_ @ dash_parser.js:1209
    (anonymous) @ dash_parser.js:331
    Promise resolved (async)
    shaka.dash.DashParser.start @ dash_parser.js:329
    (anonymous) @ player.js:555
    Promise resolved (async)
    shaka.util.CancelableChain.then @ cancelable_chain.js:72
    shaka.Player.load @ player.js:499
    initPlayer @ ?x=149&y=88&q=http%3A%2F%2Flocalhost%3A8080%2Fmeta%2F%3FbucketID%3D%2FVolumes%2FTV%2FFa%26channelID%3D%2FVolumes%2FTV%26containerID%3D%2FUsers%2F%2Fbrev%%2FL1ZvbHVtZXMvVFYvRmFudGFzdGljLkJlYXN0cy5hbmQuV2hlcmUudG8uRmluZC5UaGVtLjIwMTYuQkRSaXAueDI2NC1TUEFSS1MvYS5ta3Y%2F97M4TS6IqnQ.mpd:392
  • DASH package (mpd) I made freezes after raising the onratechange event

    7 mars 2016, par Nick Birke

    I am trying to created an adaptive stream from an mp4 file. I have a decent amount of experience at doing streaming, and have successfully implemented smooth streaming via Silverlight. We want a solution for everything that works in HTML5. I am pursuing DASH. So here are the steps I take...

    1. Resample the mp4 to different sizes using ffmpeg.
    2. Ensure the files are properly fragmented using Bento4s mp4Fragment utility.
    3. Create the DASH mpd file and associated segments using Bento4s mp4dash utility.

    I have done a lot of work to learn each of these utilities and create a process that gets to output that I think will work. To create reliable DASH artifacts. But it seems I am doing something wrong. Here are examples of command lines I run.

    For step one I create three different files... for three different rates and sizes... (these may not be the exact command lines, they are from old notes... but the parameter values are the ones I am using for sure)

    ffmpeg -y -i C:\_SIMULATED_SHARE_C\ff\big_buck_bunny.mp4 -c:v libx264 -x264opts keyint=24:min-keyint=24:no-scenecut -b:v 1500k -maxrate 1500k -bufsize 1000k -vf "scale=-1:720" C:\_SIMULATED_SHARE_C\ff\output\outputfile720.mp4

    ffmpeg -y -i C:\_SIMULATED_SHARE_C\ff\big_buck_bunny.mp4 -c:v libx264 -x264opts keyint=24:min-keyint=24:no-scenecut -b:v 800k -maxrate 800k -bufsize 500k -vf "scale=-1:540" C:\_SIMULATED_SHARE_C\ff\output\outputfile540.mp4

    ffmpeg -y -i C:\_SIMULATED_SHARE_C\ff\big_buck_bunny.mp4 -c:v libx264 -x264opts keyint=24:min-keyint=24:no-scenecut -b:v 400k -maxrate 400k -bufsize 400k -vf "scale=-1:360" C:\_SIMULATED_SHARE_C\ff\output\outputfile360.mp4

    So that gives you the three files that need to be fragmented. So I fragment them using the mp4fragment utility from Bento4. That command line is simple so I will not offer an example.

    The I use Bento4s mp4dash to create the dash. Something like this...

    "E:\\_INSTALL\\Bento4\\Bento4-SDK-1-4-3-607.x86-microsoft-win32-vs2010\\Bento4-SDK-1-4-3-607.x86-microsoft-win32-vs2010\\bin\\mp4dash.exe --mpd-name=\"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\dash\\something.mpd\" -f -o \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\dash\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny360f.mp4\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny540f.mp4\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny720f.mp4\" "

    This runs ok. And creates the mpd file, an audio folder with segment files, an a video folder with 3 folders each with the segment files.

    I am able to configure IIS to play the mpd ok. As well as the segement files. The video plays fine... and then it stops. It freezes between 50 and 60 seconds. Right before it freezes I can confirm that the onratechange event of the HTML5 video tag is raised. This is an event that is raised with the rate of play is changed. I do nothing to change this it just happens.

    The actual video in question is about 1hr long. Also I am using the dash.js library as a player.

    If you can identify any components or specifics I should change please let me know !

    UPDATE ON MAR 7, 2016

    As requested here is the MPD content...

    <?xml version="1.0" ?>
    <mpd mediapresentationduration="PT51M51.909S" minbuffertime="PT0.80S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
     
     <period>
       
       <adaptationset lang="en" mimetype="audio/mp4" segmentalignment="true" startwithsap="1">
         <segmenttemplate duration="801" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startnumber="1" timescale="1000"></segmenttemplate>
         <representation audiosamplingrate="48000" bandwidth="132491" codecs="mp4a.40.2">
           <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
         </representation>
       </adaptationset>
       
       <adaptationset maxheight="720" maxwidth="1280" mimetype="video/mp4" minheight="540" minwidth="640" segmentalignment="true" startwithsap="1">
         <segmenttemplate duration="801" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startnumber="1" timescale="1000"></segmenttemplate>
         <representation bandwidth="785536" codecs="avc1.64001F" framerate="30000/1001" height="540" scantype="progressive" width="960"></representation>
         <representation bandwidth="403537" codecs="avc1.64001E" framerate="30000/1001" height="360" scantype="progressive" width="640"></representation>
         <representation bandwidth="1496514" codecs="avc1.64001F" framerate="30000/1001" height="720" scantype="progressive" width="1280"></representation>
       </adaptationset>
     </period>
    </mpd>

    UPDATE ON MAR 7, 2016

    Here is the console output for two different videos that just stop for some unknown reason between 50 and 60s

    ///ABS VIDEO

    58393][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0video] Default
    dash.all.js:11 [58395][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,video] Default
    dash.all.js:11 [58401][indexHandler][audio] Getting the request for time: 82.082
    dash.all.js:11 [58403][indexHandler][audio] Index for time 82.082 is 81
    dash.all.js:11 [58405][indexHandler][audio] SegmentTemplate: 81.08099999999999 / 1361.235
    dash.all.js:11 [58406][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
    dash.all.js:11 [58407][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0audio] Default
    dash.all.js:11 [58417][fragmentLoader] loaded video:MediaSegment:82.082 (200, 18ms, 2ms)
    dash.all.js:11 [58419][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,audio] Default
    dash.all.js:11 [58435][fragmentLoader] loaded audio:MediaSegment:82.082 (200, 14ms, 0ms)
    dash.all.js:11 [59390][indexHandler][video] Getting the request for time: 83.083
    dash.all.js:11 [59392][indexHandler][video] Index for time 83.083 is 82
    dash.all.js:11 [59393][indexHandler][video] SegmentTemplate: 82.082 / 1361.235
    dash.all.js:11 [59394][indexHandler][video] SegmentTemplate: 83.08299999999998 / 1361.235
    dash.all.js:11 [59395][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0video] Default
    dash.all.js:11 [59396][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,video] Default
    dash.all.js:11 [59401][indexHandler][audio] Getting the request for time: 83.083
    dash.all.js:11 [59403][indexHandler][audio] Index for time 83.083 is 82
    dash.all.js:11 [59404][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
    dash.all.js:11 [59406][indexHandler][audio] SegmentTemplate: 83.08299999999998 / 1361.235
    dash.all.js:11 [59408][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0audio] Default
    dash.all.js:11 [59416][fragmentLoader] loaded video:MediaSegment:83.08299999999998 (200, 17ms, 1ms)
    dash.all.js:11 [59418][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,audio] Default
    dash.all.js:11 [59437][fragmentLoader] loaded audio:MediaSegment:83.08299999999998 (200, 14ms, 1ms)
    dash.all.js:11 [59902][scheduleController][video] Stalling Buffer
    dash.all.js:11 [59903][bufferController][video] Waiting for more buffer before starting playback.
    dash.all.js:11 [59906][scheduleController][audio] Stalling Buffer
    dash.all.js:11 [59907][bufferController][audio] Waiting for more buffer before starting playback.
    dash.all.js:11 [63684][playbackController] <video> ratechange:  0




    ///HOG VIDEO

    [58250][rulesController] [RULES]: playbackTimeRule [Fragment:download,105,MediaSegment,0audio] Default
    dash.all.js:11 [58266][fragmentLoader] loaded video:MediaSegment:84.105 (200, 28ms, 1ms)
    dash.all.js:11 [58269][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,105,MediaSegment,0,audio] Default
    dash.all.js:11 [58287][fragmentLoader] loaded audio:MediaSegment:84.105 (200, 14ms, 1ms)
    dash.all.js:11 [58982][indexHandler][video] Getting the request for time: 84.906
    dash.all.js:11 [58983][indexHandler][video] Index for time 84.906 is 105
    dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.105 / 3111.909
    dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.906 / 3111.909
    dash.all.js:11 [58985][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0video] Default
    dash.all.js:11 [58986][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,video] Default
    dash.all.js:11 [58989][indexHandler][audio] Getting the request for time: 84.906
    dash.all.js:11 [58990][indexHandler][audio] Index for time 84.906 is 105
    dash.all.js:11 [58991][indexHandler][audio] SegmentTemplate: 84.105 / 3111.909
    dash.all.js:11 [58992][indexHandler][audio] SegmentTemplate: 84.906 / 3111.909
    dash.all.js:11 [58993][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0audio] Default
    dash.all.js:11 [59002][fragmentLoader] loaded video:MediaSegment:84.906 (200, 14ms, 1ms)
    dash.all.js:11 [59003][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,audio] Default
    dash.all.js:11 [59014][fragmentLoader] loaded audio:MediaSegment:84.906 (200, 8ms, 1ms)
    dash.all.js:11 [59735][scheduleController][video] Stalling Buffer
    dash.all.js:11 [59736][bufferController][video] Waiting for more buffer before starting playback.
    dash.all.js:11 [59738][scheduleController][audio] Stalling Buffer
    dash.all.js:11 [59739][bufferController][audio] Waiting for more buffer before starting playback.
    dash.all.js:11 [61695][playbackController] <video> ratechange:  0
    </video></video>
  • Change keyframe interval losslessly to produce mpeg-dash content

    25 mars 2023, par Eeel

    I have a case where i have a mkv file encoded to a 2.5 GB file with x264/CRF settings, in this file group of pictures are not of equal duration (i.e 2,4 or 6 seconds ...).

    &#xA;

    Now i want to create a mpeg-dash version of the file by extracting the video track to mp4 and set the keyframe interval to 2sec losslessly preserving size (minus other audio and subtitle tracks)

    &#xA;

    What i already have that work :

    &#xA;

    Fix keyframe to 2s with x264 :

    &#xA;

    -codec:v libx264 -force_key_frames &#x27;expr:gte(t,n_forced*2)&#x27; -movflags faststart&#xA;

    &#xA;

    But it require also encoding settings that change the quality :

    &#xA;

    -b:v 3500k -maxrate 6000k -bufsize 3500k&#xA;

    &#xA;

    In this case i don't need to change the quality from CRF encoding, just change keyframe interval and set faststart flag.

    &#xA;

    note :&#xA;I have detailed bitrate informations about the file obtained by parsing output of ffprobe : average, min and max bitrate in kb/s.&#xA;Please avoid solution using -crf 0, mpeg-dash files are later crypted using MP4Box that crash with CRF encoded files.

    &#xA;

    How can i do this using ffmpeg ?

    &#xA;

    Edit :

    &#xA;

    Sorry my question is not clear, i'm fine with re-encode, i want to preserve quality as much as possible.

    &#xA;

    Using a little more than source mean bitrate for the -b:v parameter the resulting file size is almost same as source, metric test results are not as good i expect :

    &#xA;

    PSNR 41.03 (expected 44&#x2B;)&#xA;VMAF 76.32 (expected 92&#x2B;)&#xA;

    &#xA;

    Is my bitrate approch good ? Is there anything i can try to improve metric results ?

    &#xA;