
Recherche avancée
Autres articles (74)
-
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
Sur d’autres sites (10138)
-
ffmpeg rtmp live stream to Azure Media Services
18 mars 2015, par PilskalnsSomehow I got publishing Azure Media Services to work, except there is huge frame drop (almost every frame) with those settings :
ffmpeg -i "http://stream01/hls/live/playlist-mid.m3u8" -strict -2 -c:a aac -b:a 192k
-ar 44100 -r 25 -g 60 -keyint_min 60 -b:v 2000k -c:v libx264 -bufsize 2000k
-maxrate 2000k -f flv "rtmp://publishurl.working.is/mystream1"+ I can’t play URL from Azure.
When I publish to local nginx-rtmp server, frame drop stays and despite it I can play it. So, I believe that frame drop is ffmpeg related not Azure. Processor is not overloaded, available bandwidth is excellent.
When I try
original
settings from this URL (at very bottom), I this get additionaly this ffmpeg errorPast duration 0.719994 too large
Here’s more from output :
c:\ffmpeg\bin>ffmpeg -i "http://stream01/hls/live/playlist-mid.m3u8" -strict -2 -c:a aac -b:a 192k -ar 44100 -r 25 -g 60 -keyint_min 60 -b:v 2000k -c:
v libx264 -bufsize 1000k -maxrate 2000k -f flv "rtmp://********.channel.mediaservices.windows.net:1935/live/9590f0be/mystream1"
ffmpeg version N-69972-g6c91afe Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnu
tls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-
libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-l
ibrtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --
enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --ena
ble-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil 54. 19.100 / 54. 19.100
libavcodec 56. 25.100 / 56. 25.100
libavformat 56. 23.100 / 56. 23.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.100 / 5. 11.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, hls,applehttp, from 'http://stream01/hls/live/playlist-mid.m3u8':
Duration: N/A, start: 3314.605633, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 1500000
Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv), 854x480 [SAR 1:1 DAR 427:240], 50 fps, 50 tbr, 90k tbn, 100 tbc
Metadata:
variant_bitrate : 1500000
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 216 kb/s
Metadata:
variant_bitrate : 1500000
[libx264 @ 0000000000306280] using SAR=1/1
[libx264 @ 0000000000306280] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0000000000306280] profile High, level 3.0
[libx264 @ 0000000000306280] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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 dead
zone=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_in
tra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=60 keyint_min=31 scenecut=40 intra_refresh=0 rc_lookahea
d=40 rc=cbr mbtree=1 bitrate=2000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2000 vbv_bufsize=1000 nal_hrd=none filler=0 ip_ratio=1.
40 aq=1:1.00
Output #0, flv, to 'rtmp://*******.channel.mediaservices.windows.net:1935/live/37b4e25/mystream1':
Metadata:
encoder : Lavf56.23.100
Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 854x480 [SAR 1:1 DAR 427:240], q=-1--1, 2000 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
variant_bitrate : 1500000
encoder : Lavc56.25.100 libx264
Stream #0:1: Audio: aac ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 192 kb/s
Metadata:
variant_bitrate : 1500000
encoder : Lavc56.25.100 aac
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[flv @ 0000000000305820] Failed to update header with correct duration.1.4kbits/s dup=0 drop=10697
[flv @ 0000000000305820] Failed to update header with correct filesize.
frame=10714 fps= 24 q=-1.0 Lsize= 100583kB time=00:07:11.08 bitrate=1911.4kbits/s dup=0 drop=10701
video:90024kB audio:10042kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.516478%
[libx264 @ 0000000000306280] frame I:190 Avg QP:10.58 size: 72438
[libx264 @ 0000000000306280] frame P:3406 Avg QP:14.32 size: 19296
[libx264 @ 0000000000306280] frame B:7118 Avg QP:19.55 size: 1784
[libx264 @ 0000000000306280] consecutive B-frames: 8.8% 4.4% 10.5% 76.3%
[libx264 @ 0000000000306280] mb I I16..4: 23.0% 20.2% 56.8%
[libx264 @ 0000000000306280] mb P I16..4: 2.7% 4.5% 5.2% P16..4: 41.9% 11.6% 8.7% 0.0% 0.0% skip:25.4%
[libx264 @ 0000000000306280] mb B I16..4: 0.1% 0.1% 0.2% B16..8: 26.5% 2.2% 0.5% direct: 3.2% skip:67.1% L0:51.0% L1:38.2% BI:10.8%
[libx264 @ 0000000000306280] 8x8 transform intra:31.3% inter:36.6%
[libx264 @ 0000000000306280] coded y,uvDC,uvAC intra: 80.5% 73.5% 51.1% inter: 16.1% 18.8% 5.8%
[libx264 @ 0000000000306280] i16 v,h,dc,p: 21% 29% 27% 23%
[libx264 @ 0000000000306280] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 32% 19% 4% 4% 4% 5% 4% 7%
[libx264 @ 0000000000306280] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 30% 15% 4% 5% 5% 5% 4% 5%
[libx264 @ 0000000000306280] i8c dc,h,v,p: 38% 30% 24% 8%
[libx264 @ 0000000000306280] Weighted P-Frames: Y:1.8% UV:0.4%
[libx264 @ 0000000000306280] ref P L0: 78.0% 8.5% 10.1% 3.3% 0.0%
[libx264 @ 0000000000306280] ref B L0: 91.3% 7.9% 0.8%
[libx264 @ 0000000000306280] ref B L1: 95.4% 4.6%
[libx264 @ 0000000000306280] kb/s:1716.97
Received signal 2: terminating. -
python how to combine video file and media file without ffmpeg [on hold]
27 juillet 2017, par daniel yanovskyHello I am working on a program that is recording the screen. And I like to add an audio for the video.
How can I do it without using ffmpeg.
I want my program to do so. -
Why is a file unplayable in Windows Media Player ?
21 février 2024, par zhangI have written some code to generate a MP4 video. This is a simplified version of the code :


#include <iostream>
#include <fstream>
#include <cstdio>
#include <string>
#include <list>
#include 

extern "C"
{
#include "libavformat/avformat.h"
#include "libavutil/frame.h"
#include "libavcodec/avcodec.h"
#include "libavutil/imgutils.h"
}
using namespace std;

const int output_width = 180;
const int output_height = 320;

int main(int argc, char **argv)
{
 AVCodec *output_avc = avcodec_find_encoder_by_name("libx264");
 if (!output_avc)
 abort();
 AVCodecContext *output_cc = avcodec_alloc_context3(output_avc);
 if (!output_cc)
 abort();

 output_cc->time_base.num = output_cc->time_base.den = 1;
 output_cc->pix_fmt = AV_PIX_FMT_YUV420P;

 output_cc->width = output_width;
 output_cc->height = output_height;

 if (avcodec_is_open(output_cc) == 0)
 {
 if (avcodec_open2(output_cc, output_avc, 0) < 0)
 abort();
 }

 string outf = "res.mp4";
 AVFormatContext *output_ctx;
 avformat_alloc_output_context2(&output_ctx, NULL, NULL, outf.c_str());
 AVStream *out_stream = avformat_new_stream(output_ctx, 0);
 out_stream->codecpar->codec_id = AV_CODEC_ID_H264;
 out_stream->codecpar->codec_type = AVMEDIA_TYPE_VIDEO;
 out_stream->codecpar->codec_tag = 0;
 out_stream->codecpar->width = output_width;
 out_stream->codecpar->height = output_height;
 out_stream->codecpar->format = AV_PIX_FMT_YUV420P;
 av_dump_format(output_ctx, 0, outf.c_str(), 1);
 if (!(output_ctx->oformat->flags & AVFMT_NOFILE))
 {
 if (avio_open(&output_ctx->pb, outf.c_str(), AVIO_FLAG_WRITE) < 0)
 abort();
 }
 if (avformat_write_header(output_ctx, NULL) < 0)
 abort();

 AVPacket packet;
 AVFrame *frame;
 int fileCount = 0;

 for (int i = 0; i < 100; i++)
 {
 frame = av_frame_alloc();
 frame->width = output_width;
 frame->height = output_height;
 frame->format = AV_PIX_FMT_YUV420P;
 if (av_image_alloc(frame->data, frame->linesize, frame->width, frame->height, AV_PIX_FMT_YUV420P, 32) < 0)
 abort();
 frame->pts = 60000 * i;
 frame->pkt_dts = 60000 * i;
 if (avcodec_send_frame(output_cc, frame) < 0)
 abort();
 av_frame_free(&frame);

 av_new_packet(&packet, 0);
 while (avcodec_receive_packet(output_cc, &packet) >= 0)
 {
 packet.pos = -1;
 packet.dts = 4500 * fileCount;
 packet.pts = 4500 * fileCount;
 packet.duration = 4500;
 av_write_frame(output_ctx, &packet);
 av_packet_unref(&packet);
 av_new_packet(&packet, 0);
 fileCount++;
 }
 av_packet_unref(&packet);
 }
 avcodec_free_context(&output_cc);

 av_write_trailer(output_ctx);
 if (output_ctx && !(output_ctx->oformat->flags & AVFMT_NOFILE))
 avio_close(output_ctx->pb);
 avformat_free_context(output_ctx);
}
</list></string></cstdio></fstream></iostream>


Then, I compiled it (with
g++ encode.cpp -lavcodec -lavformat -lavutil -g
and libraries are installed via Ubuntu 20.04 apt) and run it. This is the MP4 file I get (2872 bytes, base64 encoded) :

AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAB39tZGF0AAAAAWdkAAys
2UMCnn4QAAADABAAAAMAIPFCmWAAAAABaOvjyyLAAAABBgX//6rcRem95tlIt5Ys2CDZI+7veDI2
NCAtIGNvcmUgMTU1IHIyOTE3IDBhODRkOTggLSBILjI2NC9NUEVHLTQgQVZDIGNvZGVjIC0gQ29w
eWxlZnQgMjAwMy0yMDE4IC0gaHR0cDovL3d3dy52aWRlb2xhbi5vcmcveDI2NC5odG1sIC0gb3B0
aW9uczogY2FiYWM9MSByZWY9MyBkZWJsb2NrPTE6MDowIGFuYWx5c2U9MHgzOjB4MTEzIG1lPWhl
eCBzdWJtZT03IHBzeT0xIHBzeV9yZD0xLjAwOjAuMDAgbWl4ZWRfcmVmPTEgbWVfcmFuZ2U9MTYg
Y2hyb21hX21lPTEgdHJlbGxpcz0xIDh4OGRjdD0xIGNxbT0wIGRlYWR6b25lPTIxLDExIGZhc3Rf
cHNraXA9MSBjaHJvbWFfcXBfb2Zmc2V0PS0yIHRocmVhZHM9MTAgbG9va2FoZWFkX3RocmVhZHM9
MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2Nv
bXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9
MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50
PTI1MCBrZXlpbnRfbWluPTEgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVh
ZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5
IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAAFliIQAF//+7oK+BTeKk2/DVSCr
MT4MeFdCVv4gBUyU0LeeB3T/sW2Y2XML/dzzR/1dfS/wWmJ+KGm0PX/sHuGpnyAn2gs5wsYABhgA
WoTf+9Y7PDk9QANDAAAAAUGaJGxBf/rtlHe1U64AATcAAAABQZ5CeILfbxYfLVgA1IEAAAABAZ5h
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
YQAAAAEAAAAATGF2ZjU4LjI5LjEwMA==



And I try to play it in Media Player in Windows 11. It can not play at all and fails with a 0xC00D36C4 error.


Later I compiled and run the same code in Ubuntu 22.04. This time I got a 3161 byte file (base64 encoded) which can be correctly played in Media Player :


AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACF5tZGF0AAAAGWdkAAys
2UMCnn4QAAADABAAAAMAIPFCmWAAAAAGaOvjyyLAAAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gy
NjQgLSBjb3JlIDE2MyByMzA2MCA1ZGI2YWE2IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENv
cHlsZWZ0IDIwMDMtMjAyMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9w
dGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1o
ZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2
IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0
X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEwIGxvb2thaGVhZF90aHJlYWRz
PTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9j
b21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBiX3B5cmFtaWQ9MiBiX2FkYXB0
PTEgYl9iaWFzPTAgZGlyZWN0PTEgd2VpZ2h0Yj0xIG9wZW5fZ29wPTAgd2VpZ2h0cD0yIGtleWlu
dD0yNTAga2V5aW50X21pbj0xIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhl
YWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02
OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAWmWIhAAV//7sz34FN2u2Mv14
OUV1GW52wf6mv09Y/+Eq5ywBqFdjI7RiQruDqkHmD84Ah+1pD+u+Ju9pbKoJmVnS6c+DhXKzmU8A
AEJAA5Q0japbJSyuwAA24QAAAENBmiRsR/93Hj0GFYn+ROeWur9cQ/zaceE37Gsw8XYMMBmtQahK
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
HWRhdGEAAAABAAAAAExhdmY1OC43Ni4xMDA=