AW: Video saved using mp4mux is not playable in android default media player

Nicolas Dufresne nicolas at ndufresne.ca
Wed May 8 12:57:47 UTC 2019


Le mer. 8 mai 2019 06 h 55, chakra <wire.chakri at gmail.com> a écrit :

> Yes even I am facing same issue. But for my use case the .mp4 file does not
> play out on Chrome browser via HTML5 <video> tag.
>
> If I ffprobe the mp4 file the output shows as below,
>
>  *ffprobe -i 10__467118902.mp4 -v quiet -print_format json -show_format
> -show_streams -hide_banner*
>
> /{
>     "streams": [
>         {
>             "index": 0,
>             "codec_name": "h264",
>             "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
>             "profile": "Baseline",
>             "codec_type": "video",
>             "codec_time_base": "1001/30000",
>             "codec_tag_string": "avc1",
>             "codec_tag": "0x31637661",
>             "width": 3840,
>             "height": 2160,
>             "coded_width": 3840,
>             "coded_height": 2160,
>             "has_b_frames": 0,
>             "sample_aspect_ratio": "1:1",
>             "display_aspect_ratio": "16:9",
>             "pix_fmt": "yuvj420p",
>             "level": 51,
>             "color_range": "pc",
>             "color_space": "bt709",
>             "color_transfer": "bt709",
>             "color_primaries": "bt709",
>             "chroma_location": "left",
>             "refs": 1,
>             "is_avc": "1",
>             "nal_length_size": "4",
>             "r_frame_rate": "30000/2002",
>             "avg_frame_rate": "80802120/5392049",
>             "time_base": "1/1498",
>             *"start_pts": -226,
>             "start_time": "-0.150868",*
>

Just a guess, but have you considered adding an rtpjitterbuffer in your
receiver. One of its roles is to fix the timestamps. That being said, RTP
CTS (PTS / DTS delta) are not accurate, so I'd recommend not using b-frames.


            "duration_ts": 5392049,
>             "duration": "3599.498665",
>             "bit_rate": "3067876",
>             "bits_per_raw_sample": "8",
>             "nb_frames": "53940",
>             "disposition": {
>                 "default": 1,
>                 "dub": 0,
>                 "original": 0,
>                 "comment": 0,
>                 "lyrics": 0,
>                 "karaoke": 0,
>                 "forced": 0,
>                 "hearing_impaired": 0,
>                 "visual_impaired": 0,
>                 "clean_effects": 0,
>                 "attached_pic": 0
>             },
>             "tags": {
>                 "creation_time": "2019-05-06 15:02:06",
>                 "language": "und",
>                 "handler_name": "VideoHandler"
>             }
>         }
>     ],
>     "format": {
>         "filename":
>
> "13162491-8246-4f51-a37a-32fd56a87b91__9a0ad778-f8d5-4ae8-b74d-735609784cb7__HD_CAM-10__467118902.mp4",
>         "nb_streams": 1,
>         "nb_programs": 0,
>         "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
>         "format_long_name": "QuickTime / MOV",
>         "start_time": "-0.150868",
>         "duration": "3599.498665",
>         "size": "1416353518",
>         "bit_rate": "3147890",
>         "probe_score": 100,
>         "tags": {
>             "major_brand": "mp42",
>             "minor_version": "0",
>             "compatible_brands": "mp42mp41isomiso2",
>             "creation_time": "2019-05-06 15:02:06"
>         }
>     }
> }/
>
> And I tried to fix the file by moving the start time with command as below,
>
> *ffmpeg -i 10__467118902.mp4 -vcodec copy -ss -0.08
> 10__467118902_fixed.mp4*
>
> And now the generated/fixed mp4 has ffprobe summary as,
>
> /{
>     "streams": [
>         {
>             "index": 0,
>             "codec_name": "h264",
>             "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
>             "profile": "Baseline",
>             "codec_type": "video",
>             "codec_time_base": "1001/30000",
>             "codec_tag_string": "avc1",
>             "codec_tag": "0x31637661",
>             "width": 3840,
>             "height": 2160,
>             "coded_width": 3840,
>             "coded_height": 2160,
>             "has_b_frames": 1,
>             "sample_aspect_ratio": "1:1",
>             "display_aspect_ratio": "16:9",
>             "pix_fmt": "yuvj420p",
>             "level": 51,
>             "color_range": "pc",
>             "color_space": "bt709",
>             "color_transfer": "bt709",
>             "color_primaries": "bt709",
>             "chroma_location": "left",
>             "refs": 1,
>             "is_avc": "1",
>             "nal_length_size": "4",
>             "r_frame_rate": "15000/1001",
>             "avg_frame_rate": "10100265/674006",
>             "time_base": "1/11984",
>            * "start_pts": 959,
>             "start_time": "0.080023",*
>             "duration_ts": 43136384,
>             "duration": "3599.497997",
>             "bit_rate": "3067876",
>             "bits_per_raw_sample": "8",
>             "nb_frames": "53940",
>             "disposition": {
>                 "default": 1,
>                 "dub": 0,
>                 "original": 0,
>                 "comment": 0,
>                 "lyrics": 0,
>                 "karaoke": 0,
>                 "forced": 0,
>                 "hearing_impaired": 0,
>                 "visual_impaired": 0,
>                 "clean_effects": 0,
>                 "attached_pic": 0
>             },
>             "tags": {
>                 "language": "und",
>                 "handler_name": "VideoHandler"
>             }
>         }
>     ],
>     "format": {
>         "filename":
>
> "13162491-8246-4f51-a37a-32fd56a87b91__9a0ad778-f8d5-4ae8-b74d-735609784cb7__HD_CAM-10__467118902_fixed.mp4",
>         "nb_streams": 1,
>         "nb_programs": 0,
>         "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
>         "format_long_name": "QuickTime / MOV",
>         "start_time": "0.080023",
>         "duration": "3599.498000",
>         "size": "1381447545",
>         "bit_rate": "3070311",
>         "probe_score": 100,
>         "tags": {
>             "major_brand": "isom",
>             "minor_version": "512",
>             "compatible_brands": "isomiso2avc1mp41",
>             "encoder": "Lavf56.40.101"
>         }
>     }
> }
> /
> And its perfectly playable now on Chrome browser.
>
> But I am looking for a stable fix by source at GStreamer muxer itself
> rather
> than employing another library/ffmpeg as post processing step to handle
> this
>
> I have seen an issue on Chrome in regard to this,
> https://bugs.chromium.org/p/chromium/issues/detail?id=715398
>
> But its commented that issue is with mp4mux and has to be fixed on source
> while recording by muxer itself.
>
> Chrome logs error as below,
>
> *[6448:20468:0408/123832.116:VERBOSE1:network_delegate.cc(32)]
> NetworkDelegate::NotifyBeforeURLRequest:
> http://127.0.0.1:8445/10__467118902.mp4
> [10356:8540:0408/123832.215:ERROR:render_media_log.cc(30)] MediaEvent:
> MEDIA_ERROR_LOG_ENTRY {"error":"FFmpegDemuxer: unfixable negative
> timestamp."}
> [10356:8540:0408/123832.215:ERROR:render_media_log.cc(30)] MediaEvent:
> MEDIA_ERROR_LOG_ENTRY {"error":"FFmpegDemuxer: demuxer error: 13"}
> [10356:5076:0408/123832.215:ERROR:render_media_log.cc(30)] MediaEvent:
> PIPELINE_ERROR DEMUXER_ERROR_COULD_NOT_PARSE*
>
> Any help/suggestions in highly appreciated
>
> Thanks
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190508/232295eb/attachment-0001.html>


More information about the gstreamer-devel mailing list