
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (63)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
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 (...) -
List of compatible distributions
26 avril 2011, parThe table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)
Sur d’autres sites (10638)
-
FFMpeg C++ encoder fails with hardware acceleration quick sync intel
28 août 2022, par tealsI am trying to debug an issue I have with a simple C++ encoder using FFMmpeg. The following code below works correctly on these other hardware acceleration systems/platforms :


- 

- Mac/VideoToolbox,
- Cuda/NVEnc
- Raspberry pi/h264_v4l2m2m.








It fails on intel quick sync at
avcodec_open2
. I'm using Ubuntu 22.04. I built FFMpeg from source with the Intel Media SDK installed and configured. I verified that the QuickSync install works. I also have a corresponding decoder implementation that works correctly using intel quick sync. So I know everything properly installed. I am also running this on an 11th Gen Intel CPU.

[hevc_qsv @ 0x564b0d34f0c0] Low power mode is unsupported (This sometimes shows up)
[hevc_qsv @ 0x563691234000] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height



This is the only error that I get and I haven't found any helpful resources. I tried playing around with different parameters but nothing seems to work. Any help or insight would be extremely helpful.


bool VideoEncoder::create() {
 char const* outfile = filePath.c_str();

 // open output format context
 int ret = avformat_alloc_output_context2(&ofctx, nullptr, nullptr, outfile);
 if (ret < 0) {
 std::cerr << "fail to avformat_alloc_output_context2(" << outfile << "): ret=" << ret;
 return false;
 }

 // create new video stream
 const AVCodec* codec = avcodec_find_encoder_by_name(encoderName.c_str());
 vstrm = avformat_new_stream(ofctx, codec);
 if (!vstrm) {
 std::cerr << "fail to avformat_new_stream";
 return false;
 }

 // open video encoder
 cctx = avcodec_alloc_context3(codec);
 if (!vstrm) {
 std::cerr << "fail to avcodec_alloc_context3";
 return false;
 }
 const AVRational dst_fps = {fps, 1};
 cctx->width = width;
 cctx->height = height;
 if(pixel_format != AV_PIX_FMT_NONE) {
 cctx->pix_fmt = pixel_format;
 }
 else {
 cctx->pix_fmt = codec->pix_fmts[0];
 }
 cctx->time_base = av_inv_q(dst_fps);
 cctx->framerate = dst_fps;
 cctx->bit_rate = bitrate * 1000000;


 AVDictionary* options = nullptr;
 if(gpu_id >= 0) {
 av_dict_set_int(&options, "gpu", gpu_id, 0);
 }

 
 if (ofctx->oformat->flags & AVFMT_GLOBALHEADER)
 cctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
 ret = avcodec_open2(cctx, codec, &options);
 if (ret < 0) {
 std::cerr << "fail to avcodec_open2: ret=" << ret;
 return false;
 }
 avcodec_parameters_from_context(vstrm->codecpar, cctx);

 //For mac/quicktime we need to add hvc1 tag.
 if (encoderName.find("hevc") != std::string::npos) {
 vstrm->codecpar->codec_tag = MKTAG('h', 'v', 'c', '1');
 }

 /*
 std::cout
 << "outfile: " << outfile << "\n"
 << "format: " << ofctx->oformat->name << "\n"
 << "vcodec: " << codec->name << "\n"
 << "size: " << width << 'x' << height << "\n"
 << "fps: " << av_q2d(cctx->framerate) << "\n"
 << "pixfmt: " << av_get_pix_fmt_name(cctx->pix_fmt) << "\n"
 << std::flush;*/

 // initialize sample scaler
 swsCtx = sws_getContext(
 width, height, AV_PIX_FMT_BGR24,
 width, height, cctx->pix_fmt,
 SWS_BILINEAR, nullptr, nullptr, nullptr);
 if (!swsCtx) {
 std::cerr << "fail to sws_getContext";
 return false;
 }

 // allocate frame buffer for encoding
 frame = av_frame_alloc();
 frame->width = width;
 frame->height = height;
 frame->format = static_cast<int>(cctx->pix_fmt);
 ret = av_frame_get_buffer(frame, 32);
 if (ret < 0) {
 std::cerr << "fail to av_frame_get_buffer: ret=" << ret;
 return false;
 }

 // allocate packet to retrive encoded frame
 pkt = av_packet_alloc();
 // open output IO context
 ret = avio_open2(&ofctx->pb, outfile, AVIO_FLAG_WRITE, nullptr, nullptr);
 if (ret < 0) {
 std::cerr << "fail to avio_open2: ret=" << ret;
 return false;
 }

 // write media container header (if any)
 ret = avformat_write_header(ofctx, nullptr);
 if (ret < 0) {
 std::cerr << "fail to avformat_write_header: ret=" << ret;
 return false;
 }

 return true;
}
</int>


-
MP4Box does not create final segment
5 janvier 2019, par DhruvaMP4Box is not creating the final segment of video when I dash it. If I run this command on the command line I get only 15 segments out of 16(there is no error) and running it in Google’s Shaka player gives me a 404 at the end of the video saying that the 16th video segment is not found. I am running MP4Box version 0.5.2.
MP4Box -dash 4000 -rap -frag-rap -sample-groups-traf -profile dashavc264:live -bs-switching multi -url-template video-700k-encrypted.mp4 video-1000k-encrypted.mp4 video-1500k-encrypted.mp4 video-2000k-encrypted.mp4 audio-encrypted.mp4 -out "dash_protected/manifest.mp4"
.mpd file
<?xml version="1.0"?>
<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" minbuffertime="PT1.500S" type="static" mediapresentationduration="PT0H1M0.096S" maxsegmentduration="PT0H0M4.000S" profiles="urn:mpeg:dash:profile:isoff-live:2011,http://dashif.org/guidelines/dash264">
<programinformation moreinformationurl="http://gpac.sourceforge.net">
</programinformation>
<period duration="PT0H1M0.096S">
<adaptationset segmentalignment="true" bitstreamswitching="true" maxwidth="1024" maxheight="576" maxframerate="24" par="16:9" lang="eng">
<segmenttemplate initialization="manifest_set1_init.mp4"></segmenttemplate>
<contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
<representation mimetype="video/mp4" codecs="avc3.64002a" width="852" height="480" framerate="24" sar="1:1" startwithsap="1" bandwidth="1477735">
<segmenttemplate timescale="12288" media="source-video-1500k-encrypted_dash_track1_$Number$.m4s" startnumber="1" duration="49152"></segmenttemplate>
</representation>
<representation mimetype="video/mp4" codecs="avc3.64002a" width="512" height="288" framerate="24" sar="1:1" startwithsap="1" bandwidth="689308">
<segmenttemplate timescale="12288" media="source-video-700k-encrypted_dash_track1_$Number$.m4s" startnumber="1" duration="49152"></segmenttemplate>
</representation>
<representation mimetype="video/mp4" codecs="avc3.64002a" width="1024" height="576" framerate="24" sar="1:1" startwithsap="1" bandwidth="1968345">
<segmenttemplate timescale="12288" media="source-video-2000k-encrypted_dash_track1_$Number$.m4s" startnumber="1" duration="49152"></segmenttemplate>
</representation>
<representation mimetype="video/mp4" codecs="avc3.64002a" width="640" height="360" framerate="24" sar="1:1" startwithsap="1" bandwidth="994771">
<segmenttemplate timescale="12288" media="source-video-1000k-encrypted_dash_track1_$Number$.m4s" startnumber="1" duration="49152"></segmenttemplate>
</representation>
</adaptationset>
<adaptationset segmentalignment="true" lang="eng">
<contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>
<representation mimetype="audio/mp4" codecs="mp4a.40.2" audiosamplingrate="22050" startwithsap="1" bandwidth="69486">
<audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>
<segmenttemplate timescale="22050" media="source-audio-encrypted_dash$Number$.m4s" startnumber="1" duration="88045" initialization="source-audio-encrypted_dashinit.mp4"></segmenttemplate>
</representation>
</adaptationset>
</period>
</mpd> -
ffmpeg out of sync after split and put together
5 septembre 2017, par LaborCLooking for the correct way to encode a given input video in multiple bitrates and then package it for dash and hls. I thought this is a basic task, but as it turns out, I could not find a best practise on how to achieve this.
So the way I do it is (but with these I get an out of sync video/audio) :First I split my video (mp4) into video and audio.
ffmpeg -c:v copy -an video_na.mp4 -i source_input.mp4
ffmpeg -c:a aac -ac 2 -async 1 -vn audio.mp4 -i source_input.mp4Then I encode the video with the following commands :
ffmpeg.exe -i video_na.mp4 -an -c:v libx264 -crf 18 \
-preset fast -profile:v high -level 4.2 -b:v 2000k -minrate 2000k \
-maxrate 2000k -bufsize 4000k -g 96 -keyint_min 96 -sc_threshold 0 \
-filter:v "scale='trunc(oh*a/2)*2:576'" -movflags +faststart \
-pix_fmt yuv420p -threads 4 -f mp4 video-2000k.mp4
ffmpeg.exe -i video_na.mp4 -an -c:v libx264 -crf 18 \
-preset fast -profile:v high -level 4.2 -b:v 1500k -minrate 1500k \
-maxrate 1500k -bufsize 3000k -g 96 -keyint_min 96 -sc_threshold 0 \
-filter:v "scale='trunc(oh*a/2)*2:480'" -movflags +faststart \
-pix_fmt yuv420p -threads 4 -f mp4 video-1500k.mp4After that I fragment the videos.
mp4fragment --fragment-duration 4000 --timescale 10000 video-2000k.mp4 \
video-2000k-f.mp4
mp4fragment --fragment-duration 4000 --timescale 10000 video-1500k.mp4 \
video-1500k-f.mp4And finally package everything together again for dash.
mp4dash --media-prefix=out \
--use-segment-timeline \
video-2000k-f.mp4 \
video-1500k-f.mp4 \
--out dashNow there is a difference between audio and video.
I think that the problem is with my parameters for encoding. But which one I have no idea.
What am I doing wrong ?