
Recherche avancée
Médias (1)
-
Spitfire Parade - Crisis
15 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (56)
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP 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 (...)
Sur d’autres sites (8044)
-
Concatenating Video Files using FFMPEG YUV issue
3 novembre 2015, par SpoiledTechie.comI am concatenating three videos with FFMPEG.
The 1st and 3rd video of the concatenation were pulled from an AVI file using FFMPEG and converted into MP4.
Their codec information is below.
The 2nd video in the concatenation is compiled using FFMPEG. I am compiling frames with FFMPEG to create this video.
Its codec information is below.
As you can see, the videos share the same codec, resolution and frame rate.The only thing they don’t share is the Decoded format. One being 4:4:4 and one being 4:2:2
I think I understand what YUV means from this link, https://msdn.microsoft.com/en-us/library/windows/desktop/dd391027%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
When I concatenate these three videos together, using concat demuxer, it works, but when I try to watch the final video, the video shows the first file playing just right, then the 2nd video in the final video shows up BLANK and the third video plays just fine as well.
So my question is, how do I concat 3 MP4 files, but change what seems to be the decoded format for the 2nd video to 4:2:2. When I compile the frames, I imagine I can change the YUV format, but I don’t know how just yet.
-
FFmpeg : MD5 hash of M3U8 playlists generated from same input video with different segment durations (after applying video filter) don't match
30 juillet 2020, par Saurabh P BhandariHere are a few commands I am using to convert and transize a video in MP4 format to a M3U8 playlist.


For a given input video (MP4 format), generate multiple video segments with segment duration 30 seconds.


ffmpeg -loglevel error -i input.mp4 -dn -sn -an -c:v copy -bsf:v h264_mp4toannexb -copyts -start_at_zero -f segment -segment_time 30 30%03d.mp4 -dn -sn -vn -c:a copy audio.aac



Apply a video filter (in this case scaling) on each segment and convert it to a M3U8 format.


ls 30*.mp4 | parallel 'ffmpeg -loglevel error -i {} -vf scale=-2:144 -hls_list_size 0 {}.m3u8'



Store the list of m3u8 files generated in
list.txt
in this formatfile 'segment-name.m3u8'


for f in 30*.m3u8; do echo "file '$f'" >> list.txt; done



Using concat demuxer, combine all segment files (which are in M3U8 format) and the audio to get one final m3u8 playlist pointing to segments with duration of 10 seconds.


ffmpeg -loglevel error -f concat -i list.txt -i audio.aac -c copy -hls_list_size 0 -hls_time 10 output_30.m3u8




I can change the segment duration in the first step from 30 seconds to 60 seconds, and compare the MD5 hash of the final M3U8 playlist generated in both the cases using this command :


ffmpeg -loglevel error -i <input m3u8="m3u8" playlist="playlist" /> -f md5 -



The MD5 hash of the output files differ, i.e., video streams of
output_30.m3u8
andoutput_60.m3u8
are not the same.

Can anyone elaborate on this ?


(I expected the MD5 hash to be the same)


-
How can several .ts files be converted to one (non-fragmented) .mp4 file using ffmpeg ?
23 juin 2021, par verified_tinkerProblem Description


The video player I'm using doesn't support
.ts
files, but it does play.mp4
files, so I'd like to use ffmpeg to convert my.ts
files to.mp4
files.

Goal Solution


Use ffmpeg to download several
.ts
segments and transcode them into an.mp4
file that I'd load into my video player. Rinse and repeat. It'd add a delay of 10-20 seconds, but that's fine.

The trick is to do the transcoding fast enough so, by the time one
.mp4
file is finished playing, the next one is available ; in other words, the transcoding should take less than a second per second of footage. Ideally, it would take significantly less than that, to account for varying processing power on different devices.

To clarify, when I say
.mp4
, I don't mean fragmented.mp4
files.


If transcoding to some other format is faster, that might be fine, too. For example, I know the
.mkv
format is playable. I'm still exploring the full range of available formats.

What I've Tried


I tested transcoding 1
.ts
file into an.mp4
file, and unfortunately it took about 6 seconds when the file was about 4 seconds long. That was with ffmpeg-wasm. I was hoping the JavaScript bridge might be slowing it down and that batching several.ts
segments in 1 call might help.

Command


ffmpeg -i test.ts test.mp4



Log


[info] run FS.writeFile test.ts <349304 bytes binary file>
log.js:15 [info] run ffmpeg command: -i test.ts test.mp4
log.js:15 [fferr] ffmpeg version v0.9.0-2-gb11e5c1495 Copyright (c) 2000-2020 the FFmpeg developers
log.js:15 [fferr] built with emcc (Emscripten gcc/clang-like replacement) 2.0.8 (d059fd603d0b45b584f634dc2365bc9e9a6ec1dd)
log.js:15 [fferr] configuration: --target-os=none --arch=x86_32 --enable-cross-compile --disable-x86asm --disable-inline-asm --disable-stripping --disable-programs --disable-doc --disable-debug --disable-runtime-cpudetect --disable-autodetect --extra-cflags='-s USE_PTHREADS=1 -I/src/build/include -O3 --closure 1' --extra-cxxflags='-s USE_PTHREADS=1 -I/src/build/include -O3 --closure 1' --extra-ldflags='-s USE_PTHREADS=1 -I/src/build/include -O3 --closure 1 -L/src/build/lib' --pkg-config-flags=--static --nm=llvm-nm --ar=emar --ranlib=emranlib --cc=emcc --cxx=em++ --objcc=emcc --dep-cc=emcc --enable-gpl --enable-nonfree --enable-zlib --enable-libx264 --enable-libx265 --enable-libvpx --enable-libwavpack --enable-libmp3lame --enable-libfdk-aac --enable-libtheora --enable-libvorbis --enable-libfreetype --enable-libopus --enable-libwebp --enable-libass --enable-libfribidi
log.js:15 [fferr] libavutil 56. 51.100 / 56. 51.100
log.js:15 [fferr] libavcodec 58. 91.100 / 58. 91.100
log.js:15 [fferr] libavformat 58. 45.100 / 58. 45.100
log.js:15 [fferr] libavdevice 58. 10.100 / 58. 10.100
log.js:15 [fferr] libavfilter 7. 85.100 / 7. 85.100
log.js:15 [fferr] libswscale 5. 7.100 / 5. 7.100
log.js:15 [fferr] libswresample 3. 7.100 / 3. 7.100
log.js:15 [fferr] libpostproc 55. 7.100 / 55. 7.100
log.js:15 [fferr] Input #0, mpegts, from 'test.ts':
log.js:15 [fferr] Duration: 00:00:04.00, start: 10.006000, bitrate: 698 kb/s
log.js:15 [fferr] Program 1 
log.js:15 [fferr] Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720, 23.98 tbr, 90k tbn, 1411200000.00 tbc
log.js:15 [fferr] Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 130 kb/s
log.js:15 [fferr] Stream mapping:
log.js:15 [fferr] Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
log.js:15 [fferr] Stream #0:1 -> #0:1 (aac (native) -> aac (native))
log.js:15 [fferr] [libx264 @ 0x1f5f080] using cpu capabilities: none!
log.js:15 [fferr] [libx264 @ 0x1f5f080] profile High, level 3.1, 4:2:0, 8-bit
log.js:15 [fferr] [libx264 @ 0x1f5f080] 264 - core 160 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - 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=6 lookahead_threads=1 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=23 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
log.js:15 [fferr] Output #0, mp4, to 'test.mp4':
log.js:15 [fferr] Metadata:
log.js:15 [fferr] encoder : Lavf58.45.100
log.js:15 [fferr] Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 1280x720, q=-1--1, 23.98 fps, 24k tbn, 23.98 tbc
log.js:15 [fferr] Metadata:
log.js:15 [fferr] encoder : Lavc58.91.100 libx264
log.js:15 [fferr] Side data:
log.js:15 [fferr] cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
log.js:15 [fferr] Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
log.js:15 [fferr] Metadata:
log.js:15 [fferr] encoder : Lavc58.91.100 aac
log.js:15 [fferr] frame= 3 fps=0.0 q=0.0 size= 0kB time=00:00:00.38 bitrate= 1.0kbits/s dup=1 drop=0 speed=0.521x 
log.js:15 [fferr] frame= 47 fps= 27 q=0.0 size= 0kB time=00:00:02.09 bitrate= 0.2kbits/s dup=1 drop=0 speed=1.22x 
log.js:15 [fferr] frame= 57 fps= 25 q=28.0 size= 0kB time=00:00:02.51 bitrate= 0.2kbits/s dup=1 drop=0 speed=1.13x 
log.js:15 [fferr] frame= 67 fps= 24 q=28.0 size= 0kB time=00:00:02.96 bitrate= 0.1kbits/s dup=1 drop=0 speed=1.08x 
log.js:15 [fferr] frame= 77 fps= 23 q=28.0 size= 0kB time=00:00:03.37 bitrate= 0.1kbits/s dup=1 drop=0 speed=1.03x 
log.js:15 [fferr] frame= 89 fps= 23 q=28.0 size= 0kB time=00:00:03.96 bitrate= 0.1kbits/s dup=1 drop=0 speed=1.04x 
log.js:15 [fferr] frame= 96 fps= 15 q=-1.0 Lsize= 60kB time=00:00:04.01 bitrate= 122.8kbits/s dup=1 drop=0 speed=0.646x 
log.js:15 [fferr] video:55kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 7.249582%
log.js:15 [fferr] [libx264 @ 0x1f5f080] frame I:1 Avg QP:17.20 size: 31521
log.js:15 [fferr] [libx264 @ 0x1f5f080] frame P:24 Avg QP:16.17 size: 735
log.js:15 [fferr] [libx264 @ 0x1f5f080] frame B:71 Avg QP:27.68 size: 91
log.js:15 [fferr] [libx264 @ 0x1f5f080] consecutive B-frames: 1.0% 0.0% 3.1% 95.8%
log.js:15 [fferr] [libx264 @ 0x1f5f080] mb I I16..4: 26.2% 56.4% 17.4%
log.js:15 [fferr] [libx264 @ 0x1f5f080] mb P I16..4: 0.1% 0.2% 0.0% P16..4: 3.5% 0.4% 0.2% 0.0% 0.0% skip:95.4%
log.js:15 [fferr] [libx264 @ 0x1f5f080] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 1.6% 0.0% 0.0% direct: 0.0% skip:98.3% L0:31.0% L1:69.0% BI: 0.0%
log.js:15 [fferr] [libx264 @ 0x1f5f080] 8x8 transform intra:56.5% inter:59.4%
log.js:15 [fferr] [libx264 @ 0x1f5f080] coded y,uvDC,uvAC intra: 17.4% 15.4% 7.5% inter: 0.2% 0.4% 0.0%
log.js:15 [fferr] [libx264 @ 0x1f5f080] i16 v,h,dc,p: 29% 63% 1% 7%
log.js:15 [fferr] [libx264 @ 0x1f5f080] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 51% 31% 14% 0% 2% 1% 1% 0% 1%
log.js:15 [fferr] [libx264 @ 0x1f5f080] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 45% 11% 2% 3% 2% 4% 2% 4%
log.js:15 [fferr] [libx264 @ 0x1f5f080] i8c dc,h,v,p: 76% 17% 6% 1%
log.js:15 [fferr] [libx264 @ 0x1f5f080] Weighted P-Frames: Y:0.0% UV:0.0%
log.js:15 [fferr] [libx264 @ 0x1f5f080] ref P L0: 89.5% 1.6% 6.7% 2.3%
log.js:15 [fferr] [libx264 @ 0x1f5f080] ref B L0: 38.5% 60.9% 0.6%
log.js:15 [fferr] [libx264 @ 0x1f5f080] ref B L1: 97.7% 2.3%
log.js:15 [fferr] [libx264 @ 0x1f5f080] kb/s:111.08
log.js:15 [fferr] [aac @ 0x1f48100] Qavg: 65536.000
log.js:15 [ffout] FFMPEG_END
log.js:15 [info] run FS.readFile test.mp4
(index):38 Time elapsed: 6345 (This one's my own code.)
[info] run FS.readFile test.mp4



(I'm running this on the browser. For the purposes of this question, consider the HTML player unavailable for use.)



I also tested feeding the HLS live-stream URL as input to ffmpeg and outputting a single
.mp4
file, but I couldn't play it until I ended the live-stream and ffmpeg finished downloading it.

This one I ran on the (Windows) PC ; not the browser.


Command


ffmpeg -i https://stream.mux.com/lngMYGqNpHhYg2ZXqpH8WODVGzuenaZuhckdyunGpzU.m3u8 -acodec copy -bsf:a aac_adtstoasc -vcodec copy out.mp4



Log


The log is too large and StackOverflow won't let me paste it here, so I uploaded it to PasteBin : https://pastebin.com/FqvPQ1DZ