
Recherche avancée
Autres articles (38)
-
Création définitive du canal
12 mars 2010, parLorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
A la validation, vous recevez un email vous invitant donc à créer votre canal.
Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...) -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (4839)
-
Why doesn't the ffmpeg output display the stream in the browser ? [closed]
10 mai 2024, par TebyyWhy is it that when I create a livestream in Python using ffmpeg, and then I open the browser and visit the page, the page keeps loading continuously, and in PyCharm logs, I see binary data ? There are no errors displayed, and the code seems correct to me. I even tried saving to a file for testing purposes, and when I play the video, everything works fine. Does anyone know what might be wrong here ?


Code :


def generate_frames():
 cap = cv2.VideoCapture(os.path.normpath(app_root_dir().joinpath("data/temp", "video-979257305707693982.mp4")))
 while cap.isOpened():
 ret, frame = cap.read()
 if not ret:
 break

 yield frame


@app.route('/video_feed')
def video_feed():
 ffmpeg_command = [
 'ffmpeg', '-f', 'rawvideo', '-pix_fmt', 'bgr24',
 '-s:v', '1920x1080', '-r', '60',
 '-i', '-', '-vf', 'setpts=2.5*PTS', # Video Speed
 '-c:v', 'libvpx-vp9', '-g', '60', '-keyint_min', '60',
 '-b:v', '6M', '-minrate', '4M', '-maxrate', '12M', '-bufsize', '8M',
 '-crf', '0', '-deadline', 'realtime', '-tune', 'psnr', '-quality', 'good',
 '-tile-columns', '6', '-threads', '8', '-lag-in-frames', '16',
 '-f', 'webm', '-'
 ]
 ffmpeg_process = subprocess.Popen(ffmpeg_command, stdin=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=-1)
 frames_generator = generate_frames()
 for frame in frames_generator:
 ffmpeg_process.stdin.write(frame)
 ffmpeg_process.stdin.flush()

 ffmpeg_process.stdin.close()
 ffmpeg_process.wait()

 def generate_video_stream(process):
 startTime = time.time()
 buffer = []
 sentBurst = False
 for chunk in iter(lambda: process.stderr.read(4096), b''):
 buffer.append(chunk)

 # Minimum buffer time, 3 seconds
 if sentBurst is False and time.time() > startTime + 3 and len(buffer) > 0:
 sentBurst = True
 for i in range(0, len(buffer) - 2):
 print("Send initial burst #", i)
 yield buffer.pop(0)

 elif time.time() > startTime + 3 and len(buffer) > 0:
 yield buffer.pop(0)

 process.poll()
 if isinstance(process.returncode, int):
 if process.returncode > 0:
 print('FFmpeg Error', process.returncode)

 break

 return Response(stream_with_context(generate_video_stream(ffmpeg_process)), mimetype='video/webm', content_type="video/webm; codecs=vp9", headers=Headers([("Connection", "close")]))




-
How can I remove "original display aspect ratio" from a mp4 file using ffmpeg ?
21 juin 2020, par aveceuxI wish to remove the "original display aspect ratio" entry from the video section.



Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 44 min 29 s
Bit rate : 5 001 kb/s
Width : 1 920 pixels
Height : 1 072 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.097
Stream size : 1.55 GiB (97%)




I tried the following commands,



ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4



ffmpeg -i input.mp4 -metadata original_display_aspect_ratio=0 -c copy output.mp4



but none of them worked.



If I want to remove the "original display aspect ratio" entry completely, what ffmpeg command can I use to achieve that ?



Thank you.



EDIT :
The result of mediainfo -f :



General
Count : 331
Count of stream of this kind : 1
Kind of stream : General
Kind of stream : General
Stream identifier : 0
Count of video streams : 1
Count of audio streams : 1
Video_Format_List : AVC
Video_Format_WithHint_List : AVC
Codecs Video : AVC
Audio_Format_List : AAC LC
Audio_Format_WithHint_List : AAC LC
Audio codecs : AAC LC
Complete name : Downloads/3.mp4
File name : Downloads/3.mp4
File name : Downloads/3
File extension : mp4
Format : MPEG-4
Format : MPEG-4
Format/Extensions usually used : mov mp4 m4v m4a m4b m4p 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v
Commercial name : MPEG-4
Format profile : Base Media
Internet media type : video/mp4
Codec ID : isom
Codec ID : isom (isom/iso2/avc1/mp41/letv)
Codec ID/Url : http://www.apple.com/quicktime/download/standalone.html
CodecID_Compatible : isom/iso2/avc1/mp41/letv
File size : 1715744367
File size : 1.60 GiB
File size : 2 GiB
File size : 1.6 GiB
File size : 1.60 GiB
File size : 1.598 GiB
Duration : 2670080
Duration : 44 min 30 s
Duration : 44 min 30 s 80 ms
Duration : 44 min 30 s
Duration : 00:44:30.080
Duration : 00:44:29:24
Duration : 00:44:30.080 (00:44:29:24)
Overall bit rate : 5140653
Overall bit rate : 5 141 kb/s
Frame rate : 25.000
Frame rate : 25.000 FPS
Frame count : 66749
Stream size : 3988740
Stream size : 3.80 MiB (0%)
Stream size : 4 MiB
Stream size : 3.8 MiB
Stream size : 3.80 MiB
Stream size : 3.804 MiB
Stream size : 3.80 MiB (0%)
Proportion of this stream : 0.00232
HeaderSize : 1510470
DataSize : 1711755635
FooterSize : 2478262
IsStreamable : Yes
File creation date : UTC 2019-02-20 11:24:46.448
File creation date (local) : 2019-02-20 19:24:46.448
File last modification date : UTC 2017-05-26 00:00:00.000
File last modification date (local) : 2017-05-26 08:00:00.000
Writing application : Lavf56.15.102
Writing application : Lavf56.15.102

Video
Count : 348
Count of stream of this kind : 1
Kind of stream : Video
Kind of stream : Video
Stream identifier : 0
StreamOrder : 0
ID : 1
ID : 1
Format : AVC
Format : AVC
Format/Info : Advanced Video Codec
Format/Url : http://developers.videolan.org/x264.html
Commercial name : AVC
Format profile : High@L4
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, CABAC : Yes
Format settings, ReFrames : 4
Format settings, ReFrames : 4 frames
Internet media type : video/H264
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2669960
Duration : 44 min 29 s
Duration : 44 min 29 s 960 ms
Duration : 44 min 29 s
Duration : 00:44:29.960
Duration : 00:44:29:24
Duration : 00:44:29.960 (00:44:29:24)
Bit rate : 5000927
Bit rate : 5 001 kb/s
Width : 1920
Width : 1 920 pixels
Height : 1072
Height : 1 072 pixels
Sampled_Width : 1920
Sampled_Height : 1072
Pixel aspect ratio : 0.993
Display aspect ratio : 1.779
Display aspect ratio : 16:9
Original display aspect ratio : 1.778
Original display aspect ratio : 16:9
Rotation : 0.000
Frame rate mode : CFR
Frame rate mode : Constant
FrameRate_Mode_Original : VFR
Frame rate : 25.000
Frame rate : 25.000 FPS
Frame count : 66749
Color space : YUV
Chroma subsampling : 4:2:0
Chroma subsampling : 4:2:0
Bit depth : 8
Bit depth : 8 bits
Scan type : Progressive
Scan type : Progressive
Bits/(Pixel*Frame) : 0.097
Stream size : 1669034254
Stream size : 1.55 GiB (97%)
Stream size : 2 GiB
Stream size : 1.6 GiB
Stream size : 1.55 GiB
Stream size : 1.554 GiB
Stream size : 1.55 GiB (97%)
Proportion of this stream : 0.97278
Codec configuration box : avcC

Audio
Count : 277
Count of stream of this kind : 1
Kind of stream : Audio
Kind of stream : Audio
Stream identifier : 0
StreamOrder : 1
ID : 2
ID : 2
Format : AAC
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Commercial name : AAC
Format_AdditionalFeatures : LC
Codec ID : mp4a-40-2
Duration : 2670080
Duration : 44 min 30 s
Duration : 44 min 30 s 80 ms
Duration : 44 min 30 s
Duration : 00:44:30.080
Duration : 00:44:34:09
Duration : 00:44:30.080 (00:44:34:09)
Bit rate mode : CBR
Bit rate mode : Constant
Bit rate : 128000
Bit rate : 128 kb/s
Channel(s) : 2
Channel(s) : 2 channels
Channel positions : Front: L R
Channel positions : 2/0/0
Channel layout : L R
Samples per frame : 1024
Sampling rate : 44100
Sampling rate : 44.1 kHz
Samples count : 117750528
Frame rate : 43.066
Frame rate : 43.066 FPS (1024 SPF)
Frame count : 114991
Compression mode : Lossy
Compression mode : Lossy
Stream size : 42721373
Stream size : 40.7 MiB (2%)
Stream size : 41 MiB
Stream size : 41 MiB
Stream size : 40.7 MiB
Stream size : 40.74 MiB
Stream size : 40.7 MiB (2%)
Proportion of this stream : 0.02490
Default : Yes
Default : Yes
Alternate group : 1
Alternate group : 1



-
Evolution #4720 : [css vars] Utiliser nos variables CSS dans le thème de l’espace privé
27 avril 2021Ah oui bien les astuces à base de —spip-is-ltr.
Pour compléter sur le sujet des propriétés de positionnement, dans le futur, pour avoir le support complet quelque soit la direction (horizontale ou verticale) il faudra définir le writing-mode : https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode
Valeur qu’il faudrait pouvoir récupérer en fonction du code de langue, donc.
D’après ce que j’ai compris, en son absence ça se repose sur la direction du document (dir="rtl"), donc c’est bon pour les langues à l’horizontale.Bref, on a donc pris un peu d’avance et commencé à utiliser tout de suite des variables CSS.
Le choix s’est fait un peu tout seul : ça simplifie énormément la tâche, surtout en l’absence de préprocesseur, et ça permet d’unifier et maintenir plus facilement tous les composants.Par contre avant de poursuivre, il faudrait peut-être faire un petit point d’étape, voir rédiger des guidelines pour ne pas assister à une hyper-inflation de ces variables, et qu’elles ne soient pas utilisées à tord et à travers dans tous les sens.
La règle que j’ai suivie jusqu’à présent :
- Des variables globales
--spip-xxx
, de portée générale et utilisables partout : couleurs, propriétés de texte, arrondis des blocs, gouttières, etc. - Et pour chaque composant, quelques variables qui lui sont propres :
--composant-xxx
. À quelques exceptions près, elles ne devraient pas être utilisées en dehors. J’essaie de limiter le nombre en général, une dizaine au max (sauf pour les boutons, un cas spécial).
Enfin, il y a 2 variables globales bien importantes qu’il va falloir mettre au point : ce sont celles qui définissent les gouttières horizontales et verticales. Importantes cas après, chaque composant se basera dessus pour ses propres besoins, et au final on aura des espacements bien harmonisés et facilement contrôlables.
Il peut s’agit d’une mesure arbitraire, mais en général pour la gouttière horizontale on prend l’équivalent d’une hauteur de ligne, c’est à dire
font-size * line-height
à la racine du document.
Je l’ai ajoutée en prévision (spip-spacing-y
), sauf que pour l’instant elle est pas trop utilisable : le font-size qu’on reçoit dans l’env est pas celui qui est utilisé sur le body, donc ça fausse toutes les mesures. Le font-size du body est redéfini plusieurs fois d’affilée, c’est le bordel. Bref, encore des choses à mettre au point. - Des variables globales