Newest 'ffmpeg' Questions - Stack Overflow
Les articles publiés sur le site
-
Extract motion vectors from h264 using hardware codec [closed]
9 juin, par adoreI 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
toh264_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 axjpOk 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 filesFFmpeg.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 ffvideonerWindows & 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 FurstenheimFFMpeg 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 mikeI'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