В принципе, я знаю, как транслировать Передать 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