пн, 7 нояб. 2022 г., 23:12 Terje J. Hanssen <terjejhanssen@gmail.com>:


Den 07.11.2022 19:31, skrev Andrew Randrianasulu:


пн, 7 нояб. 2022 г., 21:27 Terje J. Hanssen <terjejhanssen@gmail.com>:


Den 07.11.2022 18:58, skrev Andrew Randrianasulu:


пн, 7 нояб. 2022 г., 20:50 Andrew Randrianasulu <randrianasulu@gmail.com>:


пн, 7 нояб. 2022 г., 20:30 Andrew Randrianasulu <randrianasulu@gmail.com>:


пн, 7 нояб. 2022 г., 19:40 Andrew Randrianasulu <randrianasulu@gmail.com>:


пн, 7 нояб. 2022 г., 19:10 Andrew Randrianasulu <randrianasulu@gmail.com>:
Because old thread  now a bit too big for mobile gmail  client.

Yes, I also discovered that and thougt we should continue on another thread
(though Thunderbird/IMAP on my Ultrabook had no problems)



Yes, I'll try to see if it fails same way on my end. 

code seems to check first 100 frames


2528 static int field_probe(AVFormatContext *fmt_ctx, AVStream *st)
2529 {
2530   AVDictionary *copts = 0;
2531   //av_dict_copy(&copts, opts, 0);
2532   AVCodecID codec_id = st->codecpar->codec_id;
2533 #if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(58,134,100)
2534   AVCodec *decoder = avcodec_find_decoder(codec_id);
2535 #endif
2536 #if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,16,100)
2537   const AVCodec *decoder = avcodec_find_decoder(codec_id);
2538 #endif
2539   AVCodecContext *ctx = avcodec_alloc_context3(decoder);
2540   if( !ctx ) {
2541     fprintf(stderr,"codec alloc failed\n");
2542     return -1;
2543   }
2544   avcodec_parameters_to_context(ctx, st->codecpar);
2545   if( avcodec_open2(ctx, decoder, &copts) < 0 ) {
2546     fprintf(stderr,"codec open failed\n");
2547     return -1;
2548   }
2549   av_dict_free(&copts);
2550 
2551   AVFrame *ipic = av_frame_alloc();
2552   AVPacket ipkt;
2553   av_init_packet(&ipkt);
2554   int ilaced = -1;
2555   for( int retrys=100; --retrys>=0 && ilaced<0; ) {
2556     av_packet_unref(&ipkt);
2557     int ret = av_read_frame(fmt_ctx, &ipkt);
2558     if( ret == AVERROR_EOF ) break;
2559     if( ret != 0 ) continue;
2560     if( ipkt.stream_index != st->index ) continue;
2561     if( !ipkt.data || !ipkt.size ) continue;
2562     ret = avcodec_send_packet(ctx, &ipkt);
2563     if( ret < 0 ) {
2564       fprintf(stderr, "avcodec_send_packet failed\n");
2565       break;
2566     }
2567     ret = avcodec_receive_frame(ctx, ipic);
2568     if( ret >= 0 ) {
2569       ilaced = ipic->interlaced_frame ? 1 : 0;
2570       break;
2571     }
2572     if( ret != AVERROR(EAGAIN) )
2573       fprintf(stderr, "avcodec_receive_frame failed %d\n", ret);
2574   }
2575   av_packet_unref(&ipkt);
2576   av_frame_free(&ipic);
2577   avcodec_free_context(&ctx);
2578   return ilaced;

may be we can add flags to force interlaced vs progressive to bdwrite ... and/or debug why it fails.


sorry, not m2t or m2ts files were found on my main harddrive, so blind shot!

Terje, can you recompile bdwrite with attached patch and see if it improves situation?

I hope to avoid recompiling my ultrabook, where I just have installed the CinGG appimage
 



err, I think second patch also needed, because ilace in bdwrite is just 1/0/-1 not more detailed.



finally found m2t file, for me bdwrite does not complain but resulting file is unplayable

Note:
I just used the short m2t file you linked to; maybe it is to short for interlace probe?


may be! try to cp it under few different names then cat them together to get longer file?


 
this one contain real very short hdv sample with mp2 sound
http://twenkid.com/os/3.m2t



note I used -b switch for new mkudffs so it works with 2048 blocks and not default 512

I used the plain manual step 3 without -b, as also used for 2048 blocks in the sample step 2 ?
I 'll do a new attempt with -b and reort the result



root@slax:/tmp# mkudffs -b 2048 /tmp/newfilename.udfs 25915             filename=/tmp/newfilename.udfs                                    label=LinuxUDF                                                          uuid=6369651cdf849fbf                                                  blocksize=2048                                                          blocks=25915                                                            udfrev=2.01                                                             
start=0, blocks=16, type=ERASE                                        start=16, blocks=4, type=VRS                                            start=20, blocks=76, type=ERASE                                      start=96, blocks=16, type=MVDS                                    start=112, blocks=16, type=ERASE                              start=128, blocks=4, type=LVID                                start=132, blocks=124, type=ERASE                        start=256, blocks=1, type=ANCHOR            
start=257, blocks=25400, type=PSPACE      start=25657, blocks=1, type=ERASE    
start=25658, blocks=1, type=ANCHOR                              start=25659, blocks=69, type=ERASE                               start=25728, blocks=16, type=RVDS                                 start=25744, blocks=170, type=ERASE                            start=25914, blocks=1, type=ANCHOR                               
root@slax:/tmp# mount -o loop /tmp/newfilename.udfs /mnt/test           

root@slax:/tmp# bdwrite /mnt/test /home/guest/20081103140154.m2t        

root@slax:/tmp# umount /mnt/test



playing result in many

root@slax:/tmp# mplayer -vo null br://tmp/newfilename.udfs            
  MPlayer UNKNOWN-11.2.0 (C) 2000-2022 MPlayer Team           
 do_connect: could not connect to socket                         connect: No such file or directory                 
 Failed to open LIRC support. You will not be able to use your remote control.                                                                                                                                           Playing br://tmp/newfilename.udfs.                                     The hostname option must be an integer: tmp              Struct bluray, field hostname parsing error: tmp             libavformat version 59.33.100 (internal)                           bluray.c:707: Skipping broken unit at 0                              bluray.c:255: 00000.m2ts: no timestamp for SPN 0 (got 0). clip 46909800-47511000.                                       bluray.c:707: Skipping broken unit at 0                              bluray.c:707: Skipping broken unit at 6144                        bluray.c:255: 00000.m2ts: no timestamp for SPN 0 (got 0). clip 46909800-47511000.                                       bluray.c:707: Skipping broken unit at 0                               bluray.c:707: Skipping broken unit at 6144                     bluray.c:707: Skipping broken unit at 12288                    bluray.c:707: Skipping broken unit at 18432                    bluray.c:707: Skipping broken unit at 24576

{and so on}


on the other hand reencoding audio like this

root@slax:/tmp# ffmpeg -i /home/guest/20081103140154.m2t -c:v copy -c:a ac3 -b:a 384k 2008.m2ts

and repeating steps with mkudffs / mount /bdwrite /umount resulted in working in mplayer file!

I have 'old' 4.4 ffmpeg, so no bluray encoding for me.

also, I used wcalc as console calc




I discovered I had wrong calculated the file size in kb instead of bytes, but this didn't change anything,

I attach my 8.7 Mb (small) output.mts with pcm_bluray audio created with ffmpeg-5.1.2 on Tumleweed, so you can try it.


thanks, I just copied m2ts file from my desktop vua ssh to my tablet, run ffmpeg 5.1.2 on it, moved result back to desktop and created bd - no error ...

it also play in mplayer and it says

Selected audio codec: [fflpcm] afm: ffmpeg (Blu-ray LPCM)



procedure on filecopy

~ $ scp guest@192.168.1.102:/home/guest/20081103140154.m2t .


note dot at the end, I copied in current folder


~ $ ffmpeg -i 20081103140154.m2t -c:v copy -c:a pcm_bluray 2008_pcm.m2ts


~ $ mpv 2008_pcm.m2ts
     Video --vid=1 (mpeg2video 1440x1080 25.000fps)
 (+) Audio --aid=1 (pcm_bluray 2ch 48000Hz)
AO: [opensles] 48000Hz stereo 2ch s16
A: 00:00:13 / 00:00:13 (97%)

Exiting... (End of file)
~ $ scp 2008_pcm.m2ts guest@192.168.1.102:/home/guest
guest@192.168.1.102's password:
2008_pcm.m2ts                         100%   45MB   5.8MB/s   00:07


and via ssh on desktop (102):

root@slax:/tmp# du -sb 2008_pcm.m2ts                                    47020032        2008_pcm.m2ts                                root@slax:/tmp# mkudffs -b 2048 /tmp/newfilename.udfs 27055

root@slax:/tmp# mount -o loop /tmp/newfilename.udfs /mnt/test           root@slax:/tmp# bdwrite /mnt/test 2008_pcm.m2ts     root@slax:/tmp# umount /mnt/test                                   root@slax:/tmp# mplayer -vo null -demuxer mpeg br://tmp/newfilename.udfs


it seems to work.

So, I see no other way for you but compile Cingg/bdwrite with two patches I provided and see if they improve situation ... (or may be Phyllis will make special appimage for you)


So I sixdoubled this with cat to the bigger 53 Mb Output.mts

But sorry, got the same interlace probe error from bdwite
and no content files in the BDMV structure