
Recherche avancée
Médias (1)
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
Autres articles (85)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (9428)
-
Manual encoding into MPEG-TS
4 juillet 2014, par LaneSO...
I am trying to take a H264 Annex B byte stream video and encode it into MPEG-TS in pure Java. My goals is to create a minimal MPEG-TS, Single Program, valid stream and to not include any timing information information (PCR, PTS, DTS).
I am currently at the point where my generated file can be passed to ffmpeg (ffmpeg -i myVideo.ts) and ffmpeg reports...
[NULL @ 0x7f8103022600] start time is not set in estimate_timings_from_pts
Input #0, mpegts, from 'video.ts':
Duration: N/A, bitrate: N/A
Program 1
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc...it seems like this warning for start time is not a big deal... and ffmpeg is unable to determine how long the video is. If I create another mpeg-ts file from my video file (ffmpeg -i myVideo.ts -vcodec copy validVideo.ts) and run ffmpeg -i validVideo.ts I get...
Input #0, mpegts, from 'video2.ts':
Duration: 00:00:11.61, start: 1.400000, bitrate: 3325 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc...so you can see the timing information and bitrate is there and so is the metadata.
My H264 video is comprised of only I and P Frames (with the SPS and PPS preceding the I Frame of course) and the way that I am creating my MPEG-TS stream is...
- Write a single PAT at the beginning of the file
- Write a single PMT at the beginning of the file
- Create TS and PES packets from SPS, PPS and I Frame (AUD NALs too, if this is required ?)
- Create TS and PES packets from P Frame (again, AUD NALs too, if required)
- For the last payload of either an I Frame or P Frame, add filler bytes to an adaptation field to make sure it fits into a full TS packet
- Repeat 3-5 for the entire file
...my PAT looks like this...
4740 0010 0000 b00d 0001 c100 0000 01f0
002a b104 b2ff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff...and my PMT looks like this...
4750 0010
0002 b012 0001 c100 00ff fff0 001b e100
f000 c15b 41e0 ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff...notice after the c100 00, the "ff ff", f0... says that we are not using a PCR... Also notice that I have updated my CRC to reflect this change to the PMT. My first I Frame packet looks like...
4741 0010 0000 01e0
0000 8000 0000 0000 0109 f000 0000 0127
4d40 288d 8d60 2802 dd80 b501 0101 4000
00fa 4000 3a98 3a18 00b7 2000 3380 2ef2
e343 0016 e400 0670 05de 5c16 345d c000
0000 0128 ee3c 8000 0000 0165 8880 0020
0000 4fe5 63b5 4e90 b11c 9f8f f891 10f3
13b1 666b 9fc6 03e9 e321 36bf 1788 347b
eb23 fc89 5772 6e2e 1714 96df ed16 9b30
252d ceb7 07e9 a0c7 c6e7 9515 be87 2df1
81f3 b9d2 ba5f 243e 2d5c cba2 8ca5 b798
6bec 8c43 0b5d bbda bc5b 6e7c e15c 84e8
2f13 be84...you’ll notice after the 01e0 0000, 8000 00 is the PES header extension where I specify no PTS / DTS and the remaining length is zero. My first P Frame packet looks like...
4741 001d
0000 01e0 0000 8000 0000 0000 0109 f000
0000 0141 9a00 0200 0593 ff45 a7ae 1acd
f2d7 f9ec 557f cdb6 ba38 60d6 a626 5edb
4bb9 9783 89e2 d7e1 102e 4625 2fbf ce16
f952 d8c9 f027 e55a 6b2a 81c3 48d4 6a45
050a f355 fbec db01 6562 6405 04aa e011
50ec 0b45 45e5 0df7 2fed a3f8 ac13 2e69
6739 6d81 f13d 2455 e6ca 1c6b dc96 65d5
3bad f250 7dab 42e4 7ba9 f564 ee61 29fb
1b2c 974c 6924 1a1f 99ef 063c b99a c507
8c22 b0f8 b14c 3e4d 01d0 6120 4e19 8725
2fda 6550 f907 3f87...and whenever an I Frame or P Frame is ending, I have a TS packet with an adaptation field like...
4701 003c b000 ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff...where the first b0 bytes are the adaptation field stuffing bytes and the remaining ones are the final bytes of the I or P Frame. So as you can tell I can use ffmpeg and pass it my file to create a valid movie in any format. However, I need the file I create to be in the proper format and I cannot quite figure out what the last piece I am missing is. Any ideas ?
-
What is the purpose of CHAPTER END in video metadata ?
20 décembre 2022, par CypcI am learning how to use ffmpeg to add chapters to fairly long recordings as a mean of remembering key timestamps.
After a successful test I got my chapters showing in VLC as little marks on the time bar and in chapter menu, but those marks correspond to START time obviously.


So what is the purpose of END time ? It does not seem to do anything in VLC, is it important to have a chapter starting at the start of the video and one ending at the end of the video ? Is it important to have each chapter end when the next one starts ?


[CHAPTER]
TIMEBASE=1/1
START=1
END=600
title=Chapter



-
Download M3U8 That Is Playable
15 octobre 2022, par Devin DixonI am trying to download a livestream from this traffic camera source : https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/playlist.m3u8


The ffmpeg I am using is :


ffmpeg -i https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/playlist.m3u8 -preset slow -codec:a libfdk_aac -b:a 128k -codec:v libx264 -pix_fmt yuv420p -b:v 4500k -minrate 4500k -maxrate 9000k -bufsize 9000k -vf scale=-1:720 test.mp4



And here are the logs when I quit the recording :


ffmpeg version 5.0.1 Copyright (c) 2000-2022 the FFmpeg developers
 built with Apple clang version 13.1.6 (clang-1316.0.21.2)
 configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.0.1 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
 libavutil 57. 17.100 / 57. 17.100
 libavcodec 59. 18.100 / 59. 18.100
 libavformat 59. 16.100 / 59. 16.100
 libavdevice 59. 4.100 / 59. 4.100
 libavfilter 8. 24.100 / 8. 24.100
 libswscale 6. 4.100 / 6. 4.100
 libswresample 4. 3.100 / 4. 3.100
 libpostproc 56. 3.100 / 56. 3.100
[hls @ 0x1417050e0] Skip ('#EXT-X-VERSION:3')
[hls @ 0x1417050e0] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/chunklist_w259023283.m3u8' for reading
[hls @ 0x1417050e0] Skip ('#EXT-X-VERSION:3')
[hls @ 0x1417050e0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[hls @ 0x1417050e0] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/media_w259023283_61526.ts' for reading
[hls @ 0x1417050e0] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/media_w259023283_61527.ts' for reading
Input #0, hls, from 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/playlist.m3u8':
 Duration: N/A, start: 65276.905822, bitrate: N/A
 Program 0 
 Metadata:
 variant_bitrate : 142637
 Stream #0:0: Data: timed_id3 (ID3 / 0x20334449)
 Metadata:
 variant_bitrate : 142637
 Stream #0:1: Video: h264 (Baseline) ([27][0][0][0] / 0x001B), yuvj420p(pc, bt709), 480x270 [SAR 1:1 DAR 16:9], 15 fps, 15 tbr, 90k tbn
 Metadata:
 variant_bitrate : 142637
Stream mapping:
 Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[swscaler @ 0x120248000] [swscaler @ 0x120258000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x120278000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x120288000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x120298000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202a8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202b8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202c8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202d8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202e8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x1202f8000] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 0x120248000] [swscaler @ 0x120308000] deprecated pixel format used, make sure you did set range correctly
[libx264 @ 0x14169ff30] using SAR=1/1
[libx264 @ 0x14169ff30] using cpu capabilities: ARMv8 NEON
[libx264 @ 0x14169ff30] profile High, level 3.1, 4:2:0, 8-bit
[libx264 @ 0x14169ff30] 264 - core 163 r3060 5db6aa6 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=5 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=15 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=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=15 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1 bitrate=4500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=9000 vbv_bufsize=9000 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'test.mp4':
 Metadata:
 encoder : Lavf59.16.100
 Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 4500 kb/s, 15 fps, 15360 tbn
 Metadata:
 variant_bitrate : 142637
 encoder : Lavc59.18.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 9000000/0/4500000 buffer size: 9000000 vbv_delay: N/A
[https @ 0x13201ce00] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/media_w259023283_61528.ts' for reading
[https @ 0x131814200] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/chunklist_w259023283.m3u8' for reading
[hls @ 0x1417050e0] Skip ('#EXT-X-VERSION:3')
[hls @ 0x1417050e0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[https @ 0x131814200] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/chunklist_w259023283.m3u8' for reading
[hls @ 0x1417050e0] Skip ('#EXT-X-VERSION:3')
[hls @ 0x1417050e0] Skip ('#EXT-X-DISCONTINUITY-SEQUENCE:0')
[https @ 0x13201ce00] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/media_w259023283_61529.ts' for reading
[tls @ 0x131606060] Error in the pull function.
[tls @ 0x131606060] IO error: End of file
[hls @ 0x1417050e0] Opening 'https://vss1live.dot.ga.gov/lo/alph-cam-002.stream/media_w259023283_61529.ts' for reading
^Cav_interleaved_write_frame(): Immediate exit requested93 bitrate=4697.0kbits/s speed=1.77x 
Error writing trailer of test.mp4: Immediate exit requested
frame= 610 fps= 23 q=4.0 Lsize= 20224kB time=00:00:36.13 bitrate=4585.1kbits/s speed=1.35x 
video:20500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Error closing file test.mp4: Immediate exit requested
[libx264 @ 0x14169ff30] frame I:3 Avg QP: 2.13 size:192240
[libx264 @ 0x14169ff30] frame P:156 Avg QP: 0.44 size: 66488
[libx264 @ 0x14169ff30] frame B:451 Avg QP: 1.32 size: 28629
[libx264 @ 0x14169ff30] consecutive B-frames: 1.1% 0.3% 1.5% 97.0%
[libx264 @ 0x14169ff30] mb I I16..4: 21.7% 26.6% 51.7%
[libx264 @ 0x14169ff30] mb P I16..4: 2.9% 3.1% 11.0% P16..4: 9.3% 4.1% 3.4% 0.0% 0.0% skip:66.1%
[libx264 @ 0x14169ff30] mb B I16..4: 0.1% 0.4% 1.6% B16..8: 14.6% 4.0% 2.1% direct: 3.2% skip:73.9% L0:53.1% L1:41.6% BI: 5.3%
[libx264 @ 0x14169ff30] final ratefactor: -0.00
[libx264 @ 0x14169ff30] 8x8 transform intra:19.0% inter:11.1%
[libx264 @ 0x14169ff30] direct mvs spatial:98.2% temporal:1.8%
[libx264 @ 0x14169ff30] coded y,uvDC,uvAC intra: 91.5% 77.2% 76.6% inter: 11.8% 12.2% 11.9%
[libx264 @ 0x14169ff30] i16 v,h,dc,p: 17% 54% 10% 19%
[libx264 @ 0x14169ff30] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 42% 15% 3% 5% 3% 7% 3% 6%
[libx264 @ 0x14169ff30] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 32% 13% 5% 9% 5% 9% 4% 7%
[libx264 @ 0x14169ff30] i8c dc,h,v,p: 38% 44% 13% 5%
[libx264 @ 0x14169ff30] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0x14169ff30] ref P L0: 83.7% 3.3% 8.8% 2.4% 1.8% 0.0%
[libx264 @ 0x14169ff30] ref B L0: 79.9% 19.0% 0.8% 0.3%
[libx264 @ 0x14169ff30] ref B L1: 99.0% 1.0%
[libx264 @ 0x14169ff30] kb/s:4693.84
Exiting normally, received signal 2.



Except the video doesn't seem to be playable by VLC or Quicktime. Given that the stream can end at any moment thus ending the file, how do I make the file actually playable ?