
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (111)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 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, parMultilang 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, parMediaSPIP 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 (10460)
-
why it is taking a lot of time to convert image via HTTP to video in ffmpeg ?
20 avril 2021, par al pacinoBelow is the ffmpeg i am using to convert images into videos but It is taking around 3 minutes to convert image to 5 second video.
If I run the command on Image present on a directory then it converts images to videos very swiftly.


can anyone tell what I am doing wrong ?


ffmpeg -loop 1 -i 'https://cdn.pixabay.com/photo/2020/10/23/12/03/arch-5678549__340.jpg' -t 5 -vf scale=1280:780 output.mp4 

ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
 configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-cuda --enable-cuda-sdk --enable-cuvid --enable-libdrm --enable-ffplay --enable-gnutls --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libnpp --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, image2, from 'https://cdn.pixabay.com/photo/2021/04/17/18/26/woman-6186493__340.jpg':
 Duration: 00:00:00.04, start: 0.000000, bitrate: 5538 kb/s
 Stream #0:0: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 511x340 [SAR 1:1 DAR 511:340], 25 fps, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
 Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x5580ac8e7c40] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x5580ac186b40] using SAR=1034/1129
[libx264 @ 0x5580ac186b40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512
[libx264 @ 0x5580ac186b40] profile High, level 3.2
[libx264 @ 0x5580ac186b40] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'output.mp4':
 Metadata:
 encoder : Lavf58.45.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj420p(pc), 1280x780 [SAR 19929:21760 DAR 511:340], q=-1--1, 25 fps, 12800 tbn, 25 tbc
 Metadata:
 encoder : Lavc58.91.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 100 fps=0.0 q=28.0 size= 0kB time=00:00:01.64 bitrate= 0.2kbits/frame= 125 fps=0.0 q=-1.0 Lsize= 90kB time=00:00:04.88 bitrate= 151.7kbits/s speed=6.79x 
video:88kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.618829%
[libx264 @ 0x5580ac186b40] frame I:1 Avg QP:16.31 size: 75247
[libx264 @ 0x5580ac186b40] frame P:31 Avg QP:16.13 size: 314
[libx264 @ 0x5580ac186b40] frame B:93 Avg QP:31.33 size: 49
[libx264 @ 0x5580ac186b40] consecutive B-frames: 0.8% 0.0% 0.0% 99.2%
[libx264 @ 0x5580ac186b40] mb I I16..4: 10.6% 77.6% 11.8%
[libx264 @ 0x5580ac186b40] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 2.5% 0.2% 0.2% 0.0% 0.0% skip:97.2%
[libx264 @ 0x5580ac186b40] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.4% 0.0% 0.0% direct: 0.0% skip:99.6% L0: 8.3% L1:91.7% BI: 0.0%
[libx264 @ 0x5580ac186b40] 8x8 transform intra:77.5% inter:98.7%
[libx264 @ 0x5580ac186b40] coded y,uvDC,uvAC intra: 88.4% 95.3% 79.5% inter: 0.1% 0.5% 0.0%
[libx264 @ 0x5580ac186b40] i16 v,h,dc,p: 2% 3% 0% 95%
[libx264 @ 0x5580ac186b40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 18% 7% 6% 11% 10% 10% 8% 8%
[libx264 @ 0x5580ac186b40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 18% 7% 5% 16% 11% 9% 6% 4%
[libx264 @ 0x5580ac186b40] i8c dc,h,v,p: 33% 21% 22% 24%
[libx264 @ 0x5580ac186b40] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x5580ac186b40] ref P L0: 85.7% 0.1% 13.2% 1.0%
[libx264 @ 0x5580ac186b40] ref B L0: 53.6% 46.4%
[libx264 @ 0x5580ac186b40] ref B L1: 92.8% 7.2%
[libx264 @ 0x5580ac186b40] kb/s:143.20
aman@aman:~/Desktop/a$ ffmpeg -loop 1 -i 'https://cdn.pixabay.com/photo/2021/04/17/18/26/woman-6186493__340.jpg' -t 5 -vf scale=1280:780 output.webm
ffmpeg version n4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
 configuration: --prefix= --prefix=/usr --disable-debug --disable-doc --disable-static --enable-cuda --enable-cuda-sdk --enable-cuvid --enable-libdrm --enable-ffplay --enable-gnutls --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libmp3lame --enable-libnpp --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopus --enable-libpulse --enable-sdl2 --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libv4l2 --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-nonfree --enable-nvenc --enable-omx --enable-openal --enable-opencl --enable-runtime-cpudetect --enable-shared --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib
 libavutil 56. 51.100 / 56. 51.100
 libavcodec 58. 91.100 / 58. 91.100
 libavformat 58. 45.100 / 58. 45.100
 libavdevice 58. 10.100 / 58. 10.100
 libavfilter 7. 85.100 / 7. 85.100
 libswscale 5. 7.100 / 5. 7.100
 libswresample 3. 7.100 / 3. 7.100
 libpostproc 55. 7.100 / 55. 7.100
Input #0, image2, from 'https://cdn.pixabay.com/photo/2021/04/17/18/26/woman-6186493__340.jpg':
 Duration: 00:00:00.04, start: 0.000000, bitrate: 5538 kb/s
 Stream #0:0: Video: mjpeg (Progressive), yuvj420p(pc, bt470bg/unknown/unknown), 511x340 [SAR 1:1 DAR 511:340], 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'output.webm' already exists. Overwrite? [y/N] y
Stream mapping:
 Stream #0:0 -> #0:0 (mjpeg (native) -> vp9 (libvpx-vp9))
Press [q] to stop, [?] for help
[swscaler @ 0x5630553879c0] deprecated pixel format used, make sure you did set range correctly
[libvpx-vp9 @ 0x563054cd2500] v1.7.0
[libvpx-vp9 @ 0x563054cd2500] Neither bitrate nor constrained quality specified, using default CRF of 32
Output #0, webm, to 'output.webm':
 Metadata:
 encoder : Lavf58.45.100
 Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 1280x780 [SAR 19929:21760 DAR 511:340], q=-1--1, 25 fps, 1k tbn, 25 tbc
 Metadata:
 encoder : Lavc58.91.100 libvpx-vp9
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
frame= 57 fps=0.0 q=0.0 size= 1kB time=00:00:01.28 bitrate= 3.3kbits/sframe= 103 fps=102 q=0.0 size= 1kB time=00:00:03.12 bitrate= 1.3kbits/sframe= 125 fps= 85 q=0.0 Lsize= 51kB time=00:00:04.96 bitrate= 84.0kbits/s speed=3.37x 
video:50kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.571023%



-
Taking in RTSP stream, converting it to fragmented mp4 using ffmpeg before broadcasting to connected clients through web socket
24 mars 2023, par ShaunI am taking in a live RTSP stream and converting it to fragmented mp4 using ffmpeg before re-distributing it to connected clients via a websocket. The clients will then play it using a normal web browser such as Chrome with Media Source Extensions. Most of the time, the code will work as intended but there will be occasions when the process of parsing the chunks emitted from the ffmpeg stdout will run into some issues. When everything is working well, each chunk of data emitted from ffmpeg will be parsed, sliced and regrouped into either a Initialisation Segment (made up of a FYTP box and a MOOV box) OR a Media Segment (made up of a MOOF box and a MDAT box). The key steps involved are :


- 

- Every byte of data coming out from will first be pushed into an array.
- Next, I will try to locate the box headers ('FYTP', 'MOOV', 'MOOF', 'MDAT') in the data.
- After the box headers are located, I will look for the length of each corresponding box (which resides in the first 32 bytes of each box) to locate the start and end of each box.
- With the box's length, I will then parse the array to filter out the data.
- Once the entire segment is filtered out, I will send it to all connected clients. For 'FYTP and 'MOOV', they will only be sent once to each client. For 'MOOF' AND 'MDAT', this will be a continuous process for as long as the client(s) are connected.












However, when things are not working well, my code will for some unknown reason be unable to slice the segments correctly. During the debugging process, I will notice that the problem will start first with a segment having sliced a few extra bytes more than it should have at the end. This problem will then quickly escalate and the next few segments will go totally haywire.


My suspicion is that this problem has less to do with my code than from the ffmpeg output. Has anyone faced similar problem before ? The following is my code. Any help on this will be much appreciated ! Thank you.


const WebSocket = require("ws");
const { spawn } = require('child_process');
const rtspUrl = "rtsp://localhost:8554/mystream";
const fs = require('fs');
const outputFile = fs.createWriteStream('ffmpeg_output.bin');
const wss = new WebSocket.Server({ port: 4001 });

var buf_chunks_string_holder_array = [];
var initialization_segment_ready_flag = false;
var initialization_segment_to_send = [];
var buffered_media_segment_ready_flag = false;
var buffered_media_segment_to_send = [];
var segment_end_index = { "box_type": "nil", "end_index": 0 };
var next_segment_counter = 0;
var processing_counter_queue = []
var moof_counter = 0;
var mdat_counter = 0;
var checker = '';

wss.on("connection", (ws) => {
 console.log("Client connected");
 if (initialization_segment_ready_flag == true) {
 wss.clients.forEach(client => {
 client.send(new Uint8Array(initialization_segment_to_send).buffer);
 })
 }
 if (buffered_media_segment_ready_flag == true) {
 wss.clients.forEach(client => {
 client.send(new Uint8Array(buffered_media_segment_to_send.buffer));
 })
 }

 ws.on("close", () => {
 console.log("Client disconnected");
 });

 ws.addEventListener("error", (error) => {
 console.error("WebSocket error:", error);
 });

});

const ffmpeg = spawn("ffmpeg", [
 "-rtsp_transport",
 "tcp",
 "-i",
 rtspUrl,
 "-g",
 "10",
 "-bufsize", 
 "50k",
 "-preset",
 "ultrafast",
 "-tune",
 "zerolatency",
 "-c:v",
 "libx264",
 "-c:a",
 "aac",
 '-f',
 'mp4',
 '-movflags',
 'frag_keyframe+empty_moov+default_base_moof',
 '-min_frag_duration',
 '50000', 
 "pipe:1",
]);

function decToHex(dec) {
 return dec.toString(16).padStart(2,'0').toUpperCase();
}

function hexToDec(hex) {
 return parseInt(hex, 16);
}

//This is where the parsing and calculating of the length of each box will take place.
ffmpeg.stdout.on('data', (chunk) => {
 outputFile.write(chunk);
 for (var i=0; i < chunk.length; i ++){
 buf_chunks_string_holder_array.push(chunk[i]);
 checker += decToHex(chunk[i]);
 if(checker.length == 16){
 if (checker.slice(-8) === '66747970'){
 let box_size_string = checker.slice(-16, -8);
 let num_bytes = hexToDec(box_size_string);
 next_segment_counter += num_bytes;
 }
 else if(checker.slice(-8) === '6D6F6F76'){
 let box_size_string = checker.slice(-16, -8);
 let num_bytes = hexToDec(box_size_string);
 next_segment_counter += num_bytes;
 segment_end_index = { "box_type": "ftyp&moov", "end_index": next_segment_counter };
 processing_counter_queue.push(segment_end_index);
 next_segment_counter = 0;
 }
 else if(checker.slice(-8) === '6D6F6F66'){
 let box_size_string = checker.slice(-16, -8);
 let num_bytes = hexToDec(box_size_string);
 next_segment_counter += num_bytes;
 moof_counter ++; 
 }
 else if(checker.slice(-8) === '6D646174'){
 let box_size_string = checker.slice(-16, -8);
 let num_bytes = hexToDec(box_size_string);
 next_segment_counter += num_bytes;
 segment_end_index = { "box_type": "moof&mdat", "end_index": next_segment_counter };
 processing_counter_queue.push(segment_end_index);
 next_segment_counter = 0;
 mdat_counter ++; 
 }
 checker = checker.slice(2);
 }
 }
 //This is where the data will be sliced, grouped into their respective segments and sent to the connected clients.
 if (processing_counter_queue.length > 0) {
 var jobs_removal_counter = 0;
 processing_counter_queue.forEach(job_info => {
 if (job_info.box_type == 'ftyp&moov' && buf_chunks_string_holder_array.length >= job_info.end_index) {
 initialization_segment_to_send = buf_chunks_string_holder_array.slice(0, job_info.end_index);
 initialization_segment_ready_flag = true;
 buf_chunks_string_holder_array = buf_chunks_string_holder_array.slice(job_info.end_index);
 jobs_removal_counter++;
 }
 if (job_info.box_type == 'moof&mdat' && buf_chunks_string_holder_array.length >= job_info.end_index) {
 buffered_media_segment_to_send = buf_chunks_string_holder_array.slice(0, job_info.end_index);
 buffered_media_segment_ready_flag = true;
 buf_chunks_string_holder_array = buf_chunks_string_holder_array.slice(job_info.end_index);
 if (buf_chunks_string_holder_array.length!= 0 ||
 (buf_chunks_string_holder_array[4]!= 102 && buf_chunks_string_holder_array[5]!= 116 && buf_chunks_string_holder_array[6]!= 121 && buf_chunks_string_holder_array[7]!= 112) || 
 (buf_chunks_string_holder_array[4]!= 109 && buf_chunks_string_holder_array[5]!= 100 && buf_chunks_string_holder_array[6]!= 97 && buf_chunks_string_holder_array[7]!= 116)){
 buf_chunks_string_holder_array = [];
 processing_counter_queue = [];
 }
 jobs_removal_counter++;
 if (wss.clients.size >= 1) {
 wss.clients.forEach(client => {
 client.send(new Uint8Array(buffered_media_segment_to_send).buffer);
 })
 }
 } 
 processing_counter_queue = processing_counter_queue.slice(jobs_removal_counter);
 }
 );
 }
});

ffmpeg.stderr.on('data', (data) => {
 console.log(`stderr: ${data}`);
});

ffmpeg.on('close', (code) => {
 console.log(`FFmpeg process exited with code ${code}`);
});



-
Taking care of silent priming frames converting mp4 to ts ?
13 février 2019, par keepitterronvideoOutputSettings = [
AVVideoCodecKey: AVVideoCodecH264,
AVVideoWidthKey: width,
AVVideoHeightKey: height,
AVVideoCompressionPropertiesKey: [
AVVideoAverageBitRateKey: avgBitRate,
AVVideoExpectedSourceFrameRateKey: fps,
AVVideoProfileLevelKey: AVVideoProfileLevelH264BaselineAutoLevel
]
]
audioOutputSettings = [
AVFormatIDKey: kAudioFormatMPEG4AAC,
AVSampleRateKey: 44100,
AVNumberOfChannelsKey: 2
]I record a video + audio with AVCaptureSession (screen, camera and mic in OSX) and i encode it with AVAssetWriter (AVFileType.mp4), swapping the writers every 6 seconds.
Every time a new part is written, a nodeJS app will be notified and using ffmpeg will convert it to ts withffmpeg -y -i generatedFile.mp4 -c copy -copyts -muxdelay 0 -muxpreload 0 outputFile.ts
I’ll manually write a m3u8 looking like :
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6.140227,
11214532343c4cae953d45e94a1660ea-0.ts
#EXTINF:6.284218,
11214532343c4cae953d45e94a1660ea-1.ts
#EXTINF:6.099999999999998,
11214532343c4cae953d45e94a1660ea-2.ts
#EXTINF:6.133333,
11214532343c4cae953d45e94a1660ea-3.ts
#EXTINF:6.133333,
11214532343c4cae953d45e94a1660ea-4.ts
#EXTINF:6.100000000000001,
11214532343c4cae953d45e94a1660ea-5.ts
#EXTINF:6.133333,
11214532343c4cae953d45e94a1660ea-6.ts
#EXTINF:6.199999999999996,
11214532343c4cae953d45e94a1660ea-7.ts
#EXTINF:6.0666670000000025,
11214532343c4cae953d45e94a1660ea-8.ts
#EXT-X-ENDLISTThe issue is : I have audio gaps between parts and I believe is AAC’s priming frames not being handled correctly.
Am I correct in assuming so ?example file
❯ afinfo 11.mp4
File: 11.mp4
File type ID: mp4f
Num Tracks: 1
----
Data format: 2 ch, 44100 Hz, 'aac ' (0x00000000) 0 bits/channel, 0 bytes/packet, 1024 frames/packet, 0 bytes/frame
no channel layout.
estimated duration: 6.128617 sec
audio bytes: 87558
audio packets: 266
bit rate: 113407 bits per second
packet size upper bound: 401
maximum packet size: 401
audio data file offset: 577163
optimized
audio 270272 valid frames + 2112 priming + 0 remainder = 272384
format list:
[ 0] format: 2 ch, 44100 Hz, 'aac ' (0x00000000) 0 bits/channel, 0 bytes/packet, 1024 frames/packet, 0 bytes/frame
Channel layout: Stereo (L R)
----example file
❯ ffprobe -v error -show_format -show_streams 1.mp4
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Baseline
codec_type=video
codec_time_base=1/60
codec_tag_string=avc1
codec_tag=0x31637661
width=1920
height=1080
coded_width=1920
coded_height=1088
has_b_frames=0
sample_aspect_ratio=1:1
display_aspect_ratio=16:9
pix_fmt=yuv420p
level=40
color_range=tv
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=bottom
field_order=unknown
timecode=N/A
refs=1
is_avc=true
nal_length_size=4
id=N/A
r_frame_rate=30/1
avg_frame_rate=30/1
time_base=1/600
start_pts=3600
start_time=6.000000
duration_ts=7260
duration=12.100000
bit_rate=4227137
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=183
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
TAG:creation_time=2019-02-13T13:21:51.000000Z
TAG:language=und
TAG:handler_name=Core Media Video
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
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=272991
start_time=6.190272
duration_ts=545352
duration=12.366259
bit_rate=115688
max_bit_rate=128000
bits_per_raw_sample=N/A
nb_frames=269
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
TAG:creation_time=2019-02-13T13:21:51.000000Z
TAG:language=und
TAG:handler_name=Core Media Audio
[/STREAM]
[FORMAT]
filename=1.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=6.000000
duration=12.366259
size=3317034
bit_rate=2145860
probe_score=100
TAG:major_brand=mp42
TAG:minor_version=1
TAG:compatible_brands=mp41mp42isom
TAG:creation_time=2019-02-13T13:21:51.000000Z
[/FORMAT]Is there a way I can generate ts files with the encoder delay being taken care of ?