Recherche avancée

Médias (0)

Mot : - Tags -/clipboard

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (42)

Sur d’autres sites (6899)

  • Codec not found while H.264 encoding using FFMPEG in iOS

    12 juin 2013, par Sukhpal Singh

    I am trying to encode video in h.264 format using FFMpeg in iOS. Actually I am receiving sample buffer from iPhone Camera and then converting it AVFrame and further from AVFrame to H.264 video. But while h.264 encoding if I use :

    codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);

    Then codec is found but if I use :

    codec = avcodec_find_encoder(CODEC_ID_H264);

    Then codec is nil means codec not found. Full code is as below :

    static void encode(AVFrame *picture)
    {
        AVCodec *codec;
        AVCodecContext *c= NULL;
        int i, out_size, size,  outbuf_size;
        uint8_t *outbuf, *picture_buf;

        printf("Video encoding\n");

        /* find the mpeg1 video encoder */

        //avcodec_init() ; // Also tried this but giving warning and not worked
        avcodec_register_all();

        codec = avcodec_find_encoder(CODEC_ID_H264);
        if (!codec) {
            fprintf(stderr, "codec not found\n");
            exit(1);
        }

        c= avcodec_alloc_context();
        picture= avcodec_alloc_frame();

        /* put sample parameters */
        c->bit_rate = 400000;
        /* resolution must be a multiple of two */
        c->width  = 352;
        c->height = 288;
        /* frames per second */
        c->time_base= (AVRational){1,25};
        c->gop_size = 10; /* emit one intra frame every ten frames */
        c->max_b_frames=1;
        c->pix_fmt = PIX_FMT_YUV420P;

        /* open it */
        if (avcodec_open(c, codec) < 0) {
            fprintf(stderr, "could not open codec\n");
            exit(1);
        }

            /* alloc image and output buffer */
        outbuf_size = 100000;
        outbuf = malloc(outbuf_size);
        size = c->width * c->height;
        picture_buf = malloc((size * 3) / 2); /* size for YUV 420 */

        out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);

        NSLog(@"NSdada===%@",[NSData dataWithBytes:(const void *)outbuf length:out_size]);

        free(picture_buf);
        free(outbuf);

        avcodec_close(c);
        av_free(c);
        av_free(picture);
        printf("\n");
    }
  • ffmpeg vaapi hardware acceleration with some videos not working

    15 juillet 2020, par Maisen1886

    I have a problem with transcoding various videos on my Synology NAS. Some videos work, some do not.

    


    ffmpeg command :

    


    sudo /volume1/@appstore/VideoStation/bin/ffmpeg -y -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i '/path/to/my/video/IMG_8647.MOV' -vf hwupload,scale_vaapi=w=640:h=-1:format=nv12 -c:v h264_vaapi -b:v 2M -movflags +faststart 'path/to/output4.mp4'


    


    After i enter the command above, i get following error output :

    


    ffmpeg version 3.3.7 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 4.9.3 (crosstool-NG 1.20.0) 20150311 (prerelease)
  configuration: --prefix=/usr/pkg --incdir='${prefix}/include/ffmpeg' --arch=i686 --target-os=linux --cross-prefix=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-version3 --enable-nonfree --enable-encoders --enable-pthreads --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffplay --disable-ffserver --disable-doc --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-decoder=amrnb --disable-encoder=zmbv --disable-encoder=dca --disable-decoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=eac3 --disable-encoder=truehd --disable-decoder=truehd --extra-cflags=-I/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/pkg/include --extra-ldflags=-L/usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/pkg/lib --cc=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc --enable-shared --disable-static --enable-yasm --enable-libx264 --enable-vaapi --enable-encoder=h264_vaapi --enable-encoder=libx264
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /var/packages/VideoStation/target/lib/libva/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/volume1/homes/maisen20/Drive/iPhone Medien Neu/2020/06/Videos/2020-06-28_19-25-54_IMG_8647.MOV':
  Metadata:
    major_brand     : qt  
    minor_version   : 0
    compatible_brands: qt  
    creation_time   : 2020-06-28T17:25:54.000000Z
    com.apple.quicktime.location.ISO6709: +47.1156+009.0640+430.715/
    com.apple.quicktime.make: Apple
    com.apple.quicktime.model: iPhone X
    com.apple.quicktime.software: 13.5.1
    com.apple.quicktime.creationdate: 2020-06-28T19:25:54+0200
  Duration: 00:00:25.10, start: 0.000000, bitrate: 50256 kb/s
    Stream #0:0(und): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709), 3840x2160, 50115 kb/s, 60.01 fps, 60 tbr, 600 tbn, 600 tbc (default)
    Metadata:
      rotate          : 90
      creation_time   : 2020-06-28T17:25:54.000000Z
      handler_name    : Core Media Data Handler
      encoder         : HEVC
    Side data:
      displaymatrix: rotation of -90.00 degrees
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2020-06-28T17:25:54.000000Z
      handler_name    : Core Media Data Handler
    Stream #0:2(und): Data: none (mebx / 0x7862656D), 26 kb/s (default)
    Metadata:
      creation_time   : 2020-06-28T17:25:54.000000Z
      handler_name    : Core Media Data Handler
    Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
    Metadata:
      creation_time   : 2020-06-28T17:25:54.000000Z
      handler_name    : Core Media Data Handler
Stream mapping:
  Stream #0:0 -> #0:0 (hevc (native) -> h264 (h264_vaapi))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
Impossible to convert between the formats supported by the filter 'graph 0 input from stream 0:0' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0


    


    Unfortunately I do not know that much about transcoding videos. Does anyone know what the problem here could be ?

    


    Without hardware support (without -hwaccel_output_format vaapi) it works.

    


    thanks a lot !

    


  • Encode iOS compatible h264 audio stream with FFMPEG

    11 octobre 2014, par beamformer

    I am using FFMPEG with Python to encode a low bit rate version of videos that I import. I would like the output to be playable on several devices, including Roku and iOS. This link states that Apple supports H264 High profile, level 4.1 and MP3 audio.

    ffmpeg -preset veryslow -y -profile:v high -level 4.0 -movflags +faststart -codec:a libmp3lame -qscale:a 2 -s 1280x720 out.mp4

    The resulting videos play fine in an HTML5 browser on a computer. However, on the iPhone the video appears but the audio stream does not play. Is there an issue with the mp3 settings ?

    From ffprobe :

    [STREAM]
    index=1
    codec_name=mp3
    codec_long_name=MP3 (MPEG audio layer 3)
    profile=unknown
    codec_type=audio
    codec_time_base=1/44100
    codec_tag_string=mp4a
    codec_tag=0x6134706d
    sample_fmt=s16p
    sample_rate=44100
    channels=1
    channel_layout=mono
    bits_per_sample=0
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/44100
    start_pts=-1105
    start_time=-0.025057
    duration_ts=2321489
    duration=52.641474
    bit_rate=94949
    max_bit_rate=N/A
    bits_per_raw_sample=N/A
    nb_frames=2016
    nb_read_frames=N/A
    nb_read_packets=N/A
    DISPOSITION:default=1
    DISPOSITION:dub=0
    DISPOSITION:original=0
    DISPOSITION:comment=0
    DISPOSITION:lyrics=0
    DISPOSITION:karaoke=0
    DISPOSITION:forced=0
    DISPOSITION:hearing_impaired=0
    DISPOSITION:visual_impaired=0
    DISPOSITION:clean_effects=0
    DISPOSITION:attached_pic=0
    TAG:language=und
    TAG:handler_name=SoundHandler
    [/STREAM]

    I tried using AAC, but did not get good results with the native FFMPEG encoder