Recherche avancée

Médias (1)

Mot : - Tags -/swfupload

Autres articles (93)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (11378)

  • Using FFmpeg to encode 2pass mp4

    30 juin 2016, par Erin.Yang

    I am trying to use FFmpeg to encode my 4K mp4 file to a 2pass 265 mp4 file for the purposes of testing. I am new to video compression and hope I’m making a simple mistake that someone can correct.

    All infos in command line as below :

    C:\Ying\FF>C:\Ying\FF\ffmpeg.exe -y -i C:\Ying\FF\Xman-4K_50sec_3840x2160.mp4 -preset veryslow -x265-params pass=1 -vcodec hevc -b:v 15M -acodec libvo
    _aacenc -b:a 128K C:\Ying\FF\Xman-4K_3840x2160_50sec_15M_H265_veryslow_2pass.mp4
    ffmpeg version N-74286-ge5774f2 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.3 (GCC)
     configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontco
    nfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-l
    ibfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-am
    rwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-lib
    twolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --en
    able-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
     libavutil      54. 30.100 / 54. 30.100
     libavcodec     56. 57.100 / 56. 57.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 32.100 /  5. 32.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Ying\FF\Xman-4K_50sec_3840x2160.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : X-MEN__DAYS_OF_FUTURE_PAST.Title800
       encoder         : Lavf56.40.101
     Duration: 00:00:50.01, start: 0.000000, bitrate: 11067 kb/s
       Chapter #0:0: start 0.000000, end 50.000000
       Metadata:
         title           : (26)01:17:27:726
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 11492 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (de
    fault)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
       Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574), 0 kb/s
       Metadata:
         handler_name    : SubtitleHandler
    x265 [info]: HEVC encoder version 1.7
    x265 [info]: build info [Windows][GCC 4.9.2][64 bit] 8bpp
    x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    x265 [info]: Main profile, Level-5 (Main tier)
    x265 [info]: Thread pool created using 32 threads
    x265 [info]: frame threads / pool features       : 8 / wpp(34 rows)
    x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
    x265 [info]: Residual QT: max TU size, max depth : 32 / 3 inter / 3 intra
    x265 [info]: ME / range / subpel / merge         : dia / 57 / 2 / 1
    x265 [info]: Keyframe min / max / scenecut       : 25 / 250 / 40
    x265 [info]: Lookahead / bframes / badapt        : 40 / 8 / 2
    x265 [info]: b-pyramid / weightp / weightb / refs: 1 / 1 / 1 / 1
    x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 64 / 1
    x265 [info]: Rate Control / qCompress            : ABR-15000 kbps / 0.60
    x265 [info]: tools: rd=2 psy-rd=0.30 rdoq=2 psy-rdoq=1.00 early-skip signhide
    x265 [info]: tools: tmvp b-intra fast-intra strong-intra-smoothing deblock sao
    x265 [info]: tools: stats-write
    Output #0, mp4, to 'C:\Ying\FF\Xman-4K_3840x2160_50sec_15M_H265_veryslow_2pass.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : X-MEN__DAYS_OF_FUTURE_PAST.Title800
       encoder         : Lavf56.40.101
       Chapter #0:0: start 0.000000, end 50.000000
       Metadata:
         title           : (26)01:17:27:726
       Stream #0:0(und): Video: hevc (libx265) ([35][0][0][0] / 0x0023), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 15000 kb/s, 30 fps, 15360 tbn, 30
    tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc56.57.100 libx265
       Stream #0:1(und): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         encoder         : Lavc56.57.100 libvo_aacenc
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
     Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
    Press [q] to stop, [?] for help
    frame= 1502 fps=2.6 q=-0.0 Lsize=  100652kB time=00:00:50.01 bitrate=16485.9kbits/s dup=75 drop=0
    video:99814kB audio:782kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.054657%
    x265 [info]: frame I:     11, Avg QP:13.26  kb/s: 59293.48
    x265 [info]: frame P:    443, Avg QP:15.21  kb/s: 33977.10
    x265 [info]: frame B:   1048, Avg QP:18.35  kb/s: 8420.64
    x265 [info]: global :   1502, Avg QP:17.39  kb/s: 16330.84
    x265 [info]: Weighted P-Frames: Y:4.5% UV:4.5%
    x265 [info]: Weighted B-Frames: Y:1.9% UV:1.6%
    x265 [info]: consecutive B-frames: 23.8% 11.9% 14.8% 22.9% 17.8% 7.0% 0.0% 0.0% 1.8%

    C:\Ying\FF>C:\Ying\FF\ffmpeg.exe -y -i C:\Ying\FF\Xman-4K_50sec_3840x2160.mp4 -preset veryslow -x265-params pass=2 -vcodec hevc -b:v 15M -acodec libvo
    _aacenc -b:a 128K C:\Ying\FF\Xman-4K_3840x2160_50sec_15M_H265_veryslow_2pass.mp4
    ffmpeg version N-74286-ge5774f2 Copyright (c) 2000-2015 the FFmpeg developers
     built with gcc 4.9.3 (GCC)
     configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontco
    nfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-l
    ibfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-am
    rwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-lib
    twolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --en
    able-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
     libavutil      54. 30.100 / 54. 30.100
     libavcodec     56. 57.100 / 56. 57.100
     libavformat    56. 40.101 / 56. 40.101
     libavdevice    56.  4.100 / 56.  4.100
     libavfilter     5. 32.100 /  5. 32.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  2.101 /  1.  2.101
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Ying\FF\Xman-4K_50sec_3840x2160.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : X-MEN__DAYS_OF_FUTURE_PAST.Title800
       encoder         : Lavf56.40.101
     Duration: 00:00:50.01, start: 0.000000, bitrate: 11067 kb/s
       Chapter #0:0: start 0.000000, end 50.000000
       Metadata:
         title           : (26)01:17:27:726
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 11492 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (de
    fault)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
       Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574), 0 kb/s
       Metadata:
         handler_name    : SubtitleHandler
    x265 [info]: HEVC encoder version 1.7
    x265 [info]: build info [Windows][GCC 4.9.2][64 bit] 8bpp
    x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    x265 [info]: Main profile, Level-6 (Main tier)
    x265 [info]: Thread pool created using 32 threads
    x265 [info]: frame threads / pool features       : 8 / wpp(34 rows)
    x265 [error]: statistics are damaged at line 1495, parser out=1
    [libx265 @ 0000000001e97d00] Cannot open libx265 encoder.
    Output #0, mp4, to 'C:\Ying\FF\Xman-4K_3840x2160_50sec_15M_H265_veryslow_2pass.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : X-MEN__DAYS_OF_FUTURE_PAST.Title800
       encoder         : Lavf56.40.101
       Chapter #0:0: start 0.000000, end 50.000000
       Metadata:
         title           : (26)01:17:27:726
       Stream #0:0(und): Video: hevc, none, q=2-31, 128 kb/s, SAR 1:1 DAR 0:0, 30 fps (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc56.57.100 libx265
       Stream #0:1(und): Audio: aac, 0 channels, 128 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         encoder         : Lavc56.57.100 libvo_aacenc
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
     Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
    Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

    MediaInfo :

    General
    Complete name                            : E:\4K\2ndRound\Xman-4K_50sec_3840x2160.mp4.mp4
    Format                                   : MPEG-4
    Format profile                           : Base Media
    Codec ID                                 : isom
    File size                                : 66.0 MiB
    Duration                                 : 50s 6ms
    Overall bit rate                         : 11.1 Mbps
    Movie name                               : X-MEN__DAYS_OF_FUTURE_PAST.Title800
    Writing application                      : Lavf56.40.101

    Video
    ID                                       : 1
    Format                                   : AVC
    Format/Info                              : Advanced Video Codec
    Format profile                           : High@L5.1
    Format settings, CABAC                   : Yes
    Format settings, ReFrames                : 4 frames
    Codec ID                                 : avc1
    Codec ID/Info                            : Advanced Video Coding
    Duration                                 : 47s 567ms
    Bit rate                                 : 11.5 Mbps
    Width                                    : 3 840 pixels
    Height                                   : 2 160 pixels
    Display aspect ratio                     : 16:9
    Frame rate mode                          : Constant
    Frame rate                               : 30.000 fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Bits/(Pixel*Frame)                       : 0.046
    Stream size                              : 65.2 MiB (99%)

    Audio
    ID                                       : 2
    Format                                   : AAC
    Format/Info                              : Advanced Audio Codec
    Format profile                           : LC
    Codec ID                                 : 40
    Duration                                 : 50s 6ms
    Bit rate mode                            : Constant
    Bit rate                                 : 128 Kbps
    Channel(s)                               : 2 channels
    Channel positions                        : Front: L R
    Sampling rate                            : 48.0 KHz
    Compression mode                         : Lossy
    Stream size                              : 781 KiB (1%)

    Menu #1
    ID                                       : 3
    Codec ID                                 : text
    Duration                                 : 50s 0ms
    Language                                 : English

    Menu #2
    00:00:00.000                             : (26)01:17:27:726

  • seeking with av_seek_frame returns invalid data

    27 juin 2016, par mtadmk

    Based on dranger tutorial I’m trying to implement seeking in video file. Problem is with seeking to beginning milliseconds - it always returns 0 when seeking backward, or some place in file (based on file format).

    I.e. with this video file and seeking forward to 500 pts there is always 6163 pts returned. Seeking backward to 500 is always returning 0. I have no idea why.

    Code to do this :

    import java.util.Arrays;
    import java.util.List;
    import org.bytedeco.javacpp.BytePointer;
    import org.bytedeco.javacpp.DoublePointer;
    import org.bytedeco.javacpp.PointerPointer;
    import org.bytedeco.javacpp.avcodec;
    import org.bytedeco.javacpp.avformat;
    import org.bytedeco.javacpp.avutil;
    import org.bytedeco.javacpp.swscale;

    import static org.bytedeco.javacpp.avcodec.av_free_packet;
    import static org.bytedeco.javacpp.avcodec.avcodec_close;
    import static org.bytedeco.javacpp.avcodec.avcodec_decode_video2;
    import static org.bytedeco.javacpp.avcodec.avcodec_find_decoder;
    import static org.bytedeco.javacpp.avcodec.avcodec_flush_buffers;
    import static org.bytedeco.javacpp.avcodec.avcodec_open2;
    import static org.bytedeco.javacpp.avcodec.avpicture_fill;
    import static org.bytedeco.javacpp.avcodec.avpicture_get_size;
    import static org.bytedeco.javacpp.avformat.AVSEEK_FLAG_BACKWARD;
    import static org.bytedeco.javacpp.avformat.av_dump_format;
    import static org.bytedeco.javacpp.avformat.av_read_frame;
    import static org.bytedeco.javacpp.avformat.av_register_all;
    import static org.bytedeco.javacpp.avformat.av_seek_frame;
    import static org.bytedeco.javacpp.avformat.avformat_close_input;
    import static org.bytedeco.javacpp.avformat.avformat_find_stream_info;
    import static org.bytedeco.javacpp.avformat.avformat_open_input;
    import static org.bytedeco.javacpp.avutil.AVMEDIA_TYPE_VIDEO;
    import static org.bytedeco.javacpp.avutil.AV_PIX_FMT_RGB24;
    import static org.bytedeco.javacpp.avutil.AV_TIME_BASE;
    import static org.bytedeco.javacpp.avutil.av_frame_alloc;
    import static org.bytedeco.javacpp.avutil.av_frame_get_best_effort_timestamp;
    import static org.bytedeco.javacpp.avutil.av_free;
    import static org.bytedeco.javacpp.avutil.av_make_q;
    import static org.bytedeco.javacpp.avutil.av_malloc;
    import static org.bytedeco.javacpp.avutil.av_q2d;
    import static org.bytedeco.javacpp.avutil.av_rescale_q;
    import static org.bytedeco.javacpp.swscale.SWS_BILINEAR;
    import static org.bytedeco.javacpp.swscale.sws_getContext;
    import static org.bytedeco.javacpp.swscale.sws_scale;

    public class SeekTest1 {
       private avformat.AVFormatContext videoFile;
       private final avcodec.AVPacket framePacket = new avcodec.AVPacket();
       private avcodec.AVCodecContext videoCodec;
       private avutil.AVFrame yuvFrame;
       private swscale.SwsContext scalingContext;
       private avutil.AVFrame rgbFrame;
       private int streamId;
       private long lastTime;

       public static void main(String[] args) {
           if (args.length > 0) {
               new SeekTest1().start(args[0]);
           } else {
               new SeekTest1().start("/path/to/file");
           }

       }

       private void start(String path) {
           init(path);
           //test for forward
    //        List<integer> seekPos = Arrays.asList(0, 100, 0, 200, 0, 300, 0, 400, 0, 500, 0, 600, 0, 700);
           //test for backward
           List<integer> seekPos = Arrays.asList(10000, 8000, 10000, 7000, 10000, 6000, 10000, 4000, 10000, 2000, 10000, 1000, 10000, 200);
           seekPos.forEach(seekPosition -> {
               readFrame();
               seek(seekPosition);
           });
           readFrame();
           cleanUp();
       }

       long seek(long seekPosition) {
           final avutil.AVRational timeBase = fetchTimeBase();
           long timeInBaseUnit = fetchTimeInBaseUnit(seekPosition, timeBase);

           //changing flag to AVSEEK_FLAG_ANY does not change behavior
           int flag = 0;
           if (timeInBaseUnit &lt; lastTime) {
               flag = AVSEEK_FLAG_BACKWARD;
               System.out.println("seeking backward to " + timeInBaseUnit);
           } else {
               System.out.println("seeking forward to " + timeInBaseUnit);
           }
           avcodec_flush_buffers(videoCodec);
           av_seek_frame(videoFile, streamId, timeInBaseUnit, flag);
           return timeInBaseUnit;
       }

       private long fetchTimeInBaseUnit(long seekPositionMillis, avutil.AVRational timeBase) {
           return av_rescale_q((long) (seekPositionMillis / 1000.0 * AV_TIME_BASE), av_make_q(1, AV_TIME_BASE), timeBase);
       }

       private void readFrame() {
           while (av_read_frame(videoFile, framePacket) >= 0) {
               if (framePacket.stream_index() == streamId) {
                   // Decode video frame
                   final int[] frameFinished = new int[1];
                   avcodec_decode_video2(this.videoCodec, yuvFrame, frameFinished, framePacket);

                   if (frameFinished[0] != 0) {
                       av_free_packet(framePacket);
                       long millis = produceFinishedFrame();
                       System.out.println("produced time " + millis);
                       break;
                   }
               }
               av_free_packet(framePacket);
           }
       }

       private long produceFinishedFrame() {
           sws_scale(scalingContext, yuvFrame.data(), yuvFrame.linesize(), 0,
               videoCodec.height(), rgbFrame.data(), rgbFrame.linesize());
           final long pts = av_frame_get_best_effort_timestamp(yuvFrame);
           final double timeBase = av_q2d(fetchTimeBase());
           final long foundMillis = (long) (pts * 1000 * timeBase);
           lastTime = foundMillis;
           return foundMillis;
       }

       private avutil.AVRational fetchTimeBase() {
           return videoFile.streams(streamId).time_base();
       }

       private void init(String videoPath) {
           final avformat.AVFormatContext videoFile = new avformat.AVFormatContext(null);

           av_register_all();
           if (avformat_open_input(videoFile, videoPath, null, null) != 0) throw new RuntimeException("unable to open");
           if (avformat_find_stream_info(videoFile, (PointerPointer) null) &lt; 0) throw new RuntimeException("Couldn't find stream information");

           av_dump_format(videoFile, 0, videoPath, 0);

           final int streamId = findFirstVideoStream(videoFile);

           final avcodec.AVCodecContext codec = videoFile.streams(streamId).codec();

           final avcodec.AVCodec pCodec = avcodec_find_decoder(codec.codec_id());
           if (pCodec == null) throw new RuntimeException("Unsupported codec");

           if (avcodec_open2(codec, pCodec, (avutil.AVDictionary) null) &lt; 0) throw new RuntimeException("Could not open codec");

           final avutil.AVFrame yuvFrame = av_frame_alloc();

           final avutil.AVFrame rgbFrame = av_frame_alloc();
           if (rgbFrame == null) throw new RuntimeException("Can't allocate avframe");

           final int numBytes = avpicture_get_size(AV_PIX_FMT_RGB24, codec.width(), codec.height());
           final BytePointer frameBuffer = new BytePointer(av_malloc(numBytes));

           final swscale.SwsContext swsContext = sws_getContext(codec.width(), codec.height(), codec.pix_fmt(), codec.width(), codec.height(),
               AV_PIX_FMT_RGB24, SWS_BILINEAR, null, null, (DoublePointer) null);

           avpicture_fill(new avcodec.AVPicture(rgbFrame), frameBuffer, AV_PIX_FMT_RGB24, codec.width(), codec.height());

           this.videoFile = videoFile;
           this.videoCodec = codec;
           this.yuvFrame = yuvFrame;
           this.scalingContext = swsContext;
           this.rgbFrame = rgbFrame;
           this.streamId = streamId;
       }

       private static int findFirstVideoStream(avformat.AVFormatContext videoFile) {
           int videoStream = -1;
           for (int i = 0; i &lt; videoFile.nb_streams(); i++) {
               if (videoFile.streams(i).codec().codec_type() == AVMEDIA_TYPE_VIDEO) {
                   videoStream = i;
                   break;
               }
           }
           if (videoStream == -1) throw new RuntimeException("Didn't find video stream");
           return videoStream;
       }

       private void cleanUp() {
           av_free(this.rgbFrame);
           av_free(yuvFrame);
           avcodec_close(videoCodec);
           avformat_close_input(videoFile);
       }
    }
    </integer></integer>

    As input arg should be provided file from above.

  • reading video mpegts stream from stdin using libavformat libavcodec

    1er février 2012, par D Starkweather

    I'm trying to read video frames from stdin using ffmpeg's libav* lib collection. Simply passing "pipe:0" or "pipe :" as the filename to avformat_open_input_file() in my program does not do the trick. (e.g. cat /dev/video0 | ./myprogram OR ./myprogram < /dev/video0 ; it also fails using file.avi in place of /dev/video0).

    Peeking into ffmpeg.c, I find the following bit of code using tcsetattr() to set the termios :

    struct termios tty;

    if (tcgetattr (0, &amp;tty) == 0) {
    oldtty = tty;
    restore_tty = 1;
    atexit(term_exit);

    tty.c_iflag &amp;= ~(IGNBRK|BRKINT|PARMRK|ISTRIP
                         |INLCR|IGNCR|ICRNL|IXON);
    tty.c_oflag |= OPOST;
    tty.c_lflag &amp;= ~(ECHO|ECHONL|ICANON|IEXTEN);
    tty.c_cflag &amp;= ~(CSIZE|PARENB);
    tty.c_cflag |= CS8;
    tty.c_cc[VMIN] = 1;
    tty.c_cc[VTIME] = 0;

    tcsetattr (0, TCSANOW, &amp;tty);
    }
    signal(SIGQUIT, sigterm_handler); /* Quit (POSIX).  */
    }

    avformat_network_deinit();

    signal(SIGINT , sigterm_handler); /* Interrupt (ANSI).    */
    signal(SIGTERM, sigterm_handler); /* Termination (ANSI).  */
    signal(SIGXCPU, sigterm_handler);

    However, when I try this, it appears to have no effect. What settings do I need in the termios struct to continuously read video frames in ?

    Currently, all i am able to do is call av_read_frames a few times (return code 0) before it usually either segfaults or hangs waiting. The buffer usually contains just a blank screen (all black). With any luck, the video buffer will contain the first video frame it comes across, but does not update to the later frames.

    (I'm running this on Debian 6.0) Here's my version of ffmpeg :

    ffmpeg version N-36936-g4cf81d9 Copyright (c) 2000-2012 the FFmpeg
    developers built on Jan 19 2012 20:51:47 with gcc 4.4.5
    configuration : —enable-shared —enable-gray —enable-hardcoded-tables
    —enable-runtime-cpudetect —enable-libmp3lame —enable-libopenjpeg —enable-librtmp —enable-libtheora —enable-libvorbis —enable-libx264 —enable-libxvid —enable-zlib —enable-gpl libavutil 51. 34.101 / 51. 34.101 libavcodec 53. 57.100 /
    53. 57.100 libavformat 53. 30.100 / 53. 30.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 59.101 / 2. 59.101 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 6.100 /
    0. 6.100 libpostproc 52. 0.100 / 52. 0.100 Hyper fast Audio and Video encoder usage : ffmpeg [options] [[infile options] -i
    infile].

    Thank you very much for any help helpful tips. It is much appreciated.

    D. Grant Starkweather