Newest 'ffmpeg' Questions - Stack Overflow

http://stackoverflow.com/questions/tagged/ffmpeg

Les articles publiés sur le site

  • Extract motion vectors from h264 using hardware codec [closed]

    9 juin, par adore

    I am writing program to extract motion vectors from stream (videofile or webcam). While i am using software decoder everything seems ok, but when i trying to change decoder from h264 to h264_rkmpp, then and error, that appears in console:

    RgaBlit(1465) RGA_BLIT fail: Invalid argument 
    RgaBlit(1466) RGA_BLIT fail: Invalid argument
    handl-fd-vir-phy-hnd-format[0, 17, (nil), (nil), 0, 0]
    rect[0, 0, 640, 480, 640, 480, 2560, 0]
    f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]
    handl-fd-vir-phy-hnd-format[0, 0, 0x9f70c30, (nil), 0, 0]
    rect[0, 0, 640, 480, 640, 512, 2816, 0]
    f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]
    This output the user parameters when rga call blit fail
    

    I tried to ask chatgpt is there a way to extract motion vectors from h264 stream using hardware decoder h264_rkmpp, and he said that there isn't a way you can do it, if you want to get mvs, then you need to switch decoder back to software h264. So i googled it and didn't found accurate answer on this topic. So i am asking here. Is there a way to get motion vectors (or side data) from h264 stream using hardware decoder like h264_rkmpp? (ffmpeg)

  • FFmpeg Android Errors

    8 juin, par axjp

    Ok so im making a kotlin android app and for file conversion from 3gp to wav i added the android ffmpeg library with implementation 'com.arthenica:mobile-ffmpeg-full:4.4' then i added this code to convert the files FFmpeg.execute("-i" + f2 +"/storage/emulated/0/Android/data/com.icompilecodewithnowarnings.ffmpegthing/files/Documents/recording.wav") for further context f2 is /storage/emulated/0/Android/data/com.icompilecodewithnowarnings.ffmpegthing/files/Documents/recording.3gp

    The error log is to large to simply just fit here but heres some of it

    Execution failed for task ':app:checkDebugAarMetadata'.
    > Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
       > Could not find com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.3.2.
         Searched in the following locations:
           - https://dl.google.com/dl/android/maven2/com/github/hiteshsondhi88/libffmpeg/FFmpegAndroid/0.3.2/FFmpegAndroid-0.3.2.pom
           - https://repo.maven.apache.org/maven2/com/github/hiteshsondhi88/libffmpeg/FFmpegAndroid/0.3.2/FFmpegAndroid-0.3.2.pom
         Required by:
             project :app
    
    Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.github.hiteshsondhi88.libffmpeg:FFmpegAndroid:0.3.2.
    

    I tried to compile however the compiler immediatley rejected my app and refused to compile. I would have expected it to have immidiatley compiled into a apk.

    EDIT:

    Here is my build.gradle file

    plugins {
        id 'com.android.application'
        id 'org.jetbrains.kotlin.android'
    }
    
    android {
        namespace 'com.icompilecodewithnowarnings.ffmpegthing'
        compileSdk 33
    
        defaultConfig {
            applicationId "com.icompilecodewithnowarnings.ffmpegthing"
            minSdk 26
            targetSdk 33
            versionCode 1
            versionName "1.0"
    
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }
    
    dependencies {
    
        implementation 'androidx.core:core-ktx:1.8.0'
        implementation 'androidx.appcompat:appcompat:1.4.1'
        implementation 'com.google.android.material:material:1.5.0'
        implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
        implementation 'com.arthenica:mobile-ffmpeg-full:4.4'
        implementation files('src/main/java/musicg-1.4.2.0.jar')
        testImplementation 'junit:junit:4.13.2'
        androidTestImplementation 'androidx.test.ext:junit:1.1.3'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    }
    
  • FFmpeg function avformat_open_input for USB video device throws exception : No such file or directory

    8 juin, par ffvideoner

    Windows & C# & FFmpeg.AutoGen

    I used the ffmpeg-function (from library FFmpeg.AutoGen) to show video from rtsp-stream:

    ffmpeg.avformat_open_input(&pFormatContext, "rtsp://127.0.0.1:8554/abc", iformat, null);
    

    It works right.

    Now I want to use this function for USB video device.

    FFmpeg outputs this device name:

    ffmpeg -list_devices true -f dshow -i dummy
    
    [dshow @ 0000000000163000] "GENERAL WEBCAM" (video)
    

    This is how I'm trying to get the video:

    string deviceName = "GENERAL WEBCAM";
    

    or

    string deviceName = "video=GENERAL WEBCAM";
    
    ffmpeg.avformat_open_input(&pFormatContext, deviceName, ffmpeg.av_find_input_format("dshow"), null);
    

    For both variants of device names, I get an error:

    No such file or directory.
    

    But here it works:

    ffmpeg -video_size 1280x720 -framerate 30 -f dshow -i video="GENERAL WEBCAM":audio="Microphone (3- GENERAL WEBCAM)" -c:v libx264 -crf 30 -preset ultrafast ffmpegvideo.mp4
    

    Why doesn't avformat_open_input work with video device name?

  • How to stream from camera to browser using ffmpeg [closed]

    7 juin, par Gabriel Furstenheim

    FFMpeg just merged support for WebRTC.

    If I understand correctly, this should allow to stream directly from ffmpeg to a website without the use of a server.

    How does this work?

    ffmpeg -f dshow -i video=MyCamera ???
    

    I guess something similar to

    I'm guessing something like

    ffmpeg -f dshow -i video=MyCamera -f webrtc udp://localhost:6666
    

    Also, how would the website look like?

    For simplicity, assume that everything happens in localhost

  • FFmpeg/DASH : duration or timestamp out of range for mov/mp4 format [closed]

    7 juin, par mike

    I'm trying to convert a aac stream to dash. The issue is that I get a lot of errors as below(though it seems to segment it into multiple files but I get errors on the player too). The question is why do I get these errors and how can I fix it? If I simply convert "copy" it into to a single mp4 file it works without error.

        ffmpeg -i  "a.mkv" -y -map  0:1 -c:0 copy -min_seg_duration 1000000 
    -use_timeline 1 -use_template 1 -init_seg_name init.mp4s 
    -media_seg_name  "\$Number\$.mp4s" -adaptation_sets "id=1,streams=0"
    -remove_at_exit 0  -f dash -dash 1 
    "out/stream.mpd" -loglevel error 
    

    Output

    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40475608 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40764376 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 40860664 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41149432 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41390056 is out of range for mov/mp4 format
    [mp4 @ 0x7fbb70819600] Application provided duration: -32 / timestamp: 41823208 is out of range for mov/mp4 format
    

    Copy to a single MP4 works just fine ffmpeg -i "a.mkv" -y -map 0:1 -c:0 copy -f mp4 -dash 1 "out/out.mp4" -loglevel error

    Probe

    ffprobe a.mkv
    ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers
      built with Apple LLVM version 9.0.0 (clang-900.0.37)
      configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
      libavutil      55. 78.100 / 55. 78.100
      libavcodec     57.107.100 / 57.107.100
      libavformat    57. 83.100 / 57. 83.100
      libavdevice    57. 10.100 / 57. 10.100
      libavfilter     6.107.100 /  6.107.100
      libavresample   3.  7.  0 /  3.  7.  0
      libswscale      4.  8.100 /  4.  8.100
      libswresample   2.  9.100 /  2.  9.100
      libpostproc    54.  7.100 / 54.  7.100
    Input #0, matroska,webm, from 'a.mkv':
      Metadata:
        encoder         : libebml v1.3.1 + libmatroska v1.4.2
        creation_time   : 2017-03-11T02:56:50.000000Z
      Duration: 02:12:52.39, start: 0.000000, bitrate: 740 kb/s
        Chapter #0:0: start 0.000000, end 520.270000
        Metadata:
          title           : 00:00:00.000
        Chapter #0:1: start 520.270000, end 1135.718000
        Metadata:
          title           : 00:08:40.270
        Chapter #0:2: start 1135.718000, end 1703.660000
        Metadata:
          title           : 00:18:55.718
        Chapter #0:3: start 1703.660000, end 2314.187000
        Metadata:
          title           : 00:28:23.660
        Chapter #0:4: start 2314.187000, end 2888.594000
        Metadata:
          title           : 00:38:34.187
        Chapter #0:5: start 2888.594000, end 3499.246000
        Metadata:
          title           : 00:48:08.594
        Chapter #0:6: start 3499.246000, end 4154.692000
        Metadata:
          title           : 00:58:19.246
        Chapter #0:7: start 4154.692000, end 4646.392000
        Metadata:
          title           : 01:09:14.692
        Chapter #0:8: start 4646.392000, end 5373.660000
        Metadata:
          title           : 01:17:26.392
        Chapter #0:9: start 5373.660000, end 5882.085000
        Metadata:
          title           : 01:29:33.660
        Chapter #0:10: start 5882.085000, end 6627.871000
        Metadata:
          title           : 01:38:02.085
        Chapter #0:11: start 6627.871000, end 7144.471000
        Metadata:
          title           : 01:50:27.871
        Chapter #0:12: start 7144.471000, end 7451.944000
        Metadata:
          title           : 01:59:04.471
        Chapter #0:13: start 7451.944000, end 7972.394000
        Metadata:
          title           : 02:04:11.944
        Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 720x300 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
        Metadata:
          title           : X264
          BPS             : 623765
          BPS-eng         : 623765
          DURATION        : 02:12:52.311000000
          DURATION-eng    : 02:12:52.311000000
          NUMBER_OF_FRAMES: 191144
          NUMBER_OF_FRAMES-eng: 191144
          NUMBER_OF_BYTES : 621606403
          NUMBER_OF_BYTES-eng: 621606403
          _STATISTICS_WRITING_APP: mkvmerge v8.3.0 ('Over the Horizon') 64bit
          _STATISTICS_WRITING_APP-eng: mkvmerge v8.3.0 ('Over the Horizon') 64bit
          _STATISTICS_WRITING_DATE_UTC: 2017-03-11 02:56:50
          _STATISTICS_WRITING_DATE_UTC-eng: 2017-03-11 02:56:50
          _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
          _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
        Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
        Metadata:
          BPS             : 114797
          BPS-eng         : 114797
          DURATION        : 02:12:52.394000000
          DURATION-eng    : 02:12:52.394000000
          NUMBER_OF_FRAMES: 373706
          NUMBER_OF_FRAMES-eng: 373706
          NUMBER_OF_BYTES : 114401387
          NUMBER_OF_BYTES-eng: 114401387
          _STATISTICS_WRITING_APP: mkvmerge v8.3.0 ('Over the Horizon') 64bit
          _STATISTICS_WRITING_APP-eng: mkvmerge v8.3.0 ('Over the Horizon') 64bit
          _STATISTICS_WRITING_DATE_UTC: 2017-03-11 02:56:50
          _STATISTICS_WRITING_DATE_UTC-eng: 2017-03-11 02:56:50
          _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
          _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    

    Shaka debug

    Assertion failed: This should be an update of the last segment in a period
    shaka.media.SegmentIndex.merge @ segment_index.js:153
    shaka.dash.SegmentTemplate.createStream @ segment_template.js:82
    shaka.dash.DashParser.parseRepresentation_ @ dash_parser.js:1080
    shaka.dash.DashParser.parseAdaptationSet_ @ dash_parser.js:978
    shaka.dash.DashParser.parsePeriod_ @ dash_parser.js:722
    shaka.dash.DashParser.parsePeriods_ @ dash_parser.js:626
    shaka.dash.DashParser.processManifest_ @ dash_parser.js:520
    (anonymous) @ dash_parser.js:431
    Promise resolved (async)
    shaka.dash.DashParser.parseManifest_ @ dash_parser.js:430
    (anonymous) @ dash_parser.js:397
    Promise resolved (async)
    shaka.dash.DashParser.requestManifest_ @ dash_parser.js:390
    shaka.dash.DashParser.onUpdate_ @ dash_parser.js:1161
    setTimeout (async)
    shaka.dash.DashParser.setUpdateTimer_ @ dash_parser.js:1209
    (anonymous) @ dash_parser.js:331
    Promise resolved (async)
    shaka.dash.DashParser.start @ dash_parser.js:329
    (anonymous) @ player.js:555
    Promise resolved (async)
    shaka.util.CancelableChain.then @ cancelable_chain.js:72
    shaka.Player.load @ player.js:499
    initPlayer @ ?x=149&y=88&q=http%3A%2F%2Flocalhost%3A8080%2Fmeta%2F%3FbucketID%3D%2FVolumes%2FTV%2FFa%26channelID%3D%2FVolumes%2FTV%26containerID%3D%2FUsers%2F%2Fbrev%%2FL1ZvbHVtZXMvVFYvRmFudGFzdGljLkJlYXN0cy5hbmQuV2hlcmUudG8uRmluZC5UaGVtLjIwMTYuQkRSaXAueDI2NC1TUEFSS1MvYS5ta3Y%2F97M4TS6IqnQ.mpd:392
    463segment_index.js:145 Refusing to rewrite original references on update!
    shaka.media.SegmentIndex.merge @ segment_index.js:145
    shaka.dash.SegmentTemplate.createStream @ segment_template.js:82
    shaka.dash.DashParser.parseRepresentation_ @ dash_parser.js:1080
    shaka.dash.DashParser.parseAdaptationSet_ @ dash_parser.js:978
    shaka.dash.DashParser.parsePeriod_ @ dash_parser.js:722
    shaka.dash.DashParser.parsePeriods_ @ dash_parser.js:626
    shaka.dash.DashParser.processManifest_ @ dash_parser.js:520
    (anonymous) @ dash_parser.js:431
    Promise resolved (async)
    shaka.dash.DashParser.parseManifest_ @ dash_parser.js:430
    (anonymous) @ dash_parser.js:397
    Promise resolved (async)
    shaka.dash.DashParser.requestManifest_ @ dash_parser.js:390
    shaka.dash.DashParser.onUpdate_ @ dash_parser.js:1161
    setTimeout (async)
    shaka.dash.DashParser.setUpdateTimer_ @ dash_parser.js:1209
    (anonymous) @ dash_parser.js:331
    Promise resolved (async)
    shaka.dash.DashParser.start @ dash_parser.js:329
    (anonymous) @ player.js:555
    Promise resolved (async)
    shaka.util.CancelableChain.then @ cancelable_chain.js:72
    shaka.Player.load @ player.js:499
    initPlayer @ ?x=149&y=88&q=http%3A%2F%2Flocalhost%3A8080%2Fmeta%2F%3FbucketID%3D%2FVolumes%2FTV%2FFa%26channelID%3D%2FVolumes%2FTV%26containerID%3D%2FUsers%2F%2Fbrev%%2FL1ZvbHVtZXMvVFYvRmFudGFzdGljLkJlYXN0cy5hbmQuV2hlcmUudG8uRmluZC5UaGVtLjIwMTYuQkRSaXAueDI2NC1TUEFSS1MvYS5ta3Y%2F97M4TS6IqnQ.mpd:392