Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (50)

Sur d’autres sites (8992)

  • How to raw TS packets off a file/url — Without decoding

    15 août 2019, par Znura

    New to ffmpeg and playing around that to understand better. I’m trying to use ffmpeg code base to get TS packets from a HLS Streaming server. I don’t need any decoding as I just have to store the TS packets to be processed later.

    First I built a minimal FFMPEG as outlined in https://zeranoe.com/forum/viewtopic.php?f=5&t=7426. No decoders and only hls and mpegts demuxers. Then using the following code to receive the frames. While inspecting it doesn’t seem to be MPEG-TS packets while looking into buffers thru GDB. Attaching the code here..

    Two Questions :

    1. Shouldn’t the av_recv_frame get me the TS packets ? However When I trace all the way to playlists (off HLSContext), the read_buffer there contains TS packets. IS there any example I could look into to get TS packets in this scenario without decoders ?

    2. If I get answer for (1), How to get the best stream off the HLS server ? when looking into ffplay, av_find_best_stream() sounds like the one to look into.. But again without needing to decode, is there a way to get best one according to the network condition ?

    Thanks..

    I dumped whatever I got off av_recv_frame() and stored in file. This file is not playable with VLC but Windows Movies & TV player could play the sound with missing frames..

    int main(int argc, char *argv[]) {
       AVFormatContext * ifmt_ctx = NULL;
       char *in_filename = NULL;
       int ret = 0;
       AVPacket pkt;
       if (argc != 2) { return 1; }
       in_filename = argv[1];
       av_register_all();

       if (!(ifmt_ctx = avformat_alloc_context())) { goto end; }
       if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) {
           fprintf(stderr, "Could not open input file '%s'", in_filename);
           goto end;
       }
       if ((ret = avformat_find_stream_info(ifmt_ctx, 0)) < 0) {
           fprintf(stderr, "Failed to retrieve input stream information");
           goto end;
       }

       av_dump_format(ifmt_ctx, 0, in_filename, 0);
       while (1) {
           ret = av_read_frame(ifmt_ctx, &pkt);
           if (ret < 0) break;
           av_free_packet(&pkt);
       }
       end: avformat_close_input(&ifmt_ctx); return 0;
    }
  • Anomalie #3380 : Un rédacteur peut attacher un document à un article qu’il n’a pas le droit de mod...

    8 juin 2015, par b b

    Pour info, cette modification a introduit un bug signalé dans #3452.

  • What are the correct conversion steps to generate a video from PDF with ffmpeg and mp4box

    25 juin 2020, par Michael Rall

    I need to convert a PDF-Document to a DASH-compatible stream. Every page of the PDF should be displayed for one second. Quality should be rather good, so that text and line graphics can still be read clearly. Additionally I want to be able to seek every page, so keyframes(?) should be (exactly) every second.

    


    Im using poppler-tools to extract the pdf-pages as png's -> works

    


    Im using ffmpeg to convert the single images to an x264 encoded mp4 video -> works (but maybe problematic)

    


    string.Format("-r 1 -i \"{0}.page_%d.png\" -r 24 -vcodec libx264 -pix_fmt yuv420p {0}.output.mp4", basePath)


    


    Im using MP4Box to convert that video to dash -> works (but needs improvement)

    


    string.Format("-dash 1000 -frag 1000 -rap -segment-name {1}_dash_$RepresentationID$_$Number$ -url-template {0}.output.mp4 -out \"{0}.{2}\"", basePath, tempDataId, STREAM_MANIFEST_FILE_POSTFIX)


    


    Now I have 2 Problems/Questions

    


      

    1. Are the settings for framerate, quality, outputformat correct for the goals I want to achieve
    2. 


    3. When displaying the resulting DASH-Stream in the Demo-Player from https://github.com/Dash-Industry-Forum/dash.js/wiki it plays the stream, but as soon as I try to seek the player starts loading forever. Setting the position to start and let it play again works. The network tab in my browser-debugger shows that the player tries to load the segments and gets them successfully.
    4. 


    


    I guess its a problem with keyframes, fragments or similar. Can somebody correct my conversion steps ?

    


    kind regards