
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (55)
-
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. -
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
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 (10517)
-
React Electron ffmpeg-extract-frames build error
28 mars 2020, par taylorallen0913I am using the npm module ffmpeg-extract-frames for splitting video frames. It works completely fine when I am testing the module in a vanilla node environment. However, when I import the module in my Electron React desktop app component, it gives me a error when building.
This is how I am importing it :
const extractFrames = require("ffmpeg-extract-frames");
This is the error I am getting when building in my React Electron component :
> expedition-hacks-project@0.1.0 build /home/taylorallen/Desktop/expedition-hacks-project
> set "FLUENTFFMPEG_COV=false" && react-scripts build
Creating an optimized production build...
Failed to compile.
./node_modules/fluent-ffmpeg/index.js
Cannot find module: './lib-cov/fluent-ffmpeg'. Make sure this package is installed.
You can install this package by running: npm install ./lib-cov/fluent-ffmpeg.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! expedition-hacks-project@0.1.0 build: `set "FLUENTFFMPEG_COV=false" && react-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the expedition-hacks-project@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/taylorallen/.npm/_logs/2020-03-28T22_36_18_100Z-debug.logMy package.json :
{
"name": "expedition-hacks-project",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"bootstrap": "^4.4.1",
"bootstrap-fileinput": "^5.0.8",
"ffmpeg-extract-frames": "^2.0.2",
"fluent-ffmpeg": "^2.1.2",
"jquery": "^3.4.1",
"popper.js": "^1.16.1",
"react": "^16.13.1",
"react-bootstrap": "^1.0.0",
"react-dom": "^16.13.1",
"react-dropzone": "^10.2.2",
"react-icons": "^3.9.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.4.1"
},
"homepage": "./",
"main": "src/main.js",
"scripts": {
"start": "react-scripts start",
"build": "set \"FLUENTFFMPEG_COV=false\" && react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"electron": "electron ."
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"electron": "^8.2.0",
"electron-log": "^4.1.0",
"react-app-rewired": "^2.1.5"
}
}I found a github issue https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/issues/573#issuecomment-305408048 addressing this error, and I set FLUENTFFMPEG_COV=0 on in my build script
My scripts :
"scripts": {
"start": "react-scripts start",
"build": "set \"FLUENTFFMPEG_COV=false\" && react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"electron": "electron ."
},Setting the env variable seems to not do anything, I still get the same error.
-
FFMPEG Merge Multiple Videos : No Audio Source for one of them
28 mars 2020, par Coach RoebuckI’ve written a node.js script to merge multiple video files into a single file. I’ve encountered a scenario in which no audio is provided for one of the input video files.
I first executed ffprobe so that I can access what I’ll refer to as the "video file spec". In this scenario, I created a basic module to help me better understand my problem :
Evaluation from all processes: [
{
fileName: 'input-0.mp4',
isVideoAvailable: true,
isAudioAvailable: false,
width: 1920,
height: 1080,
sampleRateAspectRatio: '1/1',
audioVolume: 1,
duration: '13.140000'
},
{
fileName: 'input-1.mp4',
isVideoAvailable: true,
isAudioAvailable: true,
width: 1920,
height: 1080,
sampleRateAspectRatio: '1/1',
audioVolume: 1,
duration: '17.160000'
},
{
fileName: 'input-2.mp4',
isVideoAvailable: true,
isAudioAvailable: true,
width: 1920,
height: 1080,
sampleRateAspectRatio: '1/1',
audioVolume: 1,
duration: '20.280000'
},
{
fileName: 'input-3.mp4',
isVideoAvailable: true,
isAudioAvailable: true,
width: 1920,
height: 1080,
sampleRateAspectRatio: '1/1',
audioVolume: 1,
duration: '19.020000'
},
{
fileName: 'input-4.mp4',
isVideoAvailable: true,
isAudioAvailable: true,
width: 1920,
height: 1080,
sampleRateAspectRatio: '1/1',
audioVolume: 1,
duration: '9.480000'
}
]This next block of code are the parameters that I’ve actually hard-coded in this case. The screen resolution and aspect ratio are manually set, as I discovered differing settings with each video I have been processing. These parameters allow FFMPEG to execute successfully under normal circumstances :
let ffmpegParameters = [
'-i',
'input-0.mp4',
'-i',
'input-1.mp4',
'-i',
'input-2.mp4',
'-i',
'input-3.mp4',
'-i',
'input-4.mp4',
'-f',
'lavfi',
'-t',
'0.1',
'-i',
'anullsrc',
'-filter_complex',
'[0:v]scale=1920:1080,setsar=1/1[v0];[0:a]volume=1.0[a0];[1:v]scale=1920:1080,setsar=1/1[v1];[1:a]volume=1.0[a1];[2:v]scale=1920:1080,setsar=1/1[v2];[2:a]volume=1.0[a2];[3:v]scale=1920:1080,setsar=1/1[v3];[3:a]volume=1.0[a3];[4:v]scale=1920:1080,setsar=1/1[v4];[4:a]volume=1.0[a4];[v0][a0][v1][a1][v2][a2][v3][a3][v4][a4]concat=n=5:v=1:a=1[v][a]',
'-map',
'[v]',
'-map',
'[a]',
'-c:v',
'libx264',
'-vsync',
'2',
'output.mp4'
]A comment from a different thread suggested to supply a dummy audio in cases such as mine. I’ve added that to no prevail :
'-f',
'lavfi',
'-t',
'0.1',
'-i',
'anullsrc',I do not know how to adjust the complex filter to account for my situation of the first video containing no audio. I’ve included the entire log below :
Logs:
ffmpeg version git-2020-02-03-1c15111
Copyright (c) 2000-2020 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.8)
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-appkit --enable-avfoundation --enable-coreimage --enable-audiotoolbox
libavutil 56. 38.100 / 56. 38.100
libavcodec 58. 67.100 / 58. 67.100
libavformat 58. 37.100 / 58. 37.100
libavdevice 58. 9.103 / 58. 9.103
libavfilter 7. 73.100 / 7. 73.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input-0.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.37.100
Duration: 00:00:14.80, start: 1.620000, bitrate: 1499 kb/s
Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1498 kb/s, 25 fps, 25 tbr, 1200k tbn, 2400k tbc (default)
Metadata:
handler_name : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'input-1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.37.100
Duration: 00:00:18.48, start: 0.000000, bitrate: 977 kb/s
Stream #1:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1440x876 [SAR 1:1 DAR 120:73], 903 kb/s, 15.21 fps, 16.67 tbr, 16k tbn, 32k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'input-2.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.37.100
Duration: 00:00:22.68, start: 0.000000, bitrate: 1795 kb/s
Stream #2:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1718 kb/s, 29.54 fps, 50 tbr, 16k tbn, 32k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #2:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'input-3.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.37.100
Duration: 00:00:54.60, start:
0.000000, bitrate: 404 kb/s
Stream #3:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1440x876 [SAR 1:1 DAR 120:73], 330 kb/s, 15.24 fps, 16.67 tbr, 16k tbn, 32k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #3:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
Metadata:
handler_name : SoundHandler
Input #4, mov,mp4,m4a,3gp,3g2,mj2, from 'input-4.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.37.100
Duration: 00:00:09.36
, start: 0.000000, bitrate: 1794 kb/s
Stream #4:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1717 kb/s, 29.38 fps, 50 tbr, 16k tbn, 32k tbc (default)
Metadata:
handler_name : VideoHandler
Stream #4:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 69 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream specifier ':a' in filtergraph description [0:v]scale=1920:1080,setsar=1/1[v0];[0:a]volume=1.0[a0];[1:v]scale=1920:1080,setsar=1/1[v1];[1:a]volume=1.0[a1];[2:v]scale=1920:1080,setsar=1/1[v2];[2:a]volume=1.0[a2];[3:v]scale=1920:1080,setsar=1/1[v3];[3:a]volume=1.0[a3];[4:v]scale=1920:1080,setsar=1/1[v4];[4:a]volume=1.0[a4];[v0][a0][v1][a1][v2][a2][v3][a3][v4][a4]concat=n=5:v=1:a=1[v][a] matches no streams.When I removed the stream specifier [a0], I received a different error :
FFmpeg Video Merge - STDERR: [Parsed_setsar_3 @ 0x7f87c7709100] Media type mismatch between the 'Parsed_setsar_3' filter output pad 0 (video) and the 'Parsed_concat_14' filter input pad 1 (audio)
[AVFilterGraph @ 0x7f87c7430c00] Cannot create the link setsar:0 -> concat:1My question is how will the filter-complex value of my parameter list that I have defined be adjusted to deal with that first video, which has no audio ?
-
Why won't this encrypted HLS video play on iOS (but works on Windows Chrome via hls.js library) ?
8 mai 2023, par RyanI am trying to play an MP4 test video.


My
/home/vagrant/Code/example/public/hls_hls.keyInfo
is :

https://example.com/hls.key
/home/vagrant/Code/example/public/hls_hls.key
467216aae8a26fb699080812628031955e304a66e9e4480f9b70d31d8fe94e9a



My
/home/vagrant/Code/example/public/hls_hls.key
was generated using PHP :hex2bin('467216aae8a26fb699080812628031955e304a66e9e4480f9b70d31d8fe94e9a')


The ffmpeg command for encrypting the video as HLS playlist with "ts" files :


'/usr/bin/ffmpeg' '-y' '-i' 'storage/app/sample_media2/2020-02-27/Sample_Videos_5.mp4' 
'-c:v' 'libx264' '-s:v' '1920x1080' '-crf' '20' '-sc_threshold' '0' '-g' '48' 
'-keyint_min' '48' '-hls_list_size' '0' 
'-hls_time' '10' '-hls_allow_cache' '0' '-b:v' '4889k' '-maxrate' '5866k' 
'-hls_segment_type' 'mpegts' '-hls_fmp4_init_filename' 'output_init.mp4' 
'-hls_segment_filename' 'storage/app/public/test/output_1080p_%04d.ts' 
'-hls_key_info_file' '/home/vagrant/Code/example/public/hls_hls.keyInfo' 
'-strict' '-2' '-threads' '12' 'storage/app/public/test/output_1080p.m3u8'



Then, I know from https://caniuse.com/#search=hls that Windows Chrome won't be able to play the HLS video without a library, so I use https://github.com/video-dev/hls.js/, and Windows Chrome successfully plays the encrypted video !


However, iOS Safari is unable to play it (with or without the hls.js library).


On iOS Safari, when I try to play the video, I see just a quick glimpse (less than a second) where the screen shows 0:15, so it must be reading and decrypting enough to know the correct duration of the video.


So, to debug, I log events :


const nativeHlsEvents = ['play', 'playing', 'abort', 'error', 'canplaythrough', 'waiting', 'loadeddata', 'loadstart', 'progress', 'timeupdate', 'volumechange'];
$.each(nativeHlsEvents, function (i, eventType) {
 video.addEventListener(eventType, (event) => {//https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement
 console.log(eventType, event);
 if (eventType === 'error') {
 console.error(video.error);//https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error
 }
 });
});



I see in the console log :


loadstart, {"isTrusted":true}
progress, {"isTrusted":true}
play, {"isTrusted":true}
waiting, {"isTrusted":true}
error, {"isTrusted":true}
video.error, {}



I don't know how to find more details about the error.


Note that even though Windows Chrome successfully plays the video, it too shows warnings in the console log :


{"type":"mediaError","details":"fragParsingError","fatal":false,"reason":"TS packet did not start with 0x47","frag":{"...
{"type":"mediaError","details":"fragParsingError","fatal":false,"reason":"no audio/video samples found","frag":{...



Where is my problem ?