
Recherche avancée
Autres articles (105)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
L’utiliser, en parler, le critiquer
10 avril 2011La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
Une liste de discussion est disponible pour tout échange entre utilisateurs. -
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" (...)
Sur d’autres sites (12600)
-
ffmpeg dshow command is listing device name different from actual device name
20 octobre 2015, par Somanshui have used the command:ffmpeg -f dshow -list_devices true -i dummy
to list the devices.
But if device name is in language other than english then device name shown by ffmpeg and actual differ.How can i solve this mismatch problem.
-
FFmpeg encoding live audio to aac issue
12 juillet 2015, par Ruurd AdemaI’m trying to encode live raw audio coming from a Blackmagic Decklink input card to a mov file with AAC encoding.
The issue is that the audio sounds distorted and plays to fast.
I created the software based on a couple of examples/tutorials including the Dranger tutorial and examples on Github (and of course the examples in the FFmpeg codebase).
Honestly, at this moment I don’t exactly know what the cause of the problem is. I’m thinking about PTS/DTS values or a timebase mismatch (because of the too fast playout), I tried a lot of things, including working with an av_audio_fifo.
- When outputting to the mov file with the AV_CODEC_ID_PCM_S16LE codec, everything works well
- When outputting to the mov file with the AV_CODEC_ID_AAC codec, the problems occur
- When writing RAW audio VLC media info shows :
Type : Audio, Codec : PCM S16 LE (sowt), Language : English, Channels : Stereo, Sample rate : 48000 Hz, Bits per sample. - When writing with AAC codec VLC media info shows :
Type : Audio, Codec : MPEG AAC Audio (mp4a), Language : English, Channels : Stereo, Sample rate : 48000 Hz.
Any idea(s) of what’s causing the problems ?
Code
// Create output context
output_filename = "/root/movies/encoder_debug.mov";
output_format_name = "mov";
if (avformat_alloc_output_context2(&output_fmt_ctx, NULL, output_format_name, output_filename) < 0)
{
printf("[ERROR] Unable to allocate output format context for output: %s\n", output_filename);
}
// Create audio output stream
static AVStream *encoder_add_audio_stream(AVFormatContext *oc, enum AVCodecID codec_id)
{
AVCodecContext *c;
AVCodec *codec;
AVStream *st;
st = avformat_new_stream(oc, NULL);
if (!st)
{
printf("[ERROR] Could not allocate new audio stream!\n");
exit(-1);
}
c = st->codec;
c->codec_id = codec_id;
c->codec_type = AVMEDIA_TYPE_AUDIO;
c->sample_fmt = AV_SAMPLE_FMT_S16;
c->sample_rate = decklink_config()->audio_samplerate;
c->channels = decklink_config()->audio_channel_count;
c->channel_layout = av_get_default_channel_layout(decklink_config()->audio_channel_count);
c->time_base.den = decklink_config()->audio_samplerate;
c->time_base.num = 1;
if (codec_id == AV_CODEC_ID_AAC)
{
c->bit_rate = 96000;
//c->profile = FF_PROFILE_AAC_MAIN; //FIXME Generates error: "Unable to set the AOT 1: Invalid config"
// Allow the use of the experimental AAC encoder
c->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;
}
// Some formats want stream headers to be seperate (global?)
if (oc->oformat->flags & AVFMT_GLOBALHEADER)
{
c->flags |= CODEC_FLAG_GLOBAL_HEADER;
}
codec = avcodec_find_encoder(c->codec_id);
if (!codec)
{
printf("[ERROR] Audio codec not found\n");
exit(-1);
}
if (avcodec_open2(c, codec, NULL) < 0)
{
printf("[ERROR] Could not open audio codec\n");
exit(-1);
}
return st;
}
// En then, at every incoming frame this function gets called:
void encoder_handle_incoming_frame(IDeckLinkVideoInputFrame *videoframe, IDeckLinkAudioInputPacket *audiopacket)
{
void *pixels = NULL;
int pitch = 0;
int got_packet = 0;
void *audiopacket_data = NULL;
long audiopacket_sample_count = 0;
long audiopacket_size = 0;
long audiopacket_channel_count = 2;
if (audiopacket)
{
AVPacket pkt = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
AVFrame *frame;
BMDTimeValue audio_pts;
int requested_size;
static int last_pts1, last_pts2 = 0;
audiopacket_sample_count = audiopacket->GetSampleFrameCount();
audiopacket_channel_count = decklink_config()->audio_channel_count;
audiopacket_size = audiopacket_sample_count * (decklink_config()->audio_sampletype/8) * audiopacket_channel_count;
audiopacket->GetBytes(&audiopacket_data);
av_init_packet(&pkt);
printf("\n=== Audiopacket: %d ===\n", audio_stream->codec->frame_number);
if (AUDIO_TYPE == AV_CODEC_ID_PCM_S16LE)
{
audiopacket->GetPacketTime(&audio_pts, audio_stream->time_base.den);
pkt.pts = audio_pts;
pkt.dts = pkt.pts;
pkt.flags |= AV_PKT_FLAG_KEY; // TODO: Make sure if this still applies
pkt.stream_index = audio_stream->index;
pkt.data = (uint8_t *)audiopacket_data;
pkt.size = audiopacket_size;
printf("[PACKET] size: %d\n", pkt.size);
printf("[PACKET] pts: %li\n", pkt.pts);
printf("[PACKET] pts delta: %li\n", pkt.pts - last_pts2);
printf("[PACKET] duration: %d\n", pkt.duration);
last_pts2 = pkt.pts;
av_interleaved_write_frame(output_fmt_ctx, &pkt);
}
else if (AUDIO_TYPE == AV_CODEC_ID_AAC)
{
frame = av_frame_alloc();
frame->format = audio_stream->codec->sample_fmt;
frame->channel_layout = audio_stream->codec->channel_layout;
frame->sample_rate = audio_stream->codec->sample_rate;
frame->nb_samples = audiopacket_sample_count;
requested_size = av_samples_get_buffer_size(NULL, audio_stream->codec->channels, audio_stream->codec->frame_size, audio_stream->codec->sample_fmt, 1);
audiopacket->GetPacketTime(&audio_pts, audio_stream->time_base.den);
printf("[DEBUG] Sample format: %d\n", frame->format);
printf("[DEBUG] Channel layout: %li\n", frame->channel_layout);
printf("[DEBUG] Sample rate: %d\n", frame->sample_rate);
printf("[DEBUG] NB Samples: %d\n", frame->nb_samples);
printf("[DEBUG] Datasize: %li\n", audiopacket_size);
printf("[DEBUG] Requested datasize: %d\n", requested_size);
printf("[DEBUG] Too less/much: %li\n", audiopacket_size - requested_size);
printf("[DEBUG] Framesize: %d\n", audio_stream->codec->frame_size);
printf("[DEBUG] Audio pts: %li\n", audio_pts);
printf("[DEBUG] Audio pts delta: %li\n", audio_pts - last_pts1);
last_pts1 = audio_pts;
frame->pts = audio_pts;
if (avcodec_fill_audio_frame(frame, audiopacket_channel_count, audio_stream->codec->sample_fmt, (const uint8_t *)audiopacket_data, audiopacket_size, 0) < 0)
{
printf("[ERROR] Filling audioframe failed!\n");
exit(-1);
}
got_packet = 0;
if (avcodec_encode_audio2(audio_stream->codec, &pkt, frame, &got_packet) != 0)
{
printf("[ERROR] Encoding audio failed\n");
}
if (got_packet)
{
pkt.stream_index = audio_stream->index;
pkt.flags |= AV_PKT_FLAG_KEY;
//printf("[PACKET] size: %d\n", pkt.size);
//printf("[PACKET] pts: %li\n", pkt.pts);
//printf("[PACKET] pts delta: %li\n", pkt.pts - last_pts2);
//printf("[PACKET] duration: %d\n", pkt.duration);
//printf("[PACKET] timebase codec: %d/%d\n", audio_stream->codec->time_base.num, audio_stream->codec->time_base.den);
//printf("[PACKET] timebase stream: %d/%d\n", audio_stream->time_base.num, audio_stream->time_base.den);
last_pts2 = pkt.pts;
av_interleaved_write_frame(output_fmt_ctx, &pkt);
}
av_frame_free(&frame);
}
av_free_packet(&pkt);
}
else
{
printf("[WARNING] No audiopacket received!\n");
}
static int count = 0;
count++;
} -
How to embed subtitles to .mp4 movie using ffmpeg
25 novembre 2016, par hudacI’m trying to embed subtitles I wrote to a movie I created.
I’m using FFmpeg version :ffmpeg-20150418-git-edbb9b5-win64-static
with the command :
ffmpeg -i in.mp4 -f srt -i subs.srt -c:v copy -c:a copy -c:s mov_text out.mp4
I saw here.But I get errors during the process, and when the process is done there’s an output file
out.mp4
without subtitles embedded.
When I play thein.mp4
in some player such asmedia player classic
with the subtitles separately, the subtitles are sync and everything is fine.The subtitles are
subrip
encoded inUTF8
.I tried to look out for these errors but didn’t find anything useful. it seems something ridiculous.
What am I doing wrong ?Errors such as :
[mp4 @ 00000000003fe020] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 00000000003fe020] Codec for stream 1 does not use global headers but container format requires global headers
[mp4 @ 00000000003fe020] Application provided duration: -8 / timestamp: 72205 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no valueMovie details from
Media info
:Video
ID: 1
Format: AVC
Format/Info: Advanced Video Codec
Format profile: Main@L4.2
Format settings, CABAC: Yes
Format settings, ReFrames: 3 frames
Format settings, GOP: M=4, N=24
Codec ID: avc1
Codec ID/Info: Advanced Video Coding
Duration: 8mn 32s
Source duration: 8mn 32s
Bit rate: 23.4 Mbps
Width: 1920 pixels
Height: 1080 pixels
Display aspect ratio: 16:9
Original display aspect ratio: 2.2:1
Frame rate mode: Variable
Frame rate: 23.976 fps
Minimum frame rate: 23.976 fps
Maximum frame rate: 24.000 fps
Standard: NTSC
Color space: YUV
Chroma subsampling: 4:2:0
Bit depth: 8 bits
Scan type: Progressive
Bits/(Pixel*Frame): 0.472
Stream size: 1.40 GiB (99%)
Source stream size: 1.40 GiB (99%)
Language: English
Encoded date: UTC 2015-04-28 20:31:41
Tagged date: UTC 2015-04-28 20:31:41
mdhd_Duration: 512137Ffmpeg command output :
ffmpeg version N-71497-gedbb9b5 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-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --en
able-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 --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
libavutil 54. 22.101 / 54. 22.101
libavcodec 56. 34.100 / 56. 34.100
libavformat 56. 30.100 / 56. 30.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 14.100 / 5. 14.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'in.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2015-04-28 20:31:41
Duration: 00:08:32.17, start: 0.000000, bitrate: 23640 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1920x1080 [SAR 40:33 DAR 640:297], 23444 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 t
bc (default)
Metadata:
creation_time : 2015-04-28 20:31:41
handler_name : ?Mainconcept Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
Metadata:
creation_time : 2015-04-28 20:31:41
handler_name : #Mainconcept MP4 Sound Media Handler
Input #1, srt, from 'subs.srt':
Duration: N/A, bitrate: N/A
Stream #1:0: Subtitle: subrip
[mp4 @ 00000000003fe020] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 00000000003fe020] Codec for stream 1 does not use global headers but container format requires global headers
Output #0, mp4, to 'out.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
encoder : Lavf56.30.100
Stream #0:0(eng): Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 40:33 DAR 640:297], q=2-31, 23444 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 24k t
bc (default)
Metadata:
creation_time : 2015-04-28 20:31:41
handler_name : ?Mainconcept Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 189 kb/s (default)
Metadata:
creation_time : 2015-04-28 20:31:41
handler_name : #Mainconcept MP4 Sound Media Handler
Stream #0:2: Subtitle: mov_text ([8][0][0][0] / 0x0008)
Metadata:
encoder : Lavc56.34.100 mov_text
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
[mp4 @ 00000000003fe020] Application provided duration: -8 / timestamp: 72205 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -7 / timestamp: 74217 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -8 / timestamp: 76267 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -4 / timestamp: 77872 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -7 / timestamp: 79260 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -1 / timestamp: 88987 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -60 / timestamp: 91489 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -4 / timestamp: 108080 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -1 / timestamp: 112974 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -8 / timestamp: 115528 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -9 / timestamp: 122758 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 124862 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -12 / timestamp: 130307 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -140 / timestamp: 150079 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -144 / timestamp: 156606 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -245 / timestamp: 158916 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 231587 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -1 / timestamp: 234743 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -9 / timestamp: 239406 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 242670 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -4 / timestamp: 249833 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -9 / timestamp: 252669 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 257713 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -2 / timestamp: 272866 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -152 / timestamp: 276417 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -3 / timestamp: 290209 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 302825 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 305466 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -3 / timestamp: 314151 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -8 / timestamp: 315957 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -1 / timestamp: 322568 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -164 / timestamp: 333373 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -3 / timestamp: 379341 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -5 / timestamp: 385070 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -7 / timestamp: 396166 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -7 / timestamp: 402007 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -4 / timestamp: 404571 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -2 / timestamp: 418218 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -5 / timestamp: 428136 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -5 / timestamp: 433347 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -4 / timestamp: 438939 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -7 / timestamp: 445657 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 449039 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -6 / timestamp: 451870 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
[mp4 @ 00000000003fe020] Application provided duration: -5 / timestamp: 456582 is out of range for mov/mp4 format
[mp4 @ 00000000003fe020] pts has no value
frame=12279 fps=138 q=-1.0 Lsize= 1477815kB time=00:08:32.16 bitrate=23637.2kbits/s
video:1465658kB audio:11840kB subtitle:8kB other streams:0kB global headers:0kB muxing overhead: 0.020907%