我使用分段器将我的MPEG 2 Ts文件分割成一系列用于HTTP直播的媒体段
并且每个段的开始时间跟在前一段之后(例如:段的开始时间:00:00,00:10,00:20,00:30,......)
(在Ubuntu中)
问题是:
当我使用ffmpeg转码其中一个媒体片段(ex 800k bps到200k bps)
转码媒体段的开始时间将重置为0
例如:当我转码第三段时,
开始段的时间改变为:00:00,00:10,00:00,00:30,...
一旦播放转码媒体片段,它会导致我的播放器冻结
有相同的开始时间转码媒体文件的解决方案吗?
我想这是ffmpeg重置段的PTS(演示时间戳)
但我不知道如何解决它...
这是我的ffmpeg命令(转码为250k bps)
============================
ffmpeg -y -i sample-03.ts -f mpegts -acodec libfaac -ar 48000 -ab 64k -vcodec libx264 -b 250k -flags +loop -cmp +chroma \
-partitions +parti4x4+partp8x8+partb8x8 -subq 7 -trellis 0 -refs 0 -coder 0 -me_range 16 -keyint_min 25 \
-sc_threshold 40 -i_qfactor 0.71 -maxrate 250k -bufsize 250k -rc_eq 'blurCplx^(1-qComp)' -qcomp 0.6 \
-qmin 10 -qmax 51 -qdiff 4 -level 30 …Run Code Online (Sandbox Code Playgroud) 从Firebase网站上的文档:https://firebase.google.com/docs/cloud-messaging/downstream
当您的应用在后台时发送通知.在这种情况下,通知将传递到设备的系统托盘.用户单击通知默认情况下会打开应用启动器.
如果我的应用程序收到云消息并且我的应用程序处于后台时需要执行某些操作.
是否可以在自定义BroadcastReceiver或Service类中接收通知,而不是传送到设备的系统托盘?
是 用户点击通知时https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support中所述 设置" click_action " 的唯一方法,以便我的应用能够要知道有一条云消息到了吗?
更新:
正如tyczj所提到的,以下curl命令示例完成了这项工作:
curl --header "Authorization: key=$server_key" --header Content-Type:"application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\": \"/topics/friendly_engage\",\"data\": {\"score\":\"123\"}}"
Run Code Online (Sandbox Code Playgroud)
并且消息将出现在Service类中的callack"onMessageReceived"中,该类从FirebaseMessagingService扩展而来