MPEG Dash output generated by FFMPEG not working - ffmpeg

I created a dash output sample_video.mpd file using ffmpeg, but when I tried to play it using dash js the video was just loading and nothing else.
Below is the generated mpd file
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="static"
mediaPresentationDuration="PT1M2.3S"
minBufferTime="PT20.0S">
<ProgramInformation>
</ProgramInformation>
<Period id="0" start="PT0.0S">
<AdaptationSet id="0" contentType="video" segmentAlignment="true" bitstreamSwitching="true" lang="und">
<Representation id="0" mimeType="video/mp4" codecs="avc1.640015" bandwidth="255520" width="426" height="240" frameRate="24/1">
<SegmentTemplate timescale="12288" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="198656" d="69120" />
<S d="75264" />
<S d="174592" />
<S d="122880" />
<S d="125440" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="2" mimeType="video/mp4" codecs="avc1.64001e" bandwidth="726596" width="854" height="480" frameRate="24/1">
<SegmentTemplate timescale="12288" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="198656" d="69120" />
<S d="75264" />
<S d="174592" />
<S d="122880" />
<S d="125440" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="4" mimeType="video/mp4" codecs="avc1.64001f" bandwidth="1433314" width="1280" height="720" frameRate="24/1">
<SegmentTemplate timescale="12288" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="198656" d="69120" />
<S d="75264" />
<S d="174592" />
<S d="122880" />
<S d="125440" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="1" contentType="audio" segmentAlignment="true" bitstreamSwitching="true" lang="und">
<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="341000" audioSamplingRate="48000">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="6" />
<SegmentTemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="772096" d="270336" />
<S d="293888" />
<S d="681984" />
<S d="480256" />
<S d="492544" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="3" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="341000" audioSamplingRate="48000">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="6" />
<SegmentTemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="772096" d="270336" />
<S d="293888" />
<S d="681984" />
<S d="480256" />
<S d="492544" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="5" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="341000" audioSamplingRate="48000">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="6" />
<SegmentTemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="3">
<SegmentTimeline>
<S t="772096" d="270336" />
<S d="293888" />
<S d="681984" />
<S d="480256" />
<S d="492544" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
The following is the ffmpeg command that i used to generate multi bitrate video
ffmpeg -y -i sample_video.mp4 ^
-c:v libx264 -x264opts "keyint=24:min-keyint=24:no-scenecut" -r 24 ^
-c:a aac -b:a 128k ^
-bf 1 -b_strategy 0 -sc_threshold 0 -pix_fmt yuv420p ^
-map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 ^
-b:v:0 250k -filter:v:0 "scale=-2:240" -profile:v:0 baseline ^
-b:v:1 750k -filter:v:1 "scale=-2:480" -profile:v:1 main ^
-b:v:2 1500k -filter:v:2 "scale=-2:720" -profile:v:2 high ^
sample_dash.mp4
and to generate the mpd file
ffmpeg -y -re -i sample_dash.mp4 ^
-map 0 ^
-use_timeline 1 -use_template 1 -window_size 5 -adaptation_sets
"id=0,streams=v id=1,streams=a" ^
-f dash sample_video.mpd
Also I saw in the chrome network tab that only init-stream4.m4s and init-stream5.m4s was called.

Are you ready to use ffmpeg+mp4box dash packager? I have found mp4box produce better segments+manifest.
ffmpeg -i tos.mp4 -threads 4 -preset fast -c:v libx264 -profile:v main -level 4.0 -s:v 640x360 -b:v 512k -pix_fmt yuv420p -refs 3 -bf 3 -g 75 -keyint_min 25 -b_strategy 1 -flags +cgop -sc_threshold 0 -movflags negative_cts_offsets+faststart -an -y temp-v1.mp4
ffmpeg -i tos.mp4 -threads 4 -preset fast -c:v libx264 -profile:v main -level 4.0 -s:v 1280x720 -b:v 1500k -pix_fmt yuv420p -refs 3 -bf 3 -g 75 -keyint_min 25 -b_strategy 1 -flags +cgop -sc_threshold 0 -movflags negative_cts_offsets+faststart -an -y temp-v2.mp4
ffmpeg -i tos.mp4 -threads 4 -preset fast -c:v libx264 -profile:v main -level 4.0 -s:v 1920x1080 -b:v 2100k -pix_fmt yuv420p -refs 3 -bf 3 -g 75 -keyint_min 25 -b_strategy 1 -flags +cgop -sc_threshold 0 -movflags negative_cts_offsets+faststart -an -y temp-v3.mp4
ffmpeg -i tos.mp4 -threads 4 -c:a aac -strict experimental -b:a 128k -maxrate:a 128k -bufsize:a 128k -af aresample=44100 -ar 44100 -ac 2 -vn -y temp-a1.mp4
MP4Box -dash 264600 -frag 264600 -dash-scale 44100 -bound -mem-frags -rap -profile dashavc264:live -min-buffer 12000 -bs-switching no -sample-groups-traf -single-traf -subsegs-per-sidx -1 -segment-name $RepresentationID$/$Number$$Init=i$ -out manifest.mpd temp-v1.mp4#trackID=1:id=v1:period=p0 temp-v2.mp4#trackID=1:id=v2:period=p0 temp-v3.mp4#trackID=1:id=v3:period=p0 temp-a1.mp4#trackID=1:id=a1:period=p0
I always use audiorate(44100,48000) in a dash-scale and scale*seconds=value of dash/frag formula to give a segment file duration.

Related

I want to play DASH (Video:h264 Audio:G711A) using ijkplayer, how should I modify module.sh

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=dash"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-libxml2"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=webm_dash_manifest"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=webm_chunk"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=dash"
# export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=webm_chunk"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_alaw"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_ulaw"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_mulaw"
I added these configurations at the bottom of module-lite.sh, but when playing DASH, there is only picture and no sound, what should I do?
<?xml version='1.0' encoding='UTF-8'?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:kvs="urn:aws:kinesisvideo:mpd:2019" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" availabilityStartTime="2022-03-07T08:40:35.487Z" publishTime="2022-03-07T09:29:53.333Z" minimumUpdatePeriod="PT0S" minBufferTime="PT1S">
<Period id="0" start="PT0S">
<AdaptationSet segmentAlignment="true" mimeType="video/mp4" startWithSAP="1">
<SegmentTemplate media="getMP4MediaFragment.mp4?SessionToken=CiDLaOcbvlTANnKweknURWqNerYZHdM8qhnYc4s1-7a0UxIQgKyfV133cJXSDr_tIeCaZBoZYZ7gJ7n28gohHFDYI34RtXcInz4y074pTiIgNfcSVAcUr82F2u1SeRZrrHp6YrSMPCuhQESx6HTKi60~&SequenceNumber=$Number$&TrackNumber=1" initialization="getMP4InitFragment.mp4?SessionToken=CiDLaOcbvlTANnKweknURWqNerYZHdM8qhnYc4s1-7a0UxIQgKyfV133cJXSDr_tIeCaZBoZYZ7gJ7n28gohHFDYI34RtXcInz4y074pTiIgNfcSVAcUr82F2u1SeRZrrHp6YrSMPCuhQESx6HTKi60~&TrackNumber=1" timescale="1000" startNumber="0">
<SegmentTimeline>
<S t="0" d="1648" kvs:fn="91343852333181734450051648276712447066637958917"/>
<S d="1567" kvs:fn="91343852333181734455003408433853968294145105934"/>
<S d="1765" kvs:fn="91343852333181734459955168590995489676641680882"/>
<S d="2096" kvs:fn="91343852333181734464906928748137011242654335051"/>
</SegmentTimeline>
</SegmentTemplate>
<Representation id="video" bandwidth="574859" width="1280" height="720" frameRate="30.34" codecs="avc1.4d0033" scanType="progressive"/>
</AdaptationSet>
</Period>
</MPD>
Does this DASH stream contain sound? I don't see any audio related elements here

Issues with using FFmpeg to generate MPEG-DASH files

I am using the following ffmpeg command to generate MPEG DASH files and manifest. I use single_file 1 to have a single file for each representation; so no chunking. But IDK why when I want to play the manifest using ExoPlayer, the video doesn't play from the beginning (rather it starts from around 50s).
ffmpeg -re -i .\video-h264.mkv -map 0 -map 0 -c:a aac -c:v libx264 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -single_file 1 -use_template 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -f dash out.mpd
What is wrong with this? Is the manifest correct? Here is the generated mpd:
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="static"
mediaPresentationDuration="PT1M20.1S"
maxSegmentDuration="PT5.0S"
minBufferTime="PT16.0S">
<ProgramInformation>
</ProgramInformation>
<ServiceDescription id="0">
</ServiceDescription>
<Period id="0" start="PT48.0S">
<AdaptationSet id="0" contentType="video" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" frameRate="30/1" maxWidth="960" maxHeight="540" par="517072:290799" lang="eng">
<Representation id="0" mimeType="video/mp4" codecs="avc1.4d401f" bandwidth="800000" width="960" height="540" sar="32317:32311">
<BaseURL>out-stream0.mp4</BaseURL>
<SegmentList timescale="1000000" duration="5000000" startNumber="7">
<Initialization range="0-832" />
<SegmentURL mediaRange="4800141-5599188" indexRange="4800141-4800192" />
<SegmentURL mediaRange="5599189-6243069" indexRange="5599189-5599240" />
<SegmentURL mediaRange="6243070-7224302" indexRange="6243070-6243121" />
<SegmentURL mediaRange="7224303-8138118" indexRange="7224303-7224354" />
<SegmentURL mediaRange="8138119-8232111" indexRange="8138119-8138170" />
</SegmentList>
</Representation>
<Representation id="2" mimeType="video/mp4" codecs="avc1.42c00d" bandwidth="300000" width="320" height="170" sar="549389:581598">
<BaseURL>out-stream2.mp4</BaseURL>
<SegmentList timescale="1000000" duration="5000000" startNumber="7">
<Initialization range="0-832" />
<SegmentURL mediaRange="1782920-2005667" indexRange="1782920-1782971" />
<SegmentURL mediaRange="2005668-2229412" indexRange="2005668-2005719" />
<SegmentURL mediaRange="2229413-2615209" indexRange="2229413-2229464" />
<SegmentURL mediaRange="2615210-2975346" indexRange="2615210-2615261" />
<SegmentURL mediaRange="2975347-2999288" indexRange="2975347-2975398" />
</SegmentList>
</Representation>
</AdaptationSet>
<AdaptationSet id="1" contentType="audio" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" lang="eng">
<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="69000" audioSamplingRate="44100">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1" />
<BaseURL>out-stream1.mp4</BaseURL>
<SegmentList timescale="1000000" duration="5000000" startNumber="12">
<Initialization range="0-764" />
<SegmentURL mediaRange="491493-536039" indexRange="491493-491544" />
<SegmentURL mediaRange="536040-580657" indexRange="536040-536091" />
<SegmentURL mediaRange="580658-625158" indexRange="580658-580709" />
<SegmentURL mediaRange="625159-669825" indexRange="625159-625210" />
<SegmentURL mediaRange="669826-713289" indexRange="669826-669877" />
</SegmentList>
</Representation>
<Representation id="3" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="69000" audioSamplingRate="22050">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1" />
<BaseURL>out-stream3.mp4</BaseURL>
<SegmentList timescale="1000000" duration="5000000" startNumber="12">
<Initialization range="0-764" />
<SegmentURL mediaRange="486188-530059" indexRange="486188-486239" />
<SegmentURL mediaRange="530060-574175" indexRange="530060-530111" />
<SegmentURL mediaRange="574176-618922" indexRange="574176-574227" />
<SegmentURL mediaRange="618923-663118" indexRange="618923-618974" />
<SegmentURL mediaRange="663119-706121" indexRange="663119-663170" />
</SegmentList>
</Representation>
</AdaptationSet>
</Period>
</MPD>
you need to remove
-window_size 5
it keeps only 5 segments of video in mpd
https://ffmpeg.org/ffmpeg-formats.html#dash-2

Issues with playing MPEG-DASH MPD file

I have built a simple mpeg-dash player using exoplayer API in Android. It reads and plays this MPD file. But can't play the following MPD file generated by FFmpeg:
ffmpeg -re -i .\video-h264.mkv -map 0 -map 0 -c:a aac -c:v libx264 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" -f dash out.mpd
What is the issue? I can't understand it.
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:mpeg:dash:schema:mpd:2011"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd"
profiles="urn:mpeg:dash:profile:isoff-live:2011"
type="static"
mediaPresentationDuration="PT16.0S"
maxSegmentDuration="PT5.0S"
minBufferTime="PT10.0S">
<ProgramInformation>
</ProgramInformation>
<ServiceDescription id="0">
</ServiceDescription>
<Period id="0" start="PT0.0S">
<AdaptationSet id="0" contentType="video" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" frameRate="24/1" maxWidth="1920" maxHeight="960" par="2:1">
<Representation id="0" mimeType="video/mp4" codecs="avc1.4d4028" bandwidth="800000" width="1920" height="960" sar="1:1">
<SegmentTemplate timescale="12288" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
<SegmentTimeline>
<S t="0" d="61440" r="2" />
<S d="13312" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="2" mimeType="video/mp4" codecs="avc1.42c00d" bandwidth="300000" width="320" height="170" sar="17:16">
<SegmentTemplate timescale="12288" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
<SegmentTimeline>
<S t="0" d="61440" r="2" />
<S d="13312" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="1" contentType="audio" startWithSAP="1" segmentAlignment="true" bitstreamSwitching="true" lang="eng">
<Representation id="1" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="128000" audioSamplingRate="48000">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
<SegmentTemplate timescale="48000" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
<SegmentTimeline>
<S t="0" d="238584" />
<S d="239616" />
<S d="240640" />
<S d="50176" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
<Representation id="3" mimeType="audio/mp4" codecs="mp4a.40.2" bandwidth="128000" audioSamplingRate="22050">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2" />
<SegmentTemplate timescale="22050" initialization="init-stream$RepresentationID$.m4s" media="chunk-stream$RepresentationID$-$Number%05d$.m4s" startNumber="1">
<SegmentTimeline>
<S t="0" d="109564" />
<S d="110592" r="1" />
<S d="22519" />
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
My simple ExoPlayer API code is HERE. And my MPD is located on a local server. The error I get is this:
2022-01-20 11:49:13.751 11201-11929/com.example.myexoplayer E/ExoPlayerImplInternal: Source error.
com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to http://192.168.80.80/dash/out.mpd
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102)
at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65)
at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:114)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.io.IOException: Cleartext HTTP traffic to 192.168.80.80 not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:127)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:429)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:350)
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:192)
at com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:102) 
at com.google.android.exoplayer2.upstream.DataSourceInputStream.open(DataSourceInputStream.java:65) 
at com.google.android.exoplayer2.upstream.ParsingLoadable.load(ParsingLoadable.java:114) 
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:295) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
at java.lang.Thread.run(Thread.java:923) 

MPD MPEG-DASH - Shows only one bitrate

Help. I wont show bitrate.
player.getBitrateInfoListFor("video");
Shows only one bitrate - 454948
manifest.mpd generated by GPAC
<Period duration="PT0H21M48.338S">
<AdaptationSet segmentAlignment="true" group="1" maxWidth="270" maxHeight="480" maxFrameRate="2070000/93437" par="270:480" lang="und">
<Representation id="1" mimeType="video/mp4" codecs="avc3.640015" width="270" height="480" frameRate="2070000/93437" sar="1:1" startWithSAP="1" bandwidth="454948">
<SegmentTemplate media="480_bbb/segment__track1_$Number$.m4s" timescale="2070000" startNumber="1" duration="8280000" initialization="480_bbb/segment__track1_init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" group="1" maxWidth="202" maxHeight="360" maxFrameRate="2070000/93437" par="202:360" lang="und">
<Representation id="2" mimeType="video/mp4" codecs="avc3.64000D" width="202" height="360" frameRate="2070000/93437" sar="1:1" startWithSAP="1" bandwidth="281508">
<SegmentTemplate media="360_bbb/segment__track1_$Number$.m4s" timescale="2070000" startNumber="1" duration="8280000" initialization="360_bbb/segment__track1_init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" group="1" maxWidth="134" maxHeight="240" maxFrameRate="2070000/93437" par="134:240" lang="und">
<Representation id="3" mimeType="video/mp4" codecs="avc3.64000B" width="134" height="240" frameRate="2070000/93437" sar="1:1" startWithSAP="1" bandwidth="182832">
<SegmentTemplate media="240_bbb/segment__track1_$Number$.m4s" timescale="2070000" startNumber="1" duration="8280000" initialization="240_bbb/segment__track1_init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" group="1" maxWidth="80" maxHeight="144" maxFrameRate="2070000/93437" par="80:144" lang="und">
<Representation id="4" mimeType="video/mp4" codecs="avc3.640009" width="80" height="144" frameRate="2070000/93437" sar="1:1" startWithSAP="1" bandwidth="99667">
<SegmentTemplate media="144_bbb/segment__track1_$Number$.m4s" timescale="2070000" startNumber="1" duration="8280000" initialization="144_bbb/segment__track1_init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet segmentAlignment="true" lang="und">
<Representation id="5" mimeType="audio/mp4" codecs="mp4a.40.2" startWithSAP="1" bandwidth="66056">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1"/>
<SegmentTemplate media="audio_bbb/segment__track2_$Number$.m4s" timescale="48000" startNumber="1" duration="192000" initialization="audio_bbb/segment__track2_init.mp4"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
player.getBitrateInfoListFor("video");
Shows only one bitrate - 454948
Assuming the video Representations are interchangeable versions of the same content, they should all be within a single AdaptationSet so the client knows it may switch between them dynamically.
As you currently have it, the client will select the most appropriate AdaptationSet at start up (probably the first since there are no other indicators) and correctly determines there is only one bitrate available.
Your MPD file shows that all videos are in separate adaptation set.
Problem is in the command you use to segment videos in MP4Box. You have to set "profile" parameter while segmenting videos using MP4Box.
-profile NAME specifies the target DASH profile: onDemand, live, main, simple, full, and two profiles from the DASH-IF: dashavc264:live, dashavc264:onDemand. This will set default option values to ensure conformance to the desired profile.
MP4Box command to segment videos with onDemand profile:
MP4Box -dash 4000 -frag 4000 -rap -profile onDemand -segment-name %s/segment_ -url-template -out manifest.mpd video144.mp4#video video240.mp4#video video360.mp4#video video480.mp4#video audio.mp4#audio
Source: GPAC's DASH support in MP4Box

Visual Studio Sharepoint 2013 Workflow not attaching to list

I have created a simple SP 2013 workflow in Visual Studio 2012. I configured it through the wizard to attach to a specific list. I am using a VM with windows server 2012, SP2013 in a standalone environment, and workflow manager. The solution deploys fine to SP and is activated, but does not get attached to the list. I went through the log files and found this:
Not enough information to determine a list for module "GuitarWorkflow". Assuming no list for this module.
Here is my elements/xaml contents:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="GuitarWorkflow" Url="wfsvc/9fdef811d07146f6a4153dbf70de81b0">
<File Url="WorkflowStartAssociation" Path="GuitarWorkflow\WorkflowStartAssociation" Type="Ghostable">
<Property Name="WSDisplayName" Value="GuitarWorkflow - Workflow Start" />
<Property Name="ContentType" Value="WorkflowServiceSubscription" />
<Property Name="WSPublishState" Value="3" />
<Property Name="WSEventType" Value="WorkflowStart" />
<Property Name="WSEnabled" Value="true" />
<Property Name="WSGUID" Value="d68c7819-fd0c-4cb3-9537-bc099cc42e2e" />
<Property Name="WSEventSourceGUID" Value="{$ListId:Lists/Guitars;}" />
<Property Name="Microsoft.SharePoint.ActivationProperties.ListId" Value="{$ListId:Lists/Guitars;}" />
<Property Name="HistoryListId" Value="{$ListId:Lists/Workflow History;}" />
<Property Name="RestrictToScope" Value="{$ListId:Lists/Guitars;}" />
<Property Name="TaskListId" Value="(None)" />
</File>
<File Url="ItemAddedAssociation" Path="GuitarWorkflow\ItemAddedAssociation" Type="Ghostable">
<Property Name="WSDisplayName" Value="GuitarWorkflow - Item Added" />
<Property Name="ContentType" Value="WorkflowServiceSubscription" />
<Property Name="WSPublishState" Value="3" />
<Property Name="WSEventType" Value="ItemAdded" />
<Property Name="WSEnabled" Value="true" />
<Property Name="WSGUID" Value="4aa20a2f-81d0-41eb-b93d-a2d22b8b5e49" />
<Property Name="WSEventSourceGUID" Value="{$ListId:Lists/Guitars;}" />
<Property Name="Microsoft.SharePoint.ActivationProperties.ListId" Value="{$ListId:Lists/Guitars;}" />
<Property Name="HistoryListId" Value="{$ListId:Lists/Workflow History;}" />
<Property Name="RestrictToScope" Value="{$ListId:Lists/Guitars;}" />
<Property Name="TaskListId" Value="(None)" />
</File>
<File Path="GuitarWorkflow\Workflow.xaml" Url="GuitarWorkflow/Workflow.xaml" >
<Property Name="RestrictToScope" Value="{$ListId:Lists/Guitars;}" />
<Property Name="RestrictToType" Value="List" />
</File>
</Module>
<ListInstance FeatureId="{2c63df2b-ceab-42c6-aeff-b3968162d4b1}"
TemplateType="4501"
Title="wfsvc"
Description="This list instance is used by SharePoint to keep track of workflows. Do not modify."
Url="wfsvc"
RootWebOnly="FALSE" />
</Elements>
Here is my workflow xaml:
<Activity mc:Ignorable="sap sap2010 sads" x:Class="GuitarWorkflow.GuitarWorkflow.Workflow" sap2010:ExpressionActivityEditor.ExpressionActivityEditor="C#" sap2010:WorkflowViewState.IdRef="GuitarWorkflow.GuitarWorkflow.Workflow_1"
xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mca="clr-namespace:Microsoft.CSharp.Activities;assembly=System.Activities"
xmlns:msdad="clr-namespace:Microsoft.SharePoint.DesignTime.Activities.Design;assembly=Microsoft.SharePoint.DesignTime.Activities.Design"
xmlns:p="http://schemas.microsoft.com/workflow/2012/07/xaml/activities"
xmlns:p1="wf://workflow.windows.net/$Activities"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
xmlns:sco="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextExpression.NamespacesForImplementation>
<sco:Collection x:TypeArguments="x:String">
<x:String>System</x:String>
<x:String>System.Collections.Generic</x:String>
<x:String>System.Data</x:String>
<x:String>System.Text</x:String>
<x:String>System.Collections.ObjectModel</x:String>
</sco:Collection>
</TextExpression.NamespacesForImplementation>
<TextExpression.ReferencesForImplementation>
<sco:Collection x:TypeArguments="AssemblyReference">
<AssemblyReference>Microsoft.Activities</AssemblyReference>
<AssemblyReference>Microsoft.SharePoint.DesignTime.Activities</AssemblyReference>
<AssemblyReference>PresentationFramework</AssemblyReference>
<AssemblyReference>System</AssemblyReference>
<AssemblyReference>System.Activities</AssemblyReference>
<AssemblyReference>System.Core</AssemblyReference>
<AssemblyReference>System.Data</AssemblyReference>
<AssemblyReference>System.Drawing</AssemblyReference>
<AssemblyReference>System.Runtime.Serialization</AssemblyReference>
<AssemblyReference>System.ServiceModel.Activities</AssemblyReference>
<AssemblyReference>System.Xaml</AssemblyReference>
<AssemblyReference>System.Xml</AssemblyReference>
<AssemblyReference>System.Xml.Linq</AssemblyReference>
<AssemblyReference>Microsoft.SharePoint</AssemblyReference>
<AssemblyReference>Microsoft.SharePoint.Client.ServerRuntime</AssemblyReference>
<AssemblyReference>mscorlib</AssemblyReference>
<AssemblyReference>GuitarWorkflow</AssemblyReference>
</sco:Collection>
</TextExpression.ReferencesForImplementation>
<Sequence sap2010:WorkflowViewState.IdRef="Sequence_1">
<Sequence.Variables>
<Variable x:TypeArguments="p:DynamicValue" Name="dv_0" />
<Variable x:TypeArguments="x:String" Name="GuitarType">
<Variable.Default>
<mca:CSharpValue x:TypeArguments="x:String">dv_0["Guitar Type"].ToString()</mca:CSharpValue>
</Variable.Default>
</Variable>
<Variable x:TypeArguments="sco:Collection(x:String)" Name="CreateBy" />
<Variable x:TypeArguments="x:String" Name="initiator" />
</Sequence.Variables>
<p1:WriteToHistory sap2010:WorkflowViewState.IdRef="WriteToHistory_1" Message="The GuitarWorkflow has started." />
<p1:LookupSPListItem ItemGuid="{x:Null}" Properties="{x:Null}" sap2010:WorkflowViewState.IdRef="LookupSPListItem_1">
<p1:LookupSPListItem.ItemId>
<InArgument x:TypeArguments="x:Int32">
<p:ExpressionContainerValue x:TypeArguments="x:Int32">
<p1:GetCurrentItemId />
</p:ExpressionContainerValue>
</InArgument>
</p1:LookupSPListItem.ItemId>
<p1:LookupSPListItem.ListId>
<InArgument x:TypeArguments="s:Guid">
<mca:CSharpValue x:TypeArguments="s:Guid">System.Guid.Parse("{$ListId:Lists/Guitars;}")</mca:CSharpValue>
</InArgument>
</p1:LookupSPListItem.ListId>
<p1:LookupSPListItem.Result>
<OutArgument x:TypeArguments="p:DynamicValue">
<mca:CSharpReference x:TypeArguments="p:DynamicValue">dv_0</mca:CSharpReference>
</OutArgument>
</p1:LookupSPListItem.Result>
</p1:LookupSPListItem>
<p:GetODataProperties DisplayName="GetDynamicValueProperties" sap2010:WorkflowViewState.IdRef="GetODataProperties_1">
<p:GetODataProperties.Source>
<InArgument x:TypeArguments="p:DynamicValue">
<mca:CSharpValue x:TypeArguments="p:DynamicValue">dv_0</mca:CSharpValue>
</InArgument>
</p:GetODataProperties.Source>
<scg:Dictionary x:TypeArguments="x:String, OutArgument">
<OutArgument x:TypeArguments="x:String" x:Key="Guitar_x0020_Type">
<mca:CSharpReference x:TypeArguments="x:String">GuitarType</mca:CSharpReference>
</OutArgument>
<OutArgument x:TypeArguments="sco:Collection(x:String)" x:Key="AuthorId">
<mca:CSharpReference x:TypeArguments="sco:Collection(x:String)">CreateBy</mca:CSharpReference>
</OutArgument>
</scg:Dictionary>
</p:GetODataProperties>
<If sap2010:WorkflowViewState.IdRef="If_1">
<If.Condition>
<InArgument x:TypeArguments="x:Boolean">
<mca:CSharpValue x:TypeArguments="x:Boolean">GuitarType.Equals("Acoustic")</mca:CSharpValue>
</InArgument>
</If.Condition>
<If.Then>
<p1:UpdateListItem ItemGuid="{x:Null}" ListItemProperties="{x:Null}" sap2010:WorkflowViewState.IdRef="UpdateListItem_1">
<p1:UpdateListItem.ItemId>
<InArgument x:TypeArguments="x:Int32">
<p:ExpressionContainerValue x:TypeArguments="x:Int32">
<p1:GetCurrentItemId />
</p:ExpressionContainerValue>
</InArgument>
</p1:UpdateListItem.ItemId>
<p1:UpdateListItem.ListId>
<InArgument x:TypeArguments="s:Guid">
<mca:CSharpValue x:TypeArguments="s:Guid">System.Guid.Parse("{$ListId:Lists/Guitars;}")</mca:CSharpValue>
</InArgument>
</p1:UpdateListItem.ListId>
<p1:UpdateListItem.ListItemPropertiesDynamicValue>
<InArgument x:TypeArguments="p:DynamicValue">
<p:SetDynamicValueProperties>
<scg:Dictionary x:TypeArguments="x:String, InArgument">
<InArgument x:TypeArguments="x:String" x:Key="Comment">VS Workflow added a comment: a new acoustic guitar item was added</InArgument>
</scg:Dictionary>
</p:SetDynamicValueProperties>
</InArgument>
</p1:UpdateListItem.ListItemPropertiesDynamicValue>
</p1:UpdateListItem>
</If.Then>
<If.Else>
<p1:UpdateListItem ItemGuid="{x:Null}" ListItemProperties="{x:Null}" sap2010:WorkflowViewState.IdRef="UpdateListItem_2">
<p1:UpdateListItem.ItemId>
<InArgument x:TypeArguments="x:Int32">
<p:ExpressionContainerValue x:TypeArguments="x:Int32">
<p1:GetCurrentItemId />
</p:ExpressionContainerValue>
</InArgument>
</p1:UpdateListItem.ItemId>
<p1:UpdateListItem.ListId>
<InArgument x:TypeArguments="s:Guid">
<mca:CSharpValue x:TypeArguments="s:Guid">System.Guid.Parse("{$ListId:Lists/Guitars;}")</mca:CSharpValue>
</InArgument>
</p1:UpdateListItem.ListId>
<p1:UpdateListItem.ListItemPropertiesDynamicValue>
<InArgument x:TypeArguments="p:DynamicValue">
<p:SetDynamicValueProperties>
<scg:Dictionary x:TypeArguments="x:String, InArgument">
<InArgument x:TypeArguments="x:String" x:Key="Comment">VS Workflow added a comment: a new electric guitar item was added</InArgument>
</scg:Dictionary>
</p:SetDynamicValueProperties>
</InArgument>
</p1:UpdateListItem.ListItemPropertiesDynamicValue>
</p1:UpdateListItem>
</If.Else>
</If>
<p1:LookupWorkflowContextProperty sap2010:WorkflowViewState.IdRef="LookupWorkflowContextProperty_1" PropertyName="InitiatorUserId">
<p1:LookupWorkflowContextProperty.Result>
<OutArgument x:TypeArguments="x:String">
<mca:CSharpReference x:TypeArguments="x:String">initiator</mca:CSharpReference>
</OutArgument>
</p1:LookupWorkflowContextProperty.Result>
</p1:LookupWorkflowContextProperty>
<p:BuildCollection x:TypeArguments="x:String">
<p:BuildCollection.Result>
<OutArgument x:TypeArguments="sco:Collection(x:String)">
<mca:CSharpReference x:TypeArguments="sco:Collection(x:String)">CreateBy</mca:CSharpReference>
</OutArgument>
</p:BuildCollection.Result>
<p:BuildCollection.Values>
<InArgument x:TypeArguments="x:String">
<mca:CSharpValue x:TypeArguments="x:String">initiator</mca:CSharpValue>
</InArgument>
</p:BuildCollection.Values>
<sap2010:WorkflowViewState.IdRef>BuildCollection`1_1</sap2010:WorkflowViewState.IdRef>
</p:BuildCollection>
<p1:Email AdditionalHeaders="{x:Null}" BCC="{x:Null}" CC="{x:Null}" sap2010:WorkflowViewState.IdRef="Email_1" Subject="New Guitar">
<p1:Email.Body>
<InArgument x:TypeArguments="x:String">
<mca:CSharpValue x:TypeArguments="x:String">"A new guitar was added:" + GuitarType</mca:CSharpValue>
</InArgument>
</p1:Email.Body>
<p1:Email.To>
<InArgument x:TypeArguments="sco:Collection(x:String)">
<mca:CSharpValue x:TypeArguments="sco:Collection(x:String)">CreateBy</mca:CSharpValue>
</InArgument>
</p1:Email.To>
</p1:Email>
<p1:WriteToHistory>
<p1:WriteToHistory.Message>
<InArgument x:TypeArguments="x:String">
<mca:CSharpValue x:TypeArguments="x:String">String.Format("An email was sent by {0}.", initiator)</mca:CSharpValue>
</InArgument>
</p1:WriteToHistory.Message>
<sap2010:WorkflowViewState.IdRef>WriteToHistory_3</sap2010:WorkflowViewState.IdRef>
</p1:WriteToHistory>
<p1:WriteToHistory sap2010:WorkflowViewState.IdRef="WriteToHistory_2" Message="Guitar Workflow has ended" />
<sads:DebugSymbol.Symbol>d3FDOlxVc2Vyc1xkZXZ1c2VyXGRvY3VtZW50c1x2aXN1YWwgc3R1ZGlvIDIwMTJcUHJvamVjdHNcR3VpdGFyV29ya2Zsb3dcR3VpdGFyV29ya2Zsb3dcR3VpdGFyV29ya2Zsb3dcV29ya2Zsb3cueGFtbCktA74BDgIBATILMmcCAQI4BTh3AgFhOQVLGwIBVUwFWhwCAUVbBZMBCgIBLZQBBZoBKAIBJpsBBacBGQIBG6gBBbMBEAIBD7QBBbsBGQIBCbwBBbwBcQIBBzhTOHQCAWJDC0N0AgFcSAtIWwIBVzwLPigCAVZUC1RbAgFQTwtPUwIBS1cLV2kCAUZeC15nAgEuYgl4HQIBPHsJkQEdAgEzlwELlwFaAgEolAF2lAGHAQIBJ6MBC6MBUgIBIZ4BC54BaQIBHLABC7ABYQIBFqsBC6sBbwIBEagBe6gBhwECARC3AQu3AX4CAQq8AVO8AW4CAQg9DT0kAwFWAXEPdS0CAUNsD2x4AgE+ZQ9nLAIBPYoBD44BLQIBOoUBD4UBeAIBNX4PgAEsAgE0c0pziwECAURmEWYoAwE9AYwBSowBiwECATt/EX8oAwE0AQ==</sads:DebugSymbol.Symbol>
</Sequence>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="WriteToHistory_1" sap:VirtualizedContainerService.HintSize="464,68" />
<sap2010:ViewStateData Id="LookupSPListItem_1" sap:VirtualizedContainerService.HintSize="464,89">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<scg:Dictionary x:TypeArguments="x:String, msdad:ViewStateNameValue" x:Key="SPLocalizedDisplayNames">
<msdad:ViewStateNameValue x:Key="ItemId" DisplayName="(current item)" Value="$CurrentItemId" />
<msdad:ViewStateNameValue x:Key="ListId" DisplayName="Guitars" Value="Lists/Guitars" />
</scg:Dictionary>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="GetODataProperties_1" sap:VirtualizedContainerService.HintSize="464,92">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:String x:Key="Properties.SelectedEntityType">Lists/Guitars</x:String>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="UpdateListItem_1" sap:VirtualizedContainerService.HintSize="200,68">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<scg:Dictionary x:TypeArguments="x:String, msdad:ViewStateNameValue" x:Key="SPLocalizedDisplayNames">
<msdad:ViewStateNameValue x:Key="ItemId" DisplayName="(current item)" Value="$CurrentItemId" />
<msdad:ViewStateNameValue x:Key="ListId" DisplayName="Guitars" Value="Lists/Guitars" />
</scg:Dictionary>
<x:String x:Key="ListItemPropertiesDynamicValue.SelectedEntityType">Lists/Guitars</x:String>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="UpdateListItem_2" sap:VirtualizedContainerService.HintSize="200,68">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<scg:Dictionary x:TypeArguments="x:String, msdad:ViewStateNameValue" x:Key="SPLocalizedDisplayNames">
<msdad:ViewStateNameValue x:Key="ItemId" DisplayName="(current item)" Value="$CurrentItemId" />
<msdad:ViewStateNameValue x:Key="ListId" DisplayName="Guitars" Value="Lists/Guitars" />
</scg:Dictionary>
<x:String x:Key="ListItemPropertiesDynamicValue.SelectedEntityType">Lists/Guitars</x:String>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="If_1" sap:VirtualizedContainerService.HintSize="464,218" />
<sap2010:ViewStateData Id="LookupWorkflowContextProperty_1" sap:VirtualizedContainerService.HintSize="464,68">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<scg:Dictionary x:TypeArguments="x:String, msdad:ViewStateNameValue" x:Key="SPLocalizedDisplayNames">
<msdad:ViewStateNameValue x:Key="PropertyName" DisplayName="Initiator" Value="InitiatorUserId" />
</scg:Dictionary>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="BuildCollection`1_1" sap:VirtualizedContainerService.HintSize="464,22" />
<sap2010:ViewStateData Id="Email_1" sap:VirtualizedContainerService.HintSize="464,68" />
<sap2010:ViewStateData Id="WriteToHistory_3" sap:VirtualizedContainerService.HintSize="464,68" />
<sap2010:ViewStateData Id="WriteToHistory_2" sap:VirtualizedContainerService.HintSize="464,68" />
<sap2010:ViewStateData Id="Sequence_1" sap:VirtualizedContainerService.HintSize="486,1205">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">True</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="GuitarWorkflow.GuitarWorkflow.Workflow_1" sap:VirtualizedContainerService.HintSize="526,1285" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
Not sure what I am doing wrong here. Any help is appreciated.
Edit. one other thing. I looked in the workflow manager database in sql express and only see info pertaining to WFs I created in SP Designer. I don't see this workflow. Not sure if I created the right kind of solution for deploying a VS workflow to Workflow Manager.
The problem was the following line in the workflow xaml:
<Variable x:TypeArguments="x:String" Name="GuitarType">
<Variable.Default>
<mca:CSharpValue x:TypeArguments="x:String">dv_0["Guitar Type"].ToString()</mca:CSharpValue>
</Variable.Default>
</Variable>
I was trying to apply a default value:
dv_0["Guitar Type"].ToString()
to a variable. I got the following error when deploying. I didn't see it in the original project:
Error occurred in deployment step 'Activate Features': Microsoft.Workflow.Client.ActivityValidationException: Workflow XAML failed validation due to the following errors:
The private implementation of activity '1: DynamicActivity' has the following validation error: Cast operation is not supported for DynamicValue => Object.
When I removed the default value, the workflow deployed

Resources