I want to put a news marquee over an analog TV stream using c#, I can stream analog TV using DirectShow but I can't figure out how to mix it with rotating text, should I create a filter? or I have to use another technology than DirectShow?
News Marquee over analog TV stream - C#
1.3k views Asked by Santiago At
2
There are 2 answers
0
Dee Mon
On
Actually you don't have to write a filter to draw some text over your video. Just make a graph where uncompressed video goes through sample grabber (one of standard DirectShow filters), set up a callback for the sample grabber and you'll be able to modify the video data in your callback. Doing it in C# is very easy using DirectShow.NET but not optimal due to marshalling. You can first build such a graph in GraphEditPlus, then it will show you source code in C# or C++ of how to build this graph and use sample grabber.
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in DIRECTSHOW
- Finding and Using Camera found in “Imaging Devices” in VB.NET
- aforge.video.directshow. "GetDevicesOfCat" not working
- Using YUV2 or MPEG format does not work on directshow
- ISampleGrabberCB sampleCB() not getting called when using DirectShow
- Can't Add Filter to a FilterGraph running on another Process
- How does MediaFoundation set the brightness and other properties of UVC cameras
- How to send USB requests from windows application to a USB device
- How to set exposure for Still Image capture when using DirectShow API on Windows?
- Very often PyQt5 QMediaPlayer displays an error message when opening a media file
- How to implement antialiasing in DirectShow?
- H.264 encoder Filter for Directshow that controls bitrate and GOP Settings in Win32 CPP Project
- In VLC-Unity, why is the media player unable to play video feed from USB camera using DirectShow?
- This code to retrieve installed codecs finds different codecs depending on whether "Prefer 32-bit" is checked. Why?
- Unable to see the live Video in DirectShowLib
- Directshow Virtual Webcam video is greyscale on certain conference apps
Related Questions in MARQUEE
- How to set multiple lines of text into a HTML Marquee?
- Android TextView Marquee joggling
- Seamless infinite scrolling text marquee CSS/width issue
- I need to convert JQUERY code to Vanilla JS
- Marquee keeps glitching
- Android text view (weight and marquee) resetting when another view updates
- Problems using marquee with python-vlc
- CSS Marquee animation breaks in Safari when array of elements inside marquee-wrapper change
- How would I make a looping text marquee that is clipped to a path?
- Troubleshooting marquee banner with text resizing bug on mobile
- How to make a scrollbar in jQuery.Marquee plugin always fill the screen size?
- CSS Marquee Animation: how to fix this time/speed issue
- Marquee text not moving inside RecyclerView
- div become marquee when text overflow automatically
- Marquee in Prolog
Related Questions in TELEVISION
- Flutter Android Tv Focus Issue-First index not focusing using arrow it start from second index but when use tab in pc it focus on first element
- Web Os app development using angular isuue
- Unknown manufacturer type when controlling TV using IR LED
- Nullish coalescing assignment (??=) causing issue on TV browser. How to elegantly resolve this
- How exactly are DRM modes (or modelines) interpreted when interlaced?
- Navigation with Dpad events in flutter tv app
- DNS_PROBE_FINISHED_NXDOMAIN when accessing local website
- Android TV/Leanback: `GuidedStepSupportFragment` missing/incorrect padding
- Offer app-settings / -menu in Android TV app
- How to start Activity immediately?
- Android TV (Leanback) App: Toggle/switch for GuidedStepSupportFragment
- How to create and write to a virtual video device on Linux using C?
- How to create an Android custom MediaCas plugin?
- Television app rejected by google play store
- How to navigate google map in android tv app using remote d-pad?
Related Questions in ANALOG-DIGITAL-CONVERTER
- Recording composite video to an audio file
- Verilog Peak detection
- Is it possible to read in data from multiple pins of a microcontroller at the same time?
- stm32f4discovery A/D set up
- Frequency of the signals transmitted & modulation scheme (FSK, ASK)
- How to wire/connect multiple sensors to Arduino
- Getting a/d converter example program to work in a C++ windows program
- Analog data to digital data conversion in android for accelerometer?
- Unexplained Conversion from a binary/hex within code
- How can I compress cyclic data with minimal code?
- matlab to transform audio from analog to digital
- How to do analogRead() in AVR assembly language?
- Can I connect a heartbeat sensor to XBee?
- Why mixed signal output only changes at 1ns,2ns,3ns ...?
- Arduino Leonardo and Funduino Mega, frequency on analog read
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
DirectShow is the simplest way of doing this but it does have a bit of a learning curve, particularly coming from C#. The Wikipedia page gives you a basic overview of DirectShow.
DirectShow tools are available in the latest Windows SDK. Using C++ for DirectShow programming is more straightforward but you can use DirectShow fairly easily via COM interop or DirectShow.net (which I haven't tried yet). If using COM interop the following article is helpful:
http://blogs.msdn.com/b/ericgu/archive/2004/09/20/232027.aspx
You may be able to use the VMR overlay filter if the animation performance is smooth enough. See the following articles
http://www.codeproject.com/KB/audio-video/VideoPicture.aspx
http://www.codeproject.com/KB/audio-video/Ticker.aspx
http://msdn.microsoft.com/en-us/library/dd407344(v=vs.85).aspx
Alternatively you will need to write your own filter that renders the text on each frame adjusting its position in synch with the time stamps of the video frames. If you only need to do this inside your own application then the following approach might be easiest
http://www.sichbo.ca/Free_Code/100_C_Sharp_directshow_filters
Microsoft officially recommend that DirectShow filters should be created in C++ for performance reasons but overlaying scrolling text should be OK in C# as the bottleneck will be the APIs used to overlay the text if you program carefully.