
Recherche avancée
Médias (1)
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (44)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (4714)
-
Can't link FFmpeg in Visual Studio 2013
22 février 2016, par Sir DrinksCoffeeALotI’m struggling with this for past 3-4 days with barely any progress. I’ve downloaded "dev" and "shared" archives and extracted them. "Dev" archive has .lib and .h files and "Shared" has .dll files needed for running app. These are the steps that i’ve done linking-wise :
Project -> Properties -> Configuration Properties -> VC++ Directories -> Include Directories -> ...\ dev\ include
Project -> Properties -> Configuration Properties -> VC++ Directories -> Library Directories -> ...\ dev\ lib
Project -> Properties -> Configuration Properties -> C/C++ -> General -> Additional Include Directories -> ...\ dev\ include
Project -> Properties -> Configuration Properties -> Linker -> General -> Additional Library Directories -> ...\ dev\ lib
Project -> Properties -> Configuration Properties -> Linker -> Input -> Additional Dependencies -> avcodec.lib ... swscale.lib
And when i try to build it i get following error :
Error 1 error LNK2019: unresolved external symbol _avcodec_register_all referenced in function _main...
I have no idea why,somehow .lib are not getting linked or something or i’ve done something wrong. It’s getting really frustrating and ffmpeg is crucial in project that i’m working on, basicly i can’t do anything without it. So please if someone could point me in right direction i would aprreciate it very much.
This is the example that im trying to build.
#include
extern "C"
{
#include "libavcodec\avcodec.h"
}
#pragma comment(lib, "avcodec.lib")
int main()
{
printf("Trying avcodec_register_all... ");
avcodec_register_all();
printf("Done.\n");
return 0;
}Thank you in advance.
-
FFmpeg splitting large files
1er février 2016, par Yusaf KhaliqI need to split a large video file into multiple pieces quickly and without files with errors. The basic idea is, I have a 2GB video file which I want to change to multiple formats. I have read some encoders can not make use of more than 1 core when encoding to a different format. So I had the idea to split the large file (which is very quick) into 4/8 pieces depending on how many cores I have available on individual servers. re-encode each piece to a new format and use these to display video in sequence.
so
testfile.mp4
becomes
- testfile_piece_1.mp4
- testfile_piece_2.mp4
- testfile_piece_3.mp4
- testfile_piece_4.mp4
these can then be individually be converted.
The solution should not be format specific. However I have found issues with mp4 files.
I have tried the command below, which works really well and fast but creates files with errors.
ffmpeg -i testfile.mp4 -ss 00:00:00 -t 00:20:00 -c copy testfile_piece_1.mp4
When I play the testfile_piece_1.mp4 on VLC it works fine. An issue arises when converting the split file to a different height and width mp4 file. I would get an error similar to "moov atom not found"
I tried adding
-movflags faststart
with no luckI then came across this library https://code.google.com/archive/p/moovrelocator/ which fixed the moov issue but I would then get an error with regards to aac "Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height"
The other way of splitting the files is useless but involved re-encoding the file. not too bad for smaller file size but the 2GB file would probably take days to complete.
Is there a way to split the largr file quickly without producing files with errors ? I have been working on it for days with no luck.
Console output for comment - FFmpeg splitting large files
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/usr/share/nginx/html/uploads/testfile01.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.36.100
Duration: 00:05:02.08, start: 302.120000, bitrate: 3254 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709) , 1920x1080 [SAR 1:1 DAR 16:9], 3252 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (de fault)
Metadata:
handler_name : VideoHandler
[libx264 @ 0x165ffc0] width not divisible by 2 (853x480)
Output #0, mp4, to '/usr/share/nginx/html/uploads/testfile01_480.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.36.100
Stream #0:0(und): Video: h264, none, q=2-31, 128 kb/s, SAR 2560:2559 DAR 0:0 , 25 fps (default)
Metadata:
handler_name : VideoHandler
encoder : Lavc56.41.100 libx264
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or heightconsole output 2
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/usr/share/nginx/html/uploads/testfile.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
creation_time : 2016-01-24 04:26:37
Duration: 01:15:58.08, start: 0.000000, bitrate: 3163 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 3161 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc (default)
Metadata:
creation_time : 2016-01-24 04:26:37
handler_name : VideoHandler
[segment @ 0x1197060] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, segment, to '/usr/share/nginx/html/uploads/testfile%02d.mp4':
Metadata:
major_brand : dash
minor_version : 0
compatible_brands: iso6avc1mp41
encoder : Lavf56.36.100
Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 3161 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default)
Metadata:
creation_time : 2016-01-24 04:26:37
handler_name : VideoHandler
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 0x11512a0] Codec for stream 0 does not use global headers but container format requires global headers -
rtmp Videos encoded with FFmpeg play too fast
30 janvier 2016, par 江嘉荣play back too fast and loading Every once in a while
here is the code ... please help...
pFormatCtx = avformat_alloc_context();
out_filename = "rtmp://192.168.1.105:1935/jc";
avformat_alloc_output_context2(&pFormatCtx, ofmt, "flv", out_filename);
ofmt = pFormatCtx->oformat;
if (avio_open(&pFormatCtx->pb,out_filename, AVIO_FLAG_WRITE) < 0){
printf("Failed to open output file! \n");
return -1;
}
video_st = avformat_new_stream(pFormatCtx, 0);
video_st->time_base.num = 1;
video_st->time_base.den = 30;
br = 400 * 1000;
pCodecCtx = video_st->codec;
pCodecCtx->codec_id = AV_CODEC_ID_H264;
pCodecCtx->codec_type = AVMEDIA_TYPE_VIDEO;
pCodecCtx->pix_fmt = PIX_FMT_YUV420P;
pCodecCtx->gop_size = 12;
pCodecCtx->max_qdiff = 4;
pCodecCtx->qmin = 0;
pCodecCtx->qmax = 51;
pCodecCtx->bit_rate = br;
pCodecCtx->rc_min_rate =br;
pCodecCtx->rc_max_rate = br;
pCodecCtx->bit_rate_tolerance = br;
pCodecCtx->rc_buffer_size=br;
pCodecCtx->rc_initial_buffer_occupancy = pCodecCtx->rc_buffer_size*3/4;
pCodecCtx->time_base.num = 1;
pCodecCtx->time_base.den = 30;
start_time = 0;
pCodecCtx->max_b_frames = 3;
AVDictionary *param = 0;
if(pCodecCtx->codec_id == AV_CODEC_ID_H264) {
av_dict_set(&param, "preset", "ultrafast", 0);
av_dict_set(&param, "tune", "zerolatency", 0);
av_dict_set(&param, "max_delay", "500", 0);
}
av_dump_format(pFormatCtx, 0, out_filename, AVIO_FLAG_WRITE);
pCodec = avcodec_find_encoder(AV_CODEC_ID_H264);
avformat_write_header(pFormatCtx, NULL);
y_size = pCodecCtx->width * pCodecCtx->height;
return 0;get pFrame
pFrame->width = encoder_h264_frame_width;
pFrame->height = encoder_h264_frame_height;
pFrame->format = PIX_FMT_YUV420P;I don’t know if it’s right way to set the pFrame->pts here...
pFrame->pts = av_rescale_q(framecnt, pCodecCtx->time_base, video_st- >codec->time_base);
avpicture_fill((AVPicture *)pFrame, picture_buf, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height);
pkt.data = NULL;
pkt.size = 0;
int got_picture = 0;
int ret = avcodec_encode_video2(pCodecCtx, &pkt, pFrame, &got_picture);
framecnt++;
if(ret < 0) {
}
if (got_picture=) {
pkt.stream_index = video_st->index;is it right ?
pkt.pts = av_rescale_q(pkt.pts, video_st->codec->time_base, video_st->time_base);
pkt.dts = av_rescale_q(pkt.dts, video_st->codec->time_base, video_st->time_base);
ret = av_interleaved_write_frame(pFormatCtx, &pkt);
}
av_frame_free(&pFrame);
av_free_packet(&pkt);
free(yuv420_data);This problem has troubled me for a lot of days....