Video not being played

Hi I am trying to initiate an outbound video to a user agent. Video is in .3gp extension and h263 codec format.

pjsip.conf

[10001]
type=endpoint
context=from-internal
allow=all
videosupport=yes
transport=transport-udp
auth=auth10001
aors=10001

[auth10001]
type=auth
auth_type=userpass
password=password
username=10001

[10001]
type=aor
max_contacts=10

in call file

Channel: PJSIP/10001@asterisk2
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Application: Playback
Data:/var/lib/asterisk/sounds/nxlaudio/VID_123
Context: from-outbound
Extension: 10

Error on cosole

– Attempting call on PJSIP/10001@asterisk2 for application Playback(/var/lib/asterisk/sounds/nxlaudio/VID_123) (Retry 1)
[Apr 13 13:39:49] WARNING[20804]: res_pjsip_sdp_rtp.c:1165 create_outgoing_sdp_stream: Unable to get rtp codec payload code for testlaw
[Apr 13 13:39:49] WARNING[20804]: res_pjsip_sdp_rtp.c:1165 create_outgoing_sdp_stream: Unable to get rtp codec payload code for silk
[Apr 13 13:39:49] WARNING[20804]: res_pjsip_sdp_rtp.c:1165 create_outgoing_sdp_stream: Unable to get rtp codec payload code for silk
[Apr 13 13:39:49] WARNING[20804]: res_pjsip_sdp_rtp.c:1165 create_outgoing_sdp_stream: Unable to get rtp codec payload code for silk
[Apr 13 13:39:49] WARNING[20804]: res_pjsip_sdp_rtp.c:1165 create_outgoing_sdp_stream: Unable to get rtp codec payload code for silk
– Called 10001@asterisk2
– PJSIP/asterisk2-00000001 is ringing
– PJSIP/asterisk2-00000001 answered
> Launching Playback(/var/lib/asterisk/sounds/nxlaudio/VID_123) on PJSIP/asterisk2-00000001
[Apr 13 13:39:52] WARNING[21035]: file.c:774 ast_openstream_full: File /var/lib/asterisk/sounds/nxlaudio/VID_123 does not exist in any format
[Apr 13 13:39:52] WARNING[21035]: file.c:1247 ast_streamfile: Unable to open /var/lib/asterisk/sounds/nxlaudio/VID_123 (format (jpeg|png|red|t140|g723|ulaw|alaw|gsm|g726|g726aal2|adpcm|slin|slin|slin|slin|slin|slin|slin|slin|slin|lpc10|g729|speex|speex|speex|ilbc|g722|siren7|siren14|g719|opus|h261|h263|h263p|h264|mpeg4|vp8)): No such file or directory
[Apr 13 13:39:52] WARNING[21035]: app_playback.c:494 playback_exec: Playback failed on PJSIP/asterisk2-00000001 for /var/lib/asterisk/sounds/nxlaudio/VID_123
[Apr 13 13:39:52] NOTICE[21034]: pbx_spool.c:426 attempt_thread: Call completed to PJSIP/10001@asterisk2

Please help

3gp is not a supported file format for playback or recording.

The video is formatted into h263 format though in .3gp extension. Should the extension also be .h263?

Yes, if it were .h263 it may work. I’m unaware if anything can create the raw files though.

Any other supportabe formats that we can create using converters?

I haven’t created any video files like that so I’m not sure what may be supported by converters.

I have tried a work around and tried getting a recording done in .h263 format using asterisk MixMonitor. However record too is failing with the following error written continously on console

Apr 13 15:22:25] WARNING[22526][C-00000008]: file.c:248 ast_writestream: Unable to translate to format h263, source format slin
[Apr 13 15:22:25] WARNING[22526][C-00000008]: translate.c:481 ast_translator_build_path: No translator path: (ending codec is not valid)

extensions.conf

exten => 77XX,1,Set(CallTime=${STRFTIME(${EPOCH},%C%y%m%d%H%M)})
same = n,Set(CALLFILENAME=${EXTEN}${CallTime}
${CALLERID(num)})
same = n,MixMonitor(${CALLFILENAME}.h263)

MixMonitor does not support recording/mixing video. It is strictly audio.

Tried using Record to record a video. That too is failing with the below error. Does PJSIP support video functionality?

– Executing [7777@from-internal:1] Set(“PJSIP/asterisk2-0000001c”, “CallTime=201704131539”) in new stack
– Executing [7777@from-internal:2] Set(“PJSIP/asterisk2-0000001c”, “CALLFILENAME=7777201704131539_10001”) in new stack
– Executing [7777@from-internal:3] Record(“PJSIP/asterisk2-0000001c”, “/root/srilalitha/7777201704131539_10001:h263”) in new stack
> 0xb5003668 – Probation passed - setting RTP source address to 192.168.0.196:14740
– <PJSIP/asterisk2-0000001c> Playing ‘beep.gsm’ (language ‘en’)
[Apr 13 15:39:35] WARNING[22803][C-0000000d]: translate.c:481 ast_translator_build_path: No translator path: (ending codec is not valid)
[Apr 13 15:39:35] WARNING[22803][C-0000000d]: file.c:248 ast_writestream: Unable to translate to format h263, source format ulaw
[Apr 13 15:39:35] WARNING[22803][C-0000000d]: app_record.c:394 record_exec: Problem writing frame

extensions.conf

exten => 77XX,1,Set(CallTime=${STRFTIME(${EPOCH},%C%y%m%d%H%M)})
same = n,Set(CALLFILENAME=${EXTEN}${CallTime}
${CALLERID(num)})
; same = n,MixMonitor(${CALLFILENAME}.h263)
; same = n,Dial(PJSIP/9885334824@asterisk2)
same = n,Record(/root/srilalitha/${CALLFILENAME}:h263)
; same = n,Dial(PJSIP/9885334824@asterisk2)
same = n,Wait(10)
same = n,Hangup()

I know there are people using it in a passthrough fashion, I don’t know if anyone is recording or playing it back. Video traditionally has not been a focus but this has changed in recent times, so that area may see improvement.

Hi, Asterisk video support is v. basic at present. It can only playback video it created using it’s own specific file format for the video file. In general you cannot use it to playback videos created by 3rd party tools.

What does work…
Configure Dialplan to Record (n.b. specify audio file format you want saved NOT the video format).
Configure endpoint for all audio formats + (say) h264 video format.
Invoke Asterisk Record() from an h264 video capable sip client (e.g. Jitsi) and which is configured to support audio + h264 video format.
Make a call to Asterisk Record() exten.
Asterisk will create the audio file and an accompanying video file with a .h264 file created in the same directory as the audio file.

Now make a call to Asterisk Playback() exten to play the files back (again specify the audio file format here). If the SIP client and Asterisk negotiate the same h264 video codec that was used to record the initial call then Asterisk will play back both audio+video streams.

Note: Asterisk does no video transcoding.

Note: I’m not sure if this still applies, but if the video plays back at the wrong speed it’s possibly a result of https://issues.asterisk.org/jira/browse/ASTERISK-26554.

1 Like

Thanks friends, I could now see video being played. But also playback at wrong speed.