Как добавить фоновую музыку при передаче изображений opencv в ffmpeg - python - PullRequest
0 голосов
/ 23 марта 2020

В принципе, я знаю, как транслировать Передать opencv в ffmpeg, используя python.
Но моя проблема в том, что я не могу добавить аудиофайл (BGM) для этого. Кто-нибудь знает, как сделать это с python?

мой python код:

import cv2 as cv
import subprocess as sp

# ffmpeg command

command = ['ffmpeg',
        #'-re', '-stream_loop', '-1', 
        #'-i', '/home/pi/scrpt/Blive/StarBucks_BGN.mp3',
        '-y',
        '-f', 'rawvideo',
        '-vcodec','rawvideo',
        '-pix_fmt', 'bgr24',
        '-s', "{}x{}".format(width, height),
        '-r', str(fps),
        '-i', '-',
        '-c:v', 'libx264',
        '-pix_fmt', 'yuv420p',
        '-preset', 'ultrafast',
        '-f', 'flv',
        rtmpUrl]

Я знаю, что могу добиться этого с помощью:

sudo raspivid -o - -t 0 -w 1280 -h 720 -fps 24 -b 1000000 | 
                ffmpeg  -re -stream_loop -1 -i  "/home/pi/scrpt/Blive/StarBucks_BGN.mp3" \
        -f h264 -i - -vcodec copy -r 30 -acodec aac -b:a 100k -preset ultrafast \
        -tune zerolatency -f flv "rtmp://"

Итак, я попытался добавить -re -stream_loop -1 -i "/home/pi/scrpt/Blive/StarBucks_BGN.mp3" в python трубу, но он вылетел с:

[libx264 @ 0x1952aa0] using cpu capabilities: ARMv6 NEON
[libx264 @ 0x1952aa0] profile Constrained Baseline, level 3.1
[libx264 @ 0x1952aa0] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
[flv @ 0x1951d00] FLV does not support sample rate 48000, choose from (44100, 22050, 11025)
[flv @ 0x1951d00] Audio codec mp3 not compatible with flv
Could not write header for output file #0 (incorrect codec parameters ?): Function not implementedStream mapping:
  Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (mp3 (native) -> mp3 (libmp3lame))
    Last message repeated 1 times
Traceback (most recent call last):
  File "With_BG.py", line 57, in <module>
    p.stdin.write(BG.tostring())
BrokenPipeError: [Errno 32] Broken pipe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...