android版本webrtc使用ffmpeg 解码h264编译报错

1, android studio使用ffmpeg解码h264编译报错:
 

third_party/ffmpeg/ffmpeg_internal/videodsp.o: in function `ff_prefetch_aarch64':
(.text+0x10): relocation truncated to fit: R_AARCH64_CONDBR19 against symbol `ff_prefetch_aarch64' defined in .text section in obj/third_party/ffmpeg/ffmpeg_internal/videodsp.o

2,查看相关代码



third_party/ffmpeg/libavcodec/aarch64/videodsp.S

#include "libavutil/aarch64/asm.S"

function ff_prefetch_aarch64, export=1
        subs            w2,  w2,  #2
        prfm            pldl1strm, [x0]
        prfm            pldl1strm, [x0,  x1]
        add             x0,  x0,  x1,  lsl #1
        b.gt            X(ff_prefetch_aarch64)
        ret
endfunc

3,原因:由于链接器如何将部分分配到地址空间造成的

4,修改以下文件

third_party/ffmpeg/libavcodec/aarch64/videodsp.S:

#include "libavutil/aarch64/asm.S"

function ff_prefetch_aarch64, export=1
        subs            w2,  w2,  #2
        prfm            pldl1strm, [x0]
        prfm            pldl1strm, [x0,  x1]
        add             x0,  x0,  x1,  lsl #1
        b            X(ff_prefetch_aarch64)
1:
        ret
endfunc

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用FFmpegWebRTC流推流到服务器,你可以按照以下步骤进行操作: 1. 设置WebRTC连接: 使用WebRTC API(如WebRTC RTCPeerConnection)建立一个与远程对等点的连接,获取视频和音频流。 2. 获取媒体流: 从WebRTC连接中获取视频和音频流。 ```javascript const videoStream = getVideoStreamFromWebRTC(); // 获取视频流 const audioStream = getAudioStreamFromWebRTC(); // 获取音频流 ``` 3. 将媒体流传递给FFmpeg: 将视频和音频流传递给FFmpeg,并设置推流的参数。 ```javascript const ffmpeg = FFmpeg.createFFmpeg({ log: true, corePath: '/path/to/ffmpeg-core.js', workerPath: '/path/to/ffmpeg-worker.js', dataPath: '/path/to/ffmpeg-core.wasm', }); await ffmpeg.load(); // 将视频和音频流传递给FFmpeg ffmpeg.FS('writeFile', 'input.mp4', videoStream); ffmpeg.FS('writeFile', 'input.wav', audioStream); // 设置推流的参数 const command = `-i input.mp4 -i input.wav -c:v copy -c:a aac -f flv rtmp://your-streaming-server-url`; await ffmpeg.run(command); ``` 4. 处理输出结果: 可以使用`ffmpeg.getOutput()`方法来获取FFmpeg命令的输出结果,或者使用`ffmpeg.save()`方法将输出结果保存到本地文件。 ```javascript const outputData = ffmpeg.getOutput(); // 或者 await ffmpeg.save('output.mp4'); ``` 请注意,上面的代码只是一个示例,你需要根据实际情况进行适当的修改,包括FFmpeg的路径、推流的URL和其他参数。此外,还需要确保你的服务器支持RTMP协议以接收推流数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值