
Recherche avancée
Autres articles (59)
-
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 -
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Les formats acceptés
28 janvier 2010, parLes commandes suivantes permettent d’avoir des informations sur les formats et codecs gérés par l’installation local de ffmpeg :
ffmpeg -codecs ffmpeg -formats
Les format videos acceptés en entrée
Cette liste est non exhaustive, elle met en exergue les principaux formats utilisés : h264 : H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 m4v : raw MPEG-4 video format flv : Flash Video (FLV) / Sorenson Spark / Sorenson H.263 Theora wmv :
Les formats vidéos de sortie possibles
Dans un premier temps on (...)
Sur d’autres sites (8160)
-
Demuxing a video media file with FFMPEG
23 février 2016, par MOHWAfter starting this question Extracting the h264 part of a video file (demuxing) I was actually able to figure out that,
- When I reverted to an older version of FFMPEG (avcodec-55.dll) as against the avcodec-57.dll I was using earlier, the code worked perfectly without any error and the resultant h264 file played with ffplay.
- When I tracked my output when using the avcodec-57.dll version of FFMPEG (most recent version), there was actually an error
"Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead"
after the callavformat_write_header(ofmt_ctx_v, NULL)
and another one after the call toavformat_write_header(ofmt_ctx_a, NULL)
. The program continued executing, the audio was fine but the .h264 file wasn’t.
The output
Press any key to continue . . .
Press any key to continue . . .
Press any key to continue . . .
Press any key to continue . . .
==============Input Video=============
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'sample.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
title : 10153755968775490
encoder : Lavf57.19.100
Duration: 00:01:07.27, start: 0.020021, bitrate: 1058 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 400x224 [
SAR 199:200 DAR 199:112], 927 kb/s, 15 fps, 15 tbr, 15360 tbn, 30 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, s16p, 12
8 kb/s (default)
Metadata:
handler_name : SoundHandler
==============Output Video============
Output #0, h264, to 'sample.h264':
Stream #0:0: Video: h264 (High), yuv420p, 400x224 [SAR 199:200 DAR 199:112],
q=2-31, 927 kb/s, 30 tbc
==============Output Audio============
Output #0, mp3, to 'sample.mp3':
Stream #0:0: Audio: mp3, 48000 Hz, stereo, s16p, 128 kb/s
======================================
[h264 @ 00a3ee20] Using AVStream.codec.time_base as a timebase hint to the muxer
is deprecated. Set AVStream.time_base instead.
[mp3 @ 00a4fec0] Using AVStream.codec.time_base as a timebase hint to the muxer
is deprecated. Set AVStream.time_base instead.
Press any key to continue . . .The code
#include
#define __STDC_CONSTANT_MACROS
extern "C"
{
#include "libavformat/avformat.h"
}
#define USE_H264BSF 1
int main()
{
AVOutputFormat *ofmt_a = NULL,*ofmt_v = NULL;
AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx_a = NULL, *ofmt_ctx_v = NULL;
AVPacket pkt;
int ret, i;
int videoindex=-1,audioindex=-1;
int frame_index=0;
const char *in_filename = "sample.mp4";
const char *out_filename_v = "sample.h264";
const char *out_filename_a = "sample.mp3";
av_register_all();
//Input
if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) {
printf( "Could not open input file.");
goto end;
}
if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) {
printf( "Failed to retrieve input stream information");
goto end;
}
system("pause");
//Output
avformat_alloc_output_context2(&ofmt_ctx_v, NULL, NULL, out_filename_v);
if (!ofmt_ctx_v) {
printf( "Could not create output context\n");
ret = AVERROR_UNKNOWN;
goto end;
}
ofmt_v = ofmt_ctx_v->oformat;
system("pause");
avformat_alloc_output_context2(&ofmt_ctx_a, NULL, NULL, out_filename_a);
if (!ofmt_ctx_a) {
printf( "Could not create output context\n");
ret = AVERROR_UNKNOWN;
goto end;
}
ofmt_a = ofmt_ctx_a->oformat;
system("pause");
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
//Create output AVStream according to input AVStream
AVFormatContext *ofmt_ctx;
AVStream *in_stream = ifmt_ctx->streams[i];
AVStream *out_stream = NULL;
if(ifmt_ctx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO){
videoindex=i;
out_stream=avformat_new_stream(ofmt_ctx_v, in_stream->codec->codec);
ofmt_ctx=ofmt_ctx_v;
}else if(ifmt_ctx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO){
audioindex=i;
out_stream=avformat_new_stream(ofmt_ctx_a, in_stream->codec->codec);
ofmt_ctx=ofmt_ctx_a;
}else{
break;
}
if (!out_stream) {
printf( "Failed allocating output stream\n");
ret = AVERROR_UNKNOWN;
goto end;
}
//Copy the settings of AVCodecContext
if (avcodec_copy_context(out_stream->codec, in_stream->codec) < 0) {
printf( "Failed to copy context from input to output stream codec context\n");
goto end;
}
out_stream->codec->codec_tag = 0;
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
out_stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
system("pause");
//Dump Format------------------
printf("\n==============Input Video=============\n");
av_dump_format(ifmt_ctx, 0, in_filename, 0);
printf("\n==============Output Video============\n");
av_dump_format(ofmt_ctx_v, 0, out_filename_v, 1);
printf("\n==============Output Audio============\n");
av_dump_format(ofmt_ctx_a, 0, out_filename_a, 1);
printf("\n======================================\n");
//Open output file
if (!(ofmt_v->flags & AVFMT_NOFILE)) {
if (avio_open(&ofmt_ctx_v->pb, out_filename_v, AVIO_FLAG_WRITE) < 0) {
printf( "Could not open output file '%s'", out_filename_v);
goto end;
}
}
if (!(ofmt_a->flags & AVFMT_NOFILE)) {
if (avio_open(&ofmt_ctx_a->pb, out_filename_a, AVIO_FLAG_WRITE) < 0) {
printf( "Could not open output file '%s'", out_filename_a);
goto end;
}
}
//Write file header
if (avformat_write_header(ofmt_ctx_v, NULL) < 0) {
printf( "Error occurred when opening video output file\n");
goto end;
}
if (avformat_write_header(ofmt_ctx_a, NULL) < 0) {
printf( "Error occurred when opening audio output file\n");
goto end;
}
system("pause");
#if USE_H264BSF
AVBitStreamFilterContext* h264bsfc = av_bitstream_filter_init("h264_mp4toannexb");
#endif
while (1) {
AVFormatContext *ofmt_ctx;
AVStream *in_stream, *out_stream;
//Get an AVPacket
if (av_read_frame(ifmt_ctx, &pkt) < 0)
break;
in_stream = ifmt_ctx->streams[pkt.stream_index];
if(pkt.stream_index==videoindex){
out_stream = ofmt_ctx_v->streams[0];
ofmt_ctx=ofmt_ctx_v;
#if USE_H264BSF
av_bitstream_filter_filter(h264bsfc, in_stream->codec, NULL, &pkt.data, &pkt.size, pkt.data, pkt.size, 0);
#endif
printf("Write Video Packet. size:%d\tpts:%lld\n",pkt.size,pkt.pts);
}else if(pkt.stream_index==audioindex){
out_stream = ofmt_ctx_a->streams[0];
ofmt_ctx=ofmt_ctx_a;
printf("Write Audio Packet. size:%d\tpts:%lld\n",pkt.size,pkt.pts);
}else{
continue;
}
//Convert PTS/DTS
pkt.pts = av_rescale_q_rnd(pkt.pts, in_stream->time_base, out_stream->time_base, (AVRounding)(AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX));
pkt.dts = av_rescale_q_rnd(pkt.dts, in_stream->time_base, out_stream->time_base, (AVRounding)(AV_ROUND_NEAR_INF|AV_ROUND_PASS_MINMAX));
pkt.duration = av_rescale_q(pkt.duration, in_stream->time_base, out_stream->time_base);
pkt.pos = -1;
pkt.stream_index=0;
//Write
if (av_interleaved_write_frame(ofmt_ctx, &pkt) < 0) {
printf( "Error muxing packet\n");
break;
}
//printf("Write %8d frames to output file\n", frame_index);
av_free_packet(&pkt);
frame_index++;
}
system("pause");
#if USE_H264BSF
av_bitstream_filter_close(h264bsfc);
#endif
//Write file trailer
av_write_trailer(ofmt_ctx_a);
av_write_trailer(ofmt_ctx_v);
end:
avformat_close_input(&ifmt_ctx);
/* close output */
if (ofmt_ctx_a && !(ofmt_a->flags & AVFMT_NOFILE))
avio_close(ofmt_ctx_a->pb);
if (ofmt_ctx_v && !(ofmt_v->flags & AVFMT_NOFILE))
avio_close(ofmt_ctx_v->pb);
avformat_free_context(ofmt_ctx_a);
avformat_free_context(ofmt_ctx_v);
system("pause");
if (ret < 0 && ret != AVERROR_EOF) {
printf( "Error occurred.\n");
return -1;
}
return 0;
}EDIT 1
After reading through http://lists.libav.org/pipermail/libav-devel/2014-June/060048.html, I figured what was causing the"Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated. Set AVStream.time_base instead"
. I fixed it by addingout_stream->time_base = in_stream->time_base;
before the call toavformat_write_header
. The code now runs without any error ! The h264 file created with the old FFMPEG (avcodec-55.dll) works fine while that created by the recent avcodec-57.dll is still invalid. -
FFMPEG copying Windows Media Audio 9.2
19 avril 2016, par David GCI want to top and tail a wma file with a codec Windows Media Audio 9.2. I know Windows Media Audio 9 Professional encoding is not supported. But I just need to top and tail this audio file.
I only get an audio file output with codec Windows Media Audio 8.
ffmpeg -i .\1_encoding.wmv -acodec copy -preset ultrafast .\prueba1.wma
Is it possible to get an output with Windows Media Audio 9.2 ?
-
Exe media file conversion to mp4
31 mai 2016, par karthikpjI have an exe file which is actually a media file which I need to convert to mp4. It contains footage from CCTV cameras.When I open that exe file,a launcher called SecureView is opened and the video can be played inside that player.
I need to convert that exe to mp4 for viewing it in other normal media players.
I have used a tool called exe2swf but there was no swf file in it.
Is there any way to separate that launcher from the video ?