lu-zero / bmdtools

Basic capture and play programs for Blackmagic Design Decklink
Boost Software License 1.0
198 stars 74 forks source link

bmdplay: Would it be possible to use streams without audio? #94

Closed calanor closed 6 years ago

calanor commented 6 years ago

I need to output to decklink some streams without audio but bmdplay closes with a message "No audio stream found - bmdplay will close now."

Would it be possible to use streams without audio making some modification in bmdplay.cpp? If you give me an idea, I could start working on it.

I do not know if another option would be to add some parameters to avconv so that it would send audio with silence instead of just the video stream.

Thanks for your great work.

lu-zero commented 6 years ago

Should be simple to disable the audio part.

On Feb 10, 2018 23:42, "calanor" notifications@github.com wrote:

I need to output to decklink some streams without audio like security cams, but bmdplay closes with a message "No audio stream found - bmdplay will close now."

Would it be possible to use streams without audio making some modification in bmdplay.cpp? If you give me an idea, I could start working on it.

I do not know if another option would be to add some parameters to avconv so that it would send audio with silence instead of just the video stream.

Thanks for your great work.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/lu-zero/bmdtools/issues/94, or mute the thread https://github.com/notifications/unsubscribe-auth/AAOlpOKPnCeIGu8gKrZq2cy_26BZiph-ks5tThtUgaJpZM4SBHQF .

calanor commented 6 years ago

I proved to disable audio clossing the audio parts with a if( audio.st ) but finally the video part also fails. For now, I use an avconv audio filter to add audio silence to nut stream.

lad-admin commented 6 years ago

@calanor @lu-zero Can you share a solution to a play video file without audio ?

calanor commented 6 years ago

Add silence to input source:

avconv -vsync 1 -f lavfi -i aevalsrc=0 -i \<source> -c:v rawvideo -pix_fmt uyvy422 -c:a pcm_s16le -ar 48000 -f nut -f_strict experimental -syncpoints none - | ./bmdplay -f pipe:0

lad-admin commented 6 years ago

Hi calanor, Thank you for your suggestion, when I execute is this is the error I get. Unknown input format: 'lavfi' Segmentation fault (core dumped)

calanor commented 6 years ago

It seems that libav don't have aevalsrc audio filter. Use ffmpeg instead avconv.

Tested without errors with ffmpeg .

lu-zero commented 6 years ago

You do not need to use any filter to have a silent audio though.

lad-admin commented 6 years ago

@calanor Hey thank you very much it solved the problem.

@lu-zero When ever I play a video file without audio I get no audio found and bmdplay will stop. After @calanor solution I was able to solve that.

lu-zero commented 6 years ago

The common way to add an audio track is to just take /dev/zero as audio input. I agree that's sub-optimal.