Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
FFmpeg : Decode ALAC (Apple Lossless) Audio (RTP source)
30 avril 2014, par CarpediemI am working on Decoding Audio coming via RTP. The Audio is ALAC encoded. I am unable to setup the decoder in ffmpeg and decode. My code looks like this. Any help is appreciated.
The following is where I setup the codec context
p_rtp_audio_codec = avcodec_find_decoder(AVCodecID::AV_CODEC_ID_ALAC); p_rtp_audio_codec_ctx = avcodec_alloc_context3(p_rtp_audio_codec); av_opt_set_int(p_rtp_audio_codec_ctx, "channel_layout", AV_CH_LAYOUT_STEREO, 0); // TODO : Set Sample format and Sample Rate ? How to do that? if (avcodec_open2(p_rtp_audio_codec_ctx, p_rtp_audio_codec, NULL) < 0) { std::cout << "[DEC] avcodec_open2 failed for RTP AUDIO CODEC CTX\n"; } // allocate frames p_rtp_audio_frame = avcodec_alloc_frame();
The following is where I decode the audio as I get RTP streams
// fill the packet packet.data = &audio_streams[index].data[0]; packet.size = audio_streams[index].size; int result1 = avcodec_decode_audio4(p_rtp_audio_codec_ctx, p_rtp_audio_frame, &got_audio_frame, &packet);
My call to avcodec_open2 fails and I see that the structure codec_ctx->codec is not filled with values. Any idea how I can do this?
-
Node-webkit : audio/video format accepted
30 avril 2014, par user3360048I want to insert a video in my app running with node-webkit.
Initially I've a .mp4 file, that wasn't read. I've read the exlanation so I open a terminal and check my file:
file movie.mp4 > movie.mp4: ISO Media, MPEG v4 system, version 2
I try to convert video in this way:
ffmpeg -i movie.mp4 -an -vcodec libx264 -crf 23 movie.mov
But still in this way didn't play. So i try again:
ffmpeg -i movie.mp4 -acodec copy -vcodec libx264 -f mov movie.mov
In this case my video is been visualized, but with no audio.
How can I do?
-
I got a green overlay in my video when using multiply blend mode in ffmpeg [on hold]
30 avril 2014, par GJGi´m trying to blend two videos with the multiply blend mode. But I got a green overlay in the resulting video.
This is a image where are one frame of each input video and one frame of the resulting video Composition
I got this script, this is extracted from a part of my code:
#!/bin/bash ffmpeg -y -i video_top.avi -i video_background.mp4 -filter_complex "blend=all_mode=multiply" -f mp4 -vcodec libx264 out.mp4
This is the ffmpeg output:
built on Mar 20 2014 14:51:45 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1) configuration: --enable-gpl --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libspeex --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-version3 libavutil 52. 67.100 / 52. 67.100 libavcodec 55. 52.102 / 55. 52.102 libavformat 55. 34.101 / 55. 34.101 libavdevice 55. 11.100 / 55. 11.100 libavfilter 4. 3.100 / 4. 3.100 libswscale 2. 5.102 / 2. 5.102 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100 Input #0, avi, from 'video_top.avi': Metadata: encoder : Lavf54.29.104 Duration: 00:00:10.72, start: 0.000000, bitrate: 688 kb/s Stream #0:0: Video: h264 (High) (H264 / 0x34363248), yuv420p, 704x576 [SAR 1:1 DAR 11:9], 682 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'video_background.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: mp42mp41 creation_time : 2014-04-29 12:51:17 Duration: 00:00:08.90, start: 0.033333, bitrate: 3417 kb/s Stream #1:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 704x576 [SAR 1:1 DAR 11:9], 3408 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default) Metadata: creation_time : 2014-04-29 12:51:17 handler_name : ?Mainconcept Video Media Handler [libx264 @ 0x2e42660] using SAR=1/1 [libx264 @ 0x2e42660] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x2e42660] profile High, level 3.0 [libx264 @ 0x2e42660] 264 - core 142 r2 d6b4e63 - 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 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'out.mp4': Metadata: encoder : Lavf55.34.101 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 704x576 [SAR 1:1 DAR 11:9], q=-1--1, 12800 tbn, 25 tbc (default) Stream mapping: Stream #0:0 (h264) -> blend:top Stream #1:0 (h264) -> blend:bottom blend -> Stream #0:0 (libx264) Press [q] to stop, [?] for help frame= 268 fps=121 q=-1.0 Lsize= 732kB time=00:00:10.64 bitrate= 563.2kbits/s video:728kB audio:0kB subtitle:0 data:0 global headers:0kB muxing overhead 0.539149% [libx264 @ 0x2e42660] frame I:2 Avg QP:17.96 size: 35789 [libx264 @ 0x2e42660] frame P:77 Avg QP:21.68 size: 5552 [libx264 @ 0x2e42660] frame B:189 Avg QP:24.79 size: 1298 [libx264 @ 0x2e42660] consecutive B-frames: 1.1% 11.2% 10.1% 77.6% [libx264 @ 0x2e42660] mb I I16..4: 30.7% 36.5% 32.7% [libx264 @ 0x2e42660] mb P I16..4: 3.0% 2.6% 0.4% P16..4: 41.3% 14.4% 6.6% 0.0% 0.0% skip:31.7% [libx264 @ 0x2e42660] mb B I16..4: 0.2% 0.1% 0.0% B16..8: 43.8% 2.8% 0.3% direct: 0.2% skip:52.5% L0:42.2% L1:56.1% BI: 1.7% [libx264 @ 0x2e42660] 8x8 transform intra:40.7% inter:79.1% [libx264 @ 0x2e42660] coded y,uvDC,uvAC intra: 48.9% 29.0% 8.3% inter: 7.1% 4.5% 0.1% [libx264 @ 0x2e42660] i16 v,h,dc,p: 23% 19% 33% 26% [libx264 @ 0x2e42660] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 15% 45% 3% 3% 3% 5% 3% 6% [libx264 @ 0x2e42660] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 32% 23% 19% 4% 3% 3% 7% 2% 7% [libx264 @ 0x2e42660] i8c dc,h,v,p: 67% 15% 16% 1% [libx264 @ 0x2e42660] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x2e42660] ref P L0: 67.4% 10.1% 17.0% 5.6% [libx264 @ 0x2e42660] ref B L0: 91.6% 7.3% 1.1% [libx264 @ 0x2e42660] ref B L1: 94.9% 5.1% [libx264 @ 0x2e42660] kb/s:555.48
I don't know what is wrong, and using others blend modes got others ridiculous results, like having a pink overlay in the video.
Suggestions will be well appreciated, thanks very much.
-
FFMpeg video recorder - Android
30 avril 2014, par GaneshI've used ffmpeg video recorder for android.
it has used videocodec as MPEG4.
private int videoCodec = avcodec.AV_CODEC_ID_MPEG4;
video is showing android and iphone device. but video not playing on browser only audio playing on browser.
I've checked HTML5 video requires MP4 videos with H264 video codec and AAC audio codec
Chrome doesn't display html5 video but plays audio
I've changed videocodec as below
private int videoCodec = avcodec.AV_CODEC_ID_H264;
My question is,
when i use Mpeg4, video croping time is less. But when i use H264 , video croping time takes more.
How to reduce the video croping time when use H264 or anyother videocode support to browser and minimum processing time for video croping.?
-
best way stream images to a remote server ?
30 avril 2014, par shikataI want to stream the user screen (of the computer using C# app) to a remote server (PHP) through an FLV player or any other way.
I take a screenshot each 1 seconds, send it as base64 data to the remte server, then save it as X.jpg on the remote server, where X is an incrementing number.
Once I reach 100 images, I use the command below in order to convert the images into a video :
exec('ffmpeg -y -r 2 -f image2 -i img%d.jpg -r 20 temp.flv 2>&1 >/dev/null', $output, $exit_status);
Once the video is created, I display it to the user and delete all files, then repeat the process again, and again in order to keep streaming.
This way doesn't really work as expected and it has a lot of drawbacks.
Is there any alternative way I can broadcast the taken screenshots to the remote client in his browser without having to convert the images to a video and play it and keep on repeating this process ??