Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
Need help finding a way to use avconv or ffmpeg to convert any video to an exact size and shape
29 octobre 2013, par mikecole79This is for work. We have a system that supports streaming video, but we support multiple players. I have multiple systems that I COULD use for this. Currently, I've been using the media server that we use to stream the video, which has ffmpeg on it (running Red Hat 4). On that system, I've used:
ffmpeg -i INPUT_FILE.mp4 -c:v libx264 -crf 23 -maxrate 3000k -bufsize 30000k -c:a aac -strict experimental -b:a 192k -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -f OUTPUT_FILE.mp4
And I thought that it worked well. On one file I used to test, it seemed to display properly on both player types. On a different file, it did not appear properly. The input files are also in varying formats (mostly mp4, with a few m4g files) and different aspect ratios.
We also have many desktop/laptop machines that are running Ubuntu 13.04 (comes with avconv) that I'd like to be able to use to format video as well. If I can get at least one of these systems to properly format video, that would be great, but ideally I'd like to figure out how to do this with both avconv AND ffmpeg so I can use any system.
The problem that we're trying to solve is that one player is an Android DMP device, which will play a video of varying sizes properly by adding black bars at the sides or top/bottom as needed to keep the video sized properly. The other player is a Samsung Smart TV, which is SO Smart that it can reformat videos to fit the screen. Which sucks horribly, because if they're not sized to exactly the right format, it will stretch them one direction or another to make them be sized right. The resulting video show's people that appear to be 8 feet tall weighing 130 pounds, or 4 feet tall and 3 feet wide.
Obviously, this isn't what we desire, but I lack the knowledge of avconv/ffmpeg to do anything to fix it. I need an expert, and I am not he. Nor is anyone I currently work with an expert on this subject. Anyone that is, I'd appreciate your help more than I can express via a web interface.
Thanks!
-
FFmpeg remux without decode/encode
29 octobre 2013, par BoltonI want to use ffmpeg lib to save rtsp stream to local mp4 file without decode. both the inpout stream and output file use H264+AAC codec. For now I use the following code to read the packet from the input stream and write to the output file.
... av_write_header(oFmtCtx); av_init_packet(&packet); int j = 0; while (av_read_frame(pIFmtCtx, &packet) >= 0 && j < 140/*temp use to get a period of the stream*/) { //now I only output the audio stream if (packet.stream_index == audioStream) { AVPacket pkt; av_init_packet(&pkt); pkt.size = packet.size; pkt.data = packet.data; pkt.dts = AV_NOPTS_VALUE; pkt.pts = AV_NOPTS_VALUE; pkt.flags |= PKT_FLAG_KEY; pkt.stream_index = oStream->index; if (av_interleaved_write_frame(oFmtCtx, &pkt) != 0) { LOGI("Error while writing audio frame\n"); break; } } j++; } av_write_trailer(oFmtCtx);
The file is generated. and when I open it using VLC, the playback lasts for the right time but no audio is outputed. Any help will be greatly appreciated, Thanks in advance.
Bolton
-
Checkinstall equivalent on Red Hat (Santiago)
29 octobre 2013, par DaliusI'm not familiar with Red Hat, never used it before.
I'm installing ffmpeg from source, following this guide https://trac.ffmpeg.org/wiki/CentosCompilationGuide
On Debian, after using make to compile ffmpeg, I would use checkinstall to install ffmpeg for all users. How can I do the same on Red Hat?
-
FFMPEG encode video with alpha channel to flv
29 octobre 2013, par treeI'm trying to encode a video (mov) to an flv with alpha channel in FFMPEG but I can't seem to either
- find a codec that is supported
- find one that actually maintains the alpha
Does anyone know how to set that up?
Thanks,
ffmpeg -i abc_btr_1280x800_Takeover.mov -vcodec flv -pix_fmt yuv444p -s 1280x800 test4.flv
here is the report...
ffmpeg started on 2013-10-25 at 15:47:30 Report written to "ffmpeg-20131025-154730.log" Command line: ffmpeg -i abc_btr_1280x800_Takeover.mov -vcodec flv -pix_fmt yuv444p -s 1280x800 test4.flv -report ffmpeg version N-57367-g2f31b73 Copyright (c) 2000-2013 the FFmpeg developers built on Oct 23 2013 20:34:17 with gcc 4.8.2 (GCC) configuration: --disable-static --enable-shared --enable-gpl --enable-version3 -- disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r -- enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable- libfreetype --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame -- enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 52. 47.101 / 52. 47.101 libavcodec 55. 38.101 / 55. 38.101 libavformat 55. 19.104 / 55. 19.104 libavdevice 55. 4.100 / 55. 4.100 libavfilter 3. 89.100 / 3. 89.100 libswscale 2. 5.101 / 2. 5.101 libswresample 0. 17.104 / 0. 17.104 libpostproc 52. 3.100 / 52. 3.100 Splitting the commandline. Reading option '-i' ... matched as input file with argument 'abc_btr_1280x800_Takeover.mov'. Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'flv'. Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv444p'. Reading option '-s' ... matched as option 's' (set frame size (WxH or abbreviation)) with argument '1280x800'. Reading option 'test4.flv' ... matched as output file. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Finished splitting the commandline. Parsing a group of options: global . Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input file abc_btr_1280x800_Takeover.mov. Successfully parsed a group of options. Opening an input file: abc_btr_1280x800_Takeover.mov. [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000085ac00] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000085ac00] ISO: File Type Major Brand: qt [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000085ac00] File position before avformat_find_stream_info() is 281624339 [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000085ac00] All info found [mov,mp4,m4a,3gp,3g2,mj2 @ 000000000085ac00] File position after avformat_find_stream_info() is 288732 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'abc_btr_1280x800_Takeover.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2013-09-22 02:50:18 Duration: 00:00:10.00, start: 0.000000, bitrate: 225299 kb/s Stream #0:0(eng), 1, 1/24: Video: qtrle (rle / 0x20656C72), bgra, 1280x800, 225293 kb/s, SAR 1280:1280 DAR 8:5, 24 fps, 24 tbr, 24 tbn, 24 tbc (default) Metadata: creation_time : 2013-09-22 02:50:18 handler_name : Apple Alias Data Handler timecode : 00:00:00:00 Stream #0:1(eng), 0, 1/24: Data: none (tmcd / 0x64636D74), 0 kb/s (default) Metadata: creation_time : 2013-09-22 02:50:22 handler_name : Apple Alias Data Handler timecode : 00:00:00:00 Successfully opened the file. Parsing a group of options: output file test4.flv. Applying option vcodec (force video codec ('copy' to copy stream)) with argument flv. Applying option pix_fmt (set pixel format) with argument yuv444p. Applying option s (set frame size (WxH or abbreviation)) with argument 1280x800. Successfully parsed a group of options. Opening an output file: test4.flv. Successfully opened the file. detected 4 logical cores [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'video_size' to value '1280x800' [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'pix_fmt' to value '30' [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'time_base' to value '1/24' [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'pixel_aspect' to value '1280/1280' [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0000000000303bc0] Setting 'frame_rate' to value '24/1' [graph 0 input from stream 0:0 @ 0000000000303bc0] w:1280 h:800 pixfmt:bgra tb:1/24 fr:24/1 sar:1/1 sws_param:flags=2 [scaler for output stream 0:0 @ 00000000003056a0] Setting 'w' to value '1280' [scaler for output stream 0:0 @ 00000000003056a0] Setting 'h' to value '800' [scaler for output stream 0:0 @ 00000000003056a0] Setting 'flags' to value '0x4' [scaler for output stream 0:0 @ 00000000003056a0] w:1280 h:800 flags:'0x4' interl:0 Incompatible pixel format 'yuv444p' for codec 'flv', auto-selecting format 'yuv420p' [format @ 00000000002f8320] compat: called with args=[yuv420p] [format @ 00000000002f8320] Setting 'pix_fmts' to value 'yuv420p' [AVFilterGraph @ 000000000085bc60] query_formats: 5 queried, 4 merged, 0 already done, 0 delayed [scaler for output stream 0:0 @ 00000000003056a0] w:1280 h:800 fmt:bgra sar:1/1 -> w:1280 h:800 fmt:yuv420p sar:1/1 flags:0x4 [flv @ 0000000000374be0] intra_quant_bias = 0 inter_quant_bias = -64 Output #0, flv, to 'test4.flv': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt encoder : Lavf55.19.104 Stream #0:0(eng), 0, 1/1000: Video: flv1 (flv) ([2][0][0][0] / 0x0002), yuv420p, 1280x800 [SAR 1:1 DAR 8:5], q=2-31, 200 kb/s, 1k tbn, 24 tbc (default) Metadata: creation_time : 2013-09-22 02:50:18 handler_name : Apple Alias Data Handler timecode : 00:00:00:00 Stream mapping: Stream #0:0 -> #0:0 (qtrle -> flv) Press [q] to stop, [?] for help frame= 27 fps=0.0 q=31.0 size= 351kB time=00:00:01.12 bitrate=2554.2kbits/s frame= 46 fps= 45 q=31.0 size= 477kB time=00:00:01.91 bitrate=2039.5kbits/s frame= 60 fps= 39 q=31.0 size= 543kB time=00:00:02.50 bitrate=1779.4kbits/s frame= 74 fps= 36 q=31.0 size= 629kB time=00:00:03.08 bitrate=1672.4kbits/s frame= 96 fps= 37 q=31.0 size= 795kB time=00:00:04.00 bitrate=1627.4kbits/s frame= 123 fps= 40 q=31.0 size= 924kB time=00:00:05.12 bitrate=1477.0kbits/s frame= 149 fps= 41 q=31.0 size= 1133kB time=00:00:06.20 bitrate=1494.7kbits/s frame= 175 fps= 43 q=31.0 size= 1224kB time=00:00:07.29 bitrate=1375.5kbits/s frame= 201 fps= 44 q=31.0 size= 1352kB time=00:00:08.37 bitrate=1322.7kbits/s frame= 228 fps= 45 q=31.0 size= 1461kB time=00:00:09.50 bitrate=1260.1kbits/s [output stream 0:0 @ 00000000003053c0] EOF on sink link output stream 0:0:default. No more output streams to write to, finishing. frame= 240 fps= 45 q=31.0 Lsize= 1600kB time=00:00:10.00 bitrate=1310.4kbits/s video:1596kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.252476% 240 frames successfully decoded, 0 decoding errors [AVIOContext @ 000000000032dfc0] Statistics: 3 seeks, 242 writeouts [AVIOContext @ 000000000085bde0] Statistics: 281664506 bytes read, 3 seeks
-
Opening and reading a media file in android using ffmpeg
29 octobre 2013, par ssrpI am developing an android project which has to open and read a MVC video file and save the streams separately in another location. I have done the basic steps for building ffmpeg for android and calling a c function through JNI. I want to know where do I have to put media files for doing above operations to it calling a C function in the C source file where I have all the Native function's implementations.